diff --git a/Test/baseResults/hlsl.assoc.frag.out b/Test/baseResults/hlsl.assoc.frag.out
index 0bba2ee20135d5334fd815d66bf61c6950892a78..a027a62c6174fce657fcbb05179cd4efcc9dd784 100755
--- a/Test/baseResults/hlsl.assoc.frag.out
+++ b/Test/baseResults/hlsl.assoc.frag.out
@@ -1,5 +1,5 @@
 hlsl.assoc.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
@@ -35,7 +35,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:12  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4;vf4; (temp 4-component vector of float)
@@ -76,7 +76,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 9  "a1"
                               Name 10  "a2"
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index ce6ea59ea5729f9a21a3037b42f8b38b8e2fdded..4cf0a0d1ff9cf8720ee1cb099623b3a9caaab692 100755
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -1,5 +1,5 @@
 hlsl.float1.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 1-component vector of float)
@@ -31,7 +31,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 1-component vector of float)
@@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index c827f4d20a0480d1460fff44c9611a83b91b1807..ba757c987fc0a70ea5ec24c0f6e4399952650679 100755
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -1,5 +1,5 @@
 hlsl.float4.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 4-component vector of float)
@@ -24,7 +24,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 4-component vector of float)
@@ -54,7 +54,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"
diff --git a/Test/baseResults/hlsl.frag.out b/Test/baseResults/hlsl.frag.out
index 3ccbc898d1185272ef9006490f5599adc0f0511d..cfed9051fbadc88883fb237d723e76fe7c6330dd 100644
--- a/Test/baseResults/hlsl.frag.out
+++ b/Test/baseResults/hlsl.frag.out
@@ -1,5 +1,5 @@
 hlsl.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 4-component vector of float)
@@ -64,7 +64,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 4-component vector of float)
@@ -134,7 +134,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 9  "input"
                               Name 12  "AmbientIntensity"
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
new file mode 100644
index 0000000000000000000000000000000000000000..ec057844f683ae63246fa6977184c78bf626bdf8
--- /dev/null
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -0,0 +1,2178 @@
+hlsl.intrinsics.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62  Function Definition: PixelShaderFunction(f1;f1;f1; (temp float)
+0:2    Function Parameters: 
+0:2      'inF0' (temp float)
+0:2      'inF1' (temp float)
+0:2      'inF2' (temp float)
+0:?     Sequence
+0:3      all (global bool)
+0:3        'inF0' (temp float)
+0:4      Absolute value (global float)
+0:4        'inF0' (temp float)
+0:5      arc cosine (global float)
+0:5        'inF0' (temp float)
+0:6      any (global bool)
+0:6        'inF0' (temp float)
+0:7      arc sine (global float)
+0:7        'inF0' (temp float)
+0:8      arc tangent (global float)
+0:8        'inF0' (temp float)
+0:9      arc tangent (global float)
+0:9        'inF0' (temp float)
+0:9        'inF1' (temp float)
+0:10      Ceiling (global float)
+0:10        'inF0' (temp float)
+0:11      clamp (global float)
+0:11        'inF0' (temp float)
+0:11        'inF1' (temp float)
+0:11        'inF2' (temp float)
+0:12      cosine (global float)
+0:12        'inF0' (temp float)
+0:13      hyp. cosine (global float)
+0:13        'inF0' (temp float)
+0:14      bitCount (global uint)
+0:14        Constant:
+0:14          7 (const uint)
+0:15      dPdx (global float)
+0:15        'inF0' (temp float)
+0:16      dPdxCoarse (global float)
+0:16        'inF0' (temp float)
+0:17      dPdxFine (global float)
+0:17        'inF0' (temp float)
+0:18      dPdy (global float)
+0:18        'inF0' (temp float)
+0:19      dPdyCoarse (global float)
+0:19        'inF0' (temp float)
+0:20      dPdyFine (global float)
+0:20        'inF0' (temp float)
+0:21      degrees (global float)
+0:21        'inF0' (temp float)
+0:25      exp (global float)
+0:25        'inF0' (temp float)
+0:26      exp2 (global float)
+0:26        'inF0' (temp float)
+0:27      findMSB (global int)
+0:27        Constant:
+0:27          7 (const int)
+0:28      findLSB (global int)
+0:28        Constant:
+0:28          7 (const int)
+0:29      Floor (global float)
+0:29        'inF0' (temp float)
+0:31      Function Call: fmod(f1;f1; (global float)
+0:31        'inF0' (temp float)
+0:31        'inF1' (temp float)
+0:32      Fraction (global float)
+0:32        'inF0' (temp float)
+0:33      frexp (global float)
+0:33        'inF0' (temp float)
+0:33        'inF1' (temp float)
+0:34      fwidth (global float)
+0:34        'inF0' (temp float)
+0:35      isinf (global bool)
+0:35        'inF0' (temp float)
+0:36      isnan (global bool)
+0:36        'inF0' (temp float)
+0:37      ldexp (global float)
+0:37        'inF0' (temp float)
+0:37        'inF1' (temp float)
+0:38      log (global float)
+0:38        'inF0' (temp float)
+0:39      log2 (global float)
+0:39        'inF0' (temp float)
+0:40      max (global float)
+0:40        'inF0' (temp float)
+0:40        'inF1' (temp float)
+0:41      min (global float)
+0:41        'inF0' (temp float)
+0:41        'inF1' (temp float)
+0:43      pow (global float)
+0:43        'inF0' (temp float)
+0:43        'inF1' (temp float)
+0:44      radians (global float)
+0:44        'inF0' (temp float)
+0:45      bitFieldReverse (global uint)
+0:45        Constant:
+0:45          2 (const uint)
+0:46      roundEven (global float)
+0:46        'inF0' (temp float)
+0:47      inverse sqrt (global float)
+0:47        'inF0' (temp float)
+0:48      Sign (global float)
+0:48        'inF0' (temp float)
+0:49      sine (global float)
+0:49        'inF0' (temp float)
+0:50      hyp. sine (global float)
+0:50        'inF0' (temp float)
+0:51      smoothstep (global float)
+0:51        'inF0' (temp float)
+0:51        'inF1' (temp float)
+0:51        'inF2' (temp float)
+0:52      sqrt (global float)
+0:52        'inF0' (temp float)
+0:53      step (global float)
+0:53        'inF0' (temp float)
+0:53        'inF1' (temp float)
+0:54      tangent (global float)
+0:54        'inF0' (temp float)
+0:55      hyp. tangent (global float)
+0:55        'inF0' (temp float)
+0:57      trunc (global float)
+0:57        'inF0' (temp float)
+0:59      Branch: Return with expression
+0:59        Constant:
+0:59          0.000000
+0:68  Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:63    Function Parameters: 
+0:63      'inF0' (temp 1-component vector of float)
+0:63      'inF1' (temp 1-component vector of float)
+0:63      'inF2' (temp 1-component vector of float)
+0:?     Sequence
+0:65      Branch: Return with expression
+0:65        Constant:
+0:65          0.000000
+0:137  Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:69    Function Parameters: 
+0:69      'inF0' (temp 2-component vector of float)
+0:69      'inF1' (temp 2-component vector of float)
+0:69      'inF2' (temp 2-component vector of float)
+0:?     Sequence
+0:70      all (global bool)
+0:70        'inF0' (temp 2-component vector of float)
+0:71      Absolute value (global 2-component vector of float)
+0:71        'inF0' (temp 2-component vector of float)
+0:72      arc cosine (global 2-component vector of float)
+0:72        'inF0' (temp 2-component vector of float)
+0:73      any (global bool)
+0:73        'inF0' (temp 2-component vector of float)
+0:74      arc sine (global 2-component vector of float)
+0:74        'inF0' (temp 2-component vector of float)
+0:75      arc tangent (global 2-component vector of float)
+0:75        'inF0' (temp 2-component vector of float)
+0:76      arc tangent (global 2-component vector of float)
+0:76        'inF0' (temp 2-component vector of float)
+0:76        'inF1' (temp 2-component vector of float)
+0:77      Ceiling (global 2-component vector of float)
+0:77        'inF0' (temp 2-component vector of float)
+0:78      clamp (global 2-component vector of float)
+0:78        'inF0' (temp 2-component vector of float)
+0:78        'inF1' (temp 2-component vector of float)
+0:78        'inF2' (temp 2-component vector of float)
+0:79      cosine (global 2-component vector of float)
+0:79        'inF0' (temp 2-component vector of float)
+0:80      hyp. cosine (global 2-component vector of float)
+0:80        'inF0' (temp 2-component vector of float)
+0:?       bitCount (global 2-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:82      dPdx (global 2-component vector of float)
+0:82        'inF0' (temp 2-component vector of float)
+0:83      dPdxCoarse (global 2-component vector of float)
+0:83        'inF0' (temp 2-component vector of float)
+0:84      dPdxFine (global 2-component vector of float)
+0:84        'inF0' (temp 2-component vector of float)
+0:85      dPdy (global 2-component vector of float)
+0:85        'inF0' (temp 2-component vector of float)
+0:86      dPdyCoarse (global 2-component vector of float)
+0:86        'inF0' (temp 2-component vector of float)
+0:87      dPdyFine (global 2-component vector of float)
+0:87        'inF0' (temp 2-component vector of float)
+0:88      degrees (global 2-component vector of float)
+0:88        'inF0' (temp 2-component vector of float)
+0:89      distance (global float)
+0:89        'inF0' (temp 2-component vector of float)
+0:89        'inF1' (temp 2-component vector of float)
+0:90      dot-product (global float)
+0:90        'inF0' (temp 2-component vector of float)
+0:90        'inF1' (temp 2-component vector of float)
+0:94      exp (global 2-component vector of float)
+0:94        'inF0' (temp 2-component vector of float)
+0:95      exp2 (global 2-component vector of float)
+0:95        'inF0' (temp 2-component vector of float)
+0:96      face-forward (global 2-component vector of float)
+0:96        'inF0' (temp 2-component vector of float)
+0:96        'inF1' (temp 2-component vector of float)
+0:96        'inF2' (temp 2-component vector of float)
+0:97      findMSB (global int)
+0:97        Constant:
+0:97          7 (const int)
+0:98      findLSB (global int)
+0:98        Constant:
+0:98          7 (const int)
+0:99      Floor (global 2-component vector of float)
+0:99        'inF0' (temp 2-component vector of float)
+0:101      Function Call: fmod(vf2;vf2; (global 2-component vector of float)
+0:101        'inF0' (temp 2-component vector of float)
+0:101        'inF1' (temp 2-component vector of float)
+0:102      Fraction (global 2-component vector of float)
+0:102        'inF0' (temp 2-component vector of float)
+0:103      frexp (global 2-component vector of float)
+0:103        'inF0' (temp 2-component vector of float)
+0:103        'inF1' (temp 2-component vector of float)
+0:104      fwidth (global 2-component vector of float)
+0:104        'inF0' (temp 2-component vector of float)
+0:105      isinf (global 2-component vector of bool)
+0:105        'inF0' (temp 2-component vector of float)
+0:106      isnan (global 2-component vector of bool)
+0:106        'inF0' (temp 2-component vector of float)
+0:107      ldexp (global 2-component vector of float)
+0:107        'inF0' (temp 2-component vector of float)
+0:107        'inF1' (temp 2-component vector of float)
+0:108      length (global float)
+0:108        'inF0' (temp 2-component vector of float)
+0:109      log (global 2-component vector of float)
+0:109        'inF0' (temp 2-component vector of float)
+0:110      log2 (global 2-component vector of float)
+0:110        'inF0' (temp 2-component vector of float)
+0:111      max (global 2-component vector of float)
+0:111        'inF0' (temp 2-component vector of float)
+0:111        'inF1' (temp 2-component vector of float)
+0:112      min (global 2-component vector of float)
+0:112        'inF0' (temp 2-component vector of float)
+0:112        'inF1' (temp 2-component vector of float)
+0:114      normalize (global 2-component vector of float)
+0:114        'inF0' (temp 2-component vector of float)
+0:115      pow (global 2-component vector of float)
+0:115        'inF0' (temp 2-component vector of float)
+0:115        'inF1' (temp 2-component vector of float)
+0:116      radians (global 2-component vector of float)
+0:116        'inF0' (temp 2-component vector of float)
+0:117      reflect (global 2-component vector of float)
+0:117        'inF0' (temp 2-component vector of float)
+0:117        'inF1' (temp 2-component vector of float)
+0:118      refract (global 2-component vector of float)
+0:118        'inF0' (temp 2-component vector of float)
+0:118        'inF1' (temp 2-component vector of float)
+0:118        Constant:
+0:118          2.000000
+0:?       bitFieldReverse (global 2-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:120      roundEven (global 2-component vector of float)
+0:120        'inF0' (temp 2-component vector of float)
+0:121      inverse sqrt (global 2-component vector of float)
+0:121        'inF0' (temp 2-component vector of float)
+0:122      Sign (global 2-component vector of float)
+0:122        'inF0' (temp 2-component vector of float)
+0:123      sine (global 2-component vector of float)
+0:123        'inF0' (temp 2-component vector of float)
+0:124      hyp. sine (global 2-component vector of float)
+0:124        'inF0' (temp 2-component vector of float)
+0:125      smoothstep (global 2-component vector of float)
+0:125        'inF0' (temp 2-component vector of float)
+0:125        'inF1' (temp 2-component vector of float)
+0:125        'inF2' (temp 2-component vector of float)
+0:126      sqrt (global 2-component vector of float)
+0:126        'inF0' (temp 2-component vector of float)
+0:127      step (global 2-component vector of float)
+0:127        'inF0' (temp 2-component vector of float)
+0:127        'inF1' (temp 2-component vector of float)
+0:128      tangent (global 2-component vector of float)
+0:128        'inF0' (temp 2-component vector of float)
+0:129      hyp. tangent (global 2-component vector of float)
+0:129        'inF0' (temp 2-component vector of float)
+0:131      trunc (global 2-component vector of float)
+0:131        'inF0' (temp 2-component vector of float)
+0:134      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:207  Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:138    Function Parameters: 
+0:138      'inF0' (temp 3-component vector of float)
+0:138      'inF1' (temp 3-component vector of float)
+0:138      'inF2' (temp 3-component vector of float)
+0:?     Sequence
+0:139      all (global bool)
+0:139        'inF0' (temp 3-component vector of float)
+0:140      Absolute value (global 3-component vector of float)
+0:140        'inF0' (temp 3-component vector of float)
+0:141      arc cosine (global 3-component vector of float)
+0:141        'inF0' (temp 3-component vector of float)
+0:142      any (global bool)
+0:142        'inF0' (temp 3-component vector of float)
+0:143      arc sine (global 3-component vector of float)
+0:143        'inF0' (temp 3-component vector of float)
+0:144      arc tangent (global 3-component vector of float)
+0:144        'inF0' (temp 3-component vector of float)
+0:145      arc tangent (global 3-component vector of float)
+0:145        'inF0' (temp 3-component vector of float)
+0:145        'inF1' (temp 3-component vector of float)
+0:146      Ceiling (global 3-component vector of float)
+0:146        'inF0' (temp 3-component vector of float)
+0:147      clamp (global 3-component vector of float)
+0:147        'inF0' (temp 3-component vector of float)
+0:147        'inF1' (temp 3-component vector of float)
+0:147        'inF2' (temp 3-component vector of float)
+0:148      cosine (global 3-component vector of float)
+0:148        'inF0' (temp 3-component vector of float)
+0:149      hyp. cosine (global 3-component vector of float)
+0:149        'inF0' (temp 3-component vector of float)
+0:?       bitCount (global 3-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:151      cross-product (global 3-component vector of float)
+0:151        'inF0' (temp 3-component vector of float)
+0:151        'inF1' (temp 3-component vector of float)
+0:152      dPdx (global 3-component vector of float)
+0:152        'inF0' (temp 3-component vector of float)
+0:153      dPdxCoarse (global 3-component vector of float)
+0:153        'inF0' (temp 3-component vector of float)
+0:154      dPdxFine (global 3-component vector of float)
+0:154        'inF0' (temp 3-component vector of float)
+0:155      dPdy (global 3-component vector of float)
+0:155        'inF0' (temp 3-component vector of float)
+0:156      dPdyCoarse (global 3-component vector of float)
+0:156        'inF0' (temp 3-component vector of float)
+0:157      dPdyFine (global 3-component vector of float)
+0:157        'inF0' (temp 3-component vector of float)
+0:158      degrees (global 3-component vector of float)
+0:158        'inF0' (temp 3-component vector of float)
+0:159      distance (global float)
+0:159        'inF0' (temp 3-component vector of float)
+0:159        'inF1' (temp 3-component vector of float)
+0:160      dot-product (global float)
+0:160        'inF0' (temp 3-component vector of float)
+0:160        'inF1' (temp 3-component vector of float)
+0:164      exp (global 3-component vector of float)
+0:164        'inF0' (temp 3-component vector of float)
+0:165      exp2 (global 3-component vector of float)
+0:165        'inF0' (temp 3-component vector of float)
+0:166      face-forward (global 3-component vector of float)
+0:166        'inF0' (temp 3-component vector of float)
+0:166        'inF1' (temp 3-component vector of float)
+0:166        'inF2' (temp 3-component vector of float)
+0:167      findMSB (global int)
+0:167        Constant:
+0:167          7 (const int)
+0:168      findLSB (global int)
+0:168        Constant:
+0:168          7 (const int)
+0:169      Floor (global 3-component vector of float)
+0:169        'inF0' (temp 3-component vector of float)
+0:171      Function Call: fmod(vf3;vf3; (global 3-component vector of float)
+0:171        'inF0' (temp 3-component vector of float)
+0:171        'inF1' (temp 3-component vector of float)
+0:172      Fraction (global 3-component vector of float)
+0:172        'inF0' (temp 3-component vector of float)
+0:173      frexp (global 3-component vector of float)
+0:173        'inF0' (temp 3-component vector of float)
+0:173        'inF1' (temp 3-component vector of float)
+0:174      fwidth (global 3-component vector of float)
+0:174        'inF0' (temp 3-component vector of float)
+0:175      isinf (global 3-component vector of bool)
+0:175        'inF0' (temp 3-component vector of float)
+0:176      isnan (global 3-component vector of bool)
+0:176        'inF0' (temp 3-component vector of float)
+0:177      ldexp (global 3-component vector of float)
+0:177        'inF0' (temp 3-component vector of float)
+0:177        'inF1' (temp 3-component vector of float)
+0:178      length (global float)
+0:178        'inF0' (temp 3-component vector of float)
+0:179      log (global 3-component vector of float)
+0:179        'inF0' (temp 3-component vector of float)
+0:180      log2 (global 3-component vector of float)
+0:180        'inF0' (temp 3-component vector of float)
+0:181      max (global 3-component vector of float)
+0:181        'inF0' (temp 3-component vector of float)
+0:181        'inF1' (temp 3-component vector of float)
+0:182      min (global 3-component vector of float)
+0:182        'inF0' (temp 3-component vector of float)
+0:182        'inF1' (temp 3-component vector of float)
+0:184      normalize (global 3-component vector of float)
+0:184        'inF0' (temp 3-component vector of float)
+0:185      pow (global 3-component vector of float)
+0:185        'inF0' (temp 3-component vector of float)
+0:185        'inF1' (temp 3-component vector of float)
+0:186      radians (global 3-component vector of float)
+0:186        'inF0' (temp 3-component vector of float)
+0:187      reflect (global 3-component vector of float)
+0:187        'inF0' (temp 3-component vector of float)
+0:187        'inF1' (temp 3-component vector of float)
+0:188      refract (global 3-component vector of float)
+0:188        'inF0' (temp 3-component vector of float)
+0:188        'inF1' (temp 3-component vector of float)
+0:188        Constant:
+0:188          2.000000
+0:?       bitFieldReverse (global 3-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:190      roundEven (global 3-component vector of float)
+0:190        'inF0' (temp 3-component vector of float)
+0:191      inverse sqrt (global 3-component vector of float)
+0:191        'inF0' (temp 3-component vector of float)
+0:192      Sign (global 3-component vector of float)
+0:192        'inF0' (temp 3-component vector of float)
+0:193      sine (global 3-component vector of float)
+0:193        'inF0' (temp 3-component vector of float)
+0:194      hyp. sine (global 3-component vector of float)
+0:194        'inF0' (temp 3-component vector of float)
+0:195      smoothstep (global 3-component vector of float)
+0:195        'inF0' (temp 3-component vector of float)
+0:195        'inF1' (temp 3-component vector of float)
+0:195        'inF2' (temp 3-component vector of float)
+0:196      sqrt (global 3-component vector of float)
+0:196        'inF0' (temp 3-component vector of float)
+0:197      step (global 3-component vector of float)
+0:197        'inF0' (temp 3-component vector of float)
+0:197        'inF1' (temp 3-component vector of float)
+0:198      tangent (global 3-component vector of float)
+0:198        'inF0' (temp 3-component vector of float)
+0:199      hyp. tangent (global 3-component vector of float)
+0:199        'inF0' (temp 3-component vector of float)
+0:201      trunc (global 3-component vector of float)
+0:201        'inF0' (temp 3-component vector of float)
+0:204      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:328  Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:208    Function Parameters: 
+0:208      'inF0' (temp 4-component vector of float)
+0:208      'inF1' (temp 4-component vector of float)
+0:208      'inF2' (temp 4-component vector of float)
+0:?     Sequence
+0:209      all (global bool)
+0:209        'inF0' (temp 4-component vector of float)
+0:210      Absolute value (global 4-component vector of float)
+0:210        'inF0' (temp 4-component vector of float)
+0:211      arc cosine (global 4-component vector of float)
+0:211        'inF0' (temp 4-component vector of float)
+0:212      any (global bool)
+0:212        'inF0' (temp 4-component vector of float)
+0:213      arc sine (global 4-component vector of float)
+0:213        'inF0' (temp 4-component vector of float)
+0:214      arc tangent (global 4-component vector of float)
+0:214        'inF0' (temp 4-component vector of float)
+0:215      arc tangent (global 4-component vector of float)
+0:215        'inF0' (temp 4-component vector of float)
+0:215        'inF1' (temp 4-component vector of float)
+0:216      Ceiling (global 4-component vector of float)
+0:216        'inF0' (temp 4-component vector of float)
+0:217      clamp (global 4-component vector of float)
+0:217        'inF0' (temp 4-component vector of float)
+0:217        'inF1' (temp 4-component vector of float)
+0:217        'inF2' (temp 4-component vector of float)
+0:218      cosine (global 4-component vector of float)
+0:218        'inF0' (temp 4-component vector of float)
+0:219      hyp. cosine (global 4-component vector of float)
+0:219        'inF0' (temp 4-component vector of float)
+0:?       bitCount (global 4-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:?           2 (const uint)
+0:221      dPdx (global 4-component vector of float)
+0:221        'inF0' (temp 4-component vector of float)
+0:222      dPdxCoarse (global 4-component vector of float)
+0:222        'inF0' (temp 4-component vector of float)
+0:223      dPdxFine (global 4-component vector of float)
+0:223        'inF0' (temp 4-component vector of float)
+0:224      dPdy (global 4-component vector of float)
+0:224        'inF0' (temp 4-component vector of float)
+0:225      dPdyCoarse (global 4-component vector of float)
+0:225        'inF0' (temp 4-component vector of float)
+0:226      dPdyFine (global 4-component vector of float)
+0:226        'inF0' (temp 4-component vector of float)
+0:227      degrees (global 4-component vector of float)
+0:227        'inF0' (temp 4-component vector of float)
+0:228      distance (global float)
+0:228        'inF0' (temp 4-component vector of float)
+0:228        'inF1' (temp 4-component vector of float)
+0:229      dot-product (global float)
+0:229        'inF0' (temp 4-component vector of float)
+0:229        'inF1' (temp 4-component vector of float)
+0:233      exp (global 4-component vector of float)
+0:233        'inF0' (temp 4-component vector of float)
+0:234      exp2 (global 4-component vector of float)
+0:234        'inF0' (temp 4-component vector of float)
+0:235      face-forward (global 4-component vector of float)
+0:235        'inF0' (temp 4-component vector of float)
+0:235        'inF1' (temp 4-component vector of float)
+0:235        'inF2' (temp 4-component vector of float)
+0:236      findMSB (global int)
+0:236        Constant:
+0:236          7 (const int)
+0:237      findLSB (global int)
+0:237        Constant:
+0:237          7 (const int)
+0:238      Floor (global 4-component vector of float)
+0:238        'inF0' (temp 4-component vector of float)
+0:240      Function Call: fmod(vf4;vf4; (global 4-component vector of float)
+0:240        'inF0' (temp 4-component vector of float)
+0:240        'inF1' (temp 4-component vector of float)
+0:241      Fraction (global 4-component vector of float)
+0:241        'inF0' (temp 4-component vector of float)
+0:242      frexp (global 4-component vector of float)
+0:242        'inF0' (temp 4-component vector of float)
+0:242        'inF1' (temp 4-component vector of float)
+0:243      fwidth (global 4-component vector of float)
+0:243        'inF0' (temp 4-component vector of float)
+0:244      isinf (global 4-component vector of bool)
+0:244        'inF0' (temp 4-component vector of float)
+0:245      isnan (global 4-component vector of bool)
+0:245        'inF0' (temp 4-component vector of float)
+0:246      ldexp (global 4-component vector of float)
+0:246        'inF0' (temp 4-component vector of float)
+0:246        'inF1' (temp 4-component vector of float)
+0:247      length (global float)
+0:247        'inF0' (temp 4-component vector of float)
+0:248      log (global 4-component vector of float)
+0:248        'inF0' (temp 4-component vector of float)
+0:249      log2 (global 4-component vector of float)
+0:249        'inF0' (temp 4-component vector of float)
+0:250      max (global 4-component vector of float)
+0:250        'inF0' (temp 4-component vector of float)
+0:250        'inF1' (temp 4-component vector of float)
+0:251      min (global 4-component vector of float)
+0:251        'inF0' (temp 4-component vector of float)
+0:251        'inF1' (temp 4-component vector of float)
+0:253      normalize (global 4-component vector of float)
+0:253        'inF0' (temp 4-component vector of float)
+0:254      pow (global 4-component vector of float)
+0:254        'inF0' (temp 4-component vector of float)
+0:254        'inF1' (temp 4-component vector of float)
+0:255      radians (global 4-component vector of float)
+0:255        'inF0' (temp 4-component vector of float)
+0:256      reflect (global 4-component vector of float)
+0:256        'inF0' (temp 4-component vector of float)
+0:256        'inF1' (temp 4-component vector of float)
+0:257      refract (global 4-component vector of float)
+0:257        'inF0' (temp 4-component vector of float)
+0:257        'inF1' (temp 4-component vector of float)
+0:257        Constant:
+0:257          2.000000
+0:?       bitFieldReverse (global 4-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:?           4 (const uint)
+0:259      roundEven (global 4-component vector of float)
+0:259        'inF0' (temp 4-component vector of float)
+0:260      inverse sqrt (global 4-component vector of float)
+0:260        'inF0' (temp 4-component vector of float)
+0:261      Sign (global 4-component vector of float)
+0:261        'inF0' (temp 4-component vector of float)
+0:262      sine (global 4-component vector of float)
+0:262        'inF0' (temp 4-component vector of float)
+0:263      hyp. sine (global 4-component vector of float)
+0:263        'inF0' (temp 4-component vector of float)
+0:264      smoothstep (global 4-component vector of float)
+0:264        'inF0' (temp 4-component vector of float)
+0:264        'inF1' (temp 4-component vector of float)
+0:264        'inF2' (temp 4-component vector of float)
+0:265      sqrt (global 4-component vector of float)
+0:265        'inF0' (temp 4-component vector of float)
+0:266      step (global 4-component vector of float)
+0:266        'inF0' (temp 4-component vector of float)
+0:266        'inF1' (temp 4-component vector of float)
+0:267      tangent (global 4-component vector of float)
+0:267        'inF0' (temp 4-component vector of float)
+0:268      hyp. tangent (global 4-component vector of float)
+0:268        'inF0' (temp 4-component vector of float)
+0:270      trunc (global 4-component vector of float)
+0:270        'inF0' (temp 4-component vector of float)
+0:273      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:?           4.000000
+0:337  Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:329    Function Parameters: 
+0:329      'inF0' (temp 2X2 matrix of float)
+0:329      'inF1' (temp 2X2 matrix of float)
+0:329      'inF2' (temp 2X2 matrix of float)
+0:?     Sequence
+0:331      all (global bool)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Absolute value (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      any (global bool)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      Ceiling (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      clamp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331        'inF2' (temp 2X2 matrix of float)
+0:331      cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdx (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdxCoarse (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdxFine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdy (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdyCoarse (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdyFine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      degrees (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      determinant (global float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      exp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      exp2 (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      findMSB (global int)
+0:331        Constant:
+0:331          7 (const int)
+0:331      findLSB (global int)
+0:331        Constant:
+0:331          7 (const int)
+0:331      Floor (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Function Call: fmod(mf22;mf22; (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      Fraction (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      frexp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      fwidth (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      ldexp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      log (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      log2 (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      max (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      min (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      pow (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      radians (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      roundEven (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      inverse sqrt (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Sign (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      smoothstep (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331        'inF2' (temp 2X2 matrix of float)
+0:331      sqrt (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      step (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      transpose (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      trunc (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:334      Branch: Return with expression
+0:?         Constant:
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:346  Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:338    Function Parameters: 
+0:338      'inF0' (temp 3X3 matrix of float)
+0:338      'inF1' (temp 3X3 matrix of float)
+0:338      'inF2' (temp 3X3 matrix of float)
+0:?     Sequence
+0:340      all (global bool)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Absolute value (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      any (global bool)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      Ceiling (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      clamp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340        'inF2' (temp 3X3 matrix of float)
+0:340      cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdx (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdxCoarse (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdxFine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdy (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdyCoarse (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdyFine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      degrees (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      determinant (global float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      exp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      exp2 (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      findMSB (global int)
+0:340        Constant:
+0:340          7 (const int)
+0:340      findLSB (global int)
+0:340        Constant:
+0:340          7 (const int)
+0:340      Floor (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Function Call: fmod(mf33;mf33; (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      Fraction (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      frexp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      fwidth (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      ldexp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      log (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      log2 (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      max (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      min (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      pow (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      radians (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      roundEven (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      inverse sqrt (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Sign (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      smoothstep (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340        'inF2' (temp 3X3 matrix of float)
+0:340      sqrt (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      step (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      transpose (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      trunc (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:343      Branch: Return with expression
+0:?         Constant:
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:354  Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:347    Function Parameters: 
+0:347      'inF0' (temp 4X4 matrix of float)
+0:347      'inF1' (temp 4X4 matrix of float)
+0:347      'inF2' (temp 4X4 matrix of float)
+0:?     Sequence
+0:349      all (global bool)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Absolute value (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      any (global bool)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      Ceiling (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      clamp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349        'inF2' (temp 4X4 matrix of float)
+0:349      cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdx (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdxCoarse (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdxFine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdy (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdyCoarse (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdyFine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      degrees (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      determinant (global float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      exp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      exp2 (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      findMSB (global int)
+0:349        Constant:
+0:349          7 (const int)
+0:349      findLSB (global int)
+0:349        Constant:
+0:349          7 (const int)
+0:349      Floor (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Function Call: fmod(mf44;mf44; (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      Fraction (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      frexp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      fwidth (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      ldexp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      log (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      log2 (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      max (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      min (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      pow (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      radians (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      roundEven (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      inverse sqrt (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Sign (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      smoothstep (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349        'inF2' (temp 4X4 matrix of float)
+0:349      sqrt (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      step (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      transpose (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      trunc (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:352      Branch: Return with expression
+0:?         Constant:
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?   Linker Objects
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:62  Function Definition: PixelShaderFunction(f1;f1;f1; (temp float)
+0:2    Function Parameters: 
+0:2      'inF0' (temp float)
+0:2      'inF1' (temp float)
+0:2      'inF2' (temp float)
+0:?     Sequence
+0:3      all (global bool)
+0:3        'inF0' (temp float)
+0:4      Absolute value (global float)
+0:4        'inF0' (temp float)
+0:5      arc cosine (global float)
+0:5        'inF0' (temp float)
+0:6      any (global bool)
+0:6        'inF0' (temp float)
+0:7      arc sine (global float)
+0:7        'inF0' (temp float)
+0:8      arc tangent (global float)
+0:8        'inF0' (temp float)
+0:9      arc tangent (global float)
+0:9        'inF0' (temp float)
+0:9        'inF1' (temp float)
+0:10      Ceiling (global float)
+0:10        'inF0' (temp float)
+0:11      clamp (global float)
+0:11        'inF0' (temp float)
+0:11        'inF1' (temp float)
+0:11        'inF2' (temp float)
+0:12      cosine (global float)
+0:12        'inF0' (temp float)
+0:13      hyp. cosine (global float)
+0:13        'inF0' (temp float)
+0:14      bitCount (global uint)
+0:14        Constant:
+0:14          7 (const uint)
+0:15      dPdx (global float)
+0:15        'inF0' (temp float)
+0:16      dPdxCoarse (global float)
+0:16        'inF0' (temp float)
+0:17      dPdxFine (global float)
+0:17        'inF0' (temp float)
+0:18      dPdy (global float)
+0:18        'inF0' (temp float)
+0:19      dPdyCoarse (global float)
+0:19        'inF0' (temp float)
+0:20      dPdyFine (global float)
+0:20        'inF0' (temp float)
+0:21      degrees (global float)
+0:21        'inF0' (temp float)
+0:25      exp (global float)
+0:25        'inF0' (temp float)
+0:26      exp2 (global float)
+0:26        'inF0' (temp float)
+0:27      findMSB (global int)
+0:27        Constant:
+0:27          7 (const int)
+0:28      findLSB (global int)
+0:28        Constant:
+0:28          7 (const int)
+0:29      Floor (global float)
+0:29        'inF0' (temp float)
+0:31      Function Call: fmod(f1;f1; (global float)
+0:31        'inF0' (temp float)
+0:31        'inF1' (temp float)
+0:32      Fraction (global float)
+0:32        'inF0' (temp float)
+0:33      frexp (global float)
+0:33        'inF0' (temp float)
+0:33        'inF1' (temp float)
+0:34      fwidth (global float)
+0:34        'inF0' (temp float)
+0:35      isinf (global bool)
+0:35        'inF0' (temp float)
+0:36      isnan (global bool)
+0:36        'inF0' (temp float)
+0:37      ldexp (global float)
+0:37        'inF0' (temp float)
+0:37        'inF1' (temp float)
+0:38      log (global float)
+0:38        'inF0' (temp float)
+0:39      log2 (global float)
+0:39        'inF0' (temp float)
+0:40      max (global float)
+0:40        'inF0' (temp float)
+0:40        'inF1' (temp float)
+0:41      min (global float)
+0:41        'inF0' (temp float)
+0:41        'inF1' (temp float)
+0:43      pow (global float)
+0:43        'inF0' (temp float)
+0:43        'inF1' (temp float)
+0:44      radians (global float)
+0:44        'inF0' (temp float)
+0:45      bitFieldReverse (global uint)
+0:45        Constant:
+0:45          2 (const uint)
+0:46      roundEven (global float)
+0:46        'inF0' (temp float)
+0:47      inverse sqrt (global float)
+0:47        'inF0' (temp float)
+0:48      Sign (global float)
+0:48        'inF0' (temp float)
+0:49      sine (global float)
+0:49        'inF0' (temp float)
+0:50      hyp. sine (global float)
+0:50        'inF0' (temp float)
+0:51      smoothstep (global float)
+0:51        'inF0' (temp float)
+0:51        'inF1' (temp float)
+0:51        'inF2' (temp float)
+0:52      sqrt (global float)
+0:52        'inF0' (temp float)
+0:53      step (global float)
+0:53        'inF0' (temp float)
+0:53        'inF1' (temp float)
+0:54      tangent (global float)
+0:54        'inF0' (temp float)
+0:55      hyp. tangent (global float)
+0:55        'inF0' (temp float)
+0:57      trunc (global float)
+0:57        'inF0' (temp float)
+0:59      Branch: Return with expression
+0:59        Constant:
+0:59          0.000000
+0:68  Function Definition: PixelShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:63    Function Parameters: 
+0:63      'inF0' (temp 1-component vector of float)
+0:63      'inF1' (temp 1-component vector of float)
+0:63      'inF2' (temp 1-component vector of float)
+0:?     Sequence
+0:65      Branch: Return with expression
+0:65        Constant:
+0:65          0.000000
+0:137  Function Definition: PixelShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:69    Function Parameters: 
+0:69      'inF0' (temp 2-component vector of float)
+0:69      'inF1' (temp 2-component vector of float)
+0:69      'inF2' (temp 2-component vector of float)
+0:?     Sequence
+0:70      all (global bool)
+0:70        'inF0' (temp 2-component vector of float)
+0:71      Absolute value (global 2-component vector of float)
+0:71        'inF0' (temp 2-component vector of float)
+0:72      arc cosine (global 2-component vector of float)
+0:72        'inF0' (temp 2-component vector of float)
+0:73      any (global bool)
+0:73        'inF0' (temp 2-component vector of float)
+0:74      arc sine (global 2-component vector of float)
+0:74        'inF0' (temp 2-component vector of float)
+0:75      arc tangent (global 2-component vector of float)
+0:75        'inF0' (temp 2-component vector of float)
+0:76      arc tangent (global 2-component vector of float)
+0:76        'inF0' (temp 2-component vector of float)
+0:76        'inF1' (temp 2-component vector of float)
+0:77      Ceiling (global 2-component vector of float)
+0:77        'inF0' (temp 2-component vector of float)
+0:78      clamp (global 2-component vector of float)
+0:78        'inF0' (temp 2-component vector of float)
+0:78        'inF1' (temp 2-component vector of float)
+0:78        'inF2' (temp 2-component vector of float)
+0:79      cosine (global 2-component vector of float)
+0:79        'inF0' (temp 2-component vector of float)
+0:80      hyp. cosine (global 2-component vector of float)
+0:80        'inF0' (temp 2-component vector of float)
+0:?       bitCount (global 2-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:82      dPdx (global 2-component vector of float)
+0:82        'inF0' (temp 2-component vector of float)
+0:83      dPdxCoarse (global 2-component vector of float)
+0:83        'inF0' (temp 2-component vector of float)
+0:84      dPdxFine (global 2-component vector of float)
+0:84        'inF0' (temp 2-component vector of float)
+0:85      dPdy (global 2-component vector of float)
+0:85        'inF0' (temp 2-component vector of float)
+0:86      dPdyCoarse (global 2-component vector of float)
+0:86        'inF0' (temp 2-component vector of float)
+0:87      dPdyFine (global 2-component vector of float)
+0:87        'inF0' (temp 2-component vector of float)
+0:88      degrees (global 2-component vector of float)
+0:88        'inF0' (temp 2-component vector of float)
+0:89      distance (global float)
+0:89        'inF0' (temp 2-component vector of float)
+0:89        'inF1' (temp 2-component vector of float)
+0:90      dot-product (global float)
+0:90        'inF0' (temp 2-component vector of float)
+0:90        'inF1' (temp 2-component vector of float)
+0:94      exp (global 2-component vector of float)
+0:94        'inF0' (temp 2-component vector of float)
+0:95      exp2 (global 2-component vector of float)
+0:95        'inF0' (temp 2-component vector of float)
+0:96      face-forward (global 2-component vector of float)
+0:96        'inF0' (temp 2-component vector of float)
+0:96        'inF1' (temp 2-component vector of float)
+0:96        'inF2' (temp 2-component vector of float)
+0:97      findMSB (global int)
+0:97        Constant:
+0:97          7 (const int)
+0:98      findLSB (global int)
+0:98        Constant:
+0:98          7 (const int)
+0:99      Floor (global 2-component vector of float)
+0:99        'inF0' (temp 2-component vector of float)
+0:101      Function Call: fmod(vf2;vf2; (global 2-component vector of float)
+0:101        'inF0' (temp 2-component vector of float)
+0:101        'inF1' (temp 2-component vector of float)
+0:102      Fraction (global 2-component vector of float)
+0:102        'inF0' (temp 2-component vector of float)
+0:103      frexp (global 2-component vector of float)
+0:103        'inF0' (temp 2-component vector of float)
+0:103        'inF1' (temp 2-component vector of float)
+0:104      fwidth (global 2-component vector of float)
+0:104        'inF0' (temp 2-component vector of float)
+0:105      isinf (global 2-component vector of bool)
+0:105        'inF0' (temp 2-component vector of float)
+0:106      isnan (global 2-component vector of bool)
+0:106        'inF0' (temp 2-component vector of float)
+0:107      ldexp (global 2-component vector of float)
+0:107        'inF0' (temp 2-component vector of float)
+0:107        'inF1' (temp 2-component vector of float)
+0:108      length (global float)
+0:108        'inF0' (temp 2-component vector of float)
+0:109      log (global 2-component vector of float)
+0:109        'inF0' (temp 2-component vector of float)
+0:110      log2 (global 2-component vector of float)
+0:110        'inF0' (temp 2-component vector of float)
+0:111      max (global 2-component vector of float)
+0:111        'inF0' (temp 2-component vector of float)
+0:111        'inF1' (temp 2-component vector of float)
+0:112      min (global 2-component vector of float)
+0:112        'inF0' (temp 2-component vector of float)
+0:112        'inF1' (temp 2-component vector of float)
+0:114      normalize (global 2-component vector of float)
+0:114        'inF0' (temp 2-component vector of float)
+0:115      pow (global 2-component vector of float)
+0:115        'inF0' (temp 2-component vector of float)
+0:115        'inF1' (temp 2-component vector of float)
+0:116      radians (global 2-component vector of float)
+0:116        'inF0' (temp 2-component vector of float)
+0:117      reflect (global 2-component vector of float)
+0:117        'inF0' (temp 2-component vector of float)
+0:117        'inF1' (temp 2-component vector of float)
+0:118      refract (global 2-component vector of float)
+0:118        'inF0' (temp 2-component vector of float)
+0:118        'inF1' (temp 2-component vector of float)
+0:118        Constant:
+0:118          2.000000
+0:?       bitFieldReverse (global 2-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:120      roundEven (global 2-component vector of float)
+0:120        'inF0' (temp 2-component vector of float)
+0:121      inverse sqrt (global 2-component vector of float)
+0:121        'inF0' (temp 2-component vector of float)
+0:122      Sign (global 2-component vector of float)
+0:122        'inF0' (temp 2-component vector of float)
+0:123      sine (global 2-component vector of float)
+0:123        'inF0' (temp 2-component vector of float)
+0:124      hyp. sine (global 2-component vector of float)
+0:124        'inF0' (temp 2-component vector of float)
+0:125      smoothstep (global 2-component vector of float)
+0:125        'inF0' (temp 2-component vector of float)
+0:125        'inF1' (temp 2-component vector of float)
+0:125        'inF2' (temp 2-component vector of float)
+0:126      sqrt (global 2-component vector of float)
+0:126        'inF0' (temp 2-component vector of float)
+0:127      step (global 2-component vector of float)
+0:127        'inF0' (temp 2-component vector of float)
+0:127        'inF1' (temp 2-component vector of float)
+0:128      tangent (global 2-component vector of float)
+0:128        'inF0' (temp 2-component vector of float)
+0:129      hyp. tangent (global 2-component vector of float)
+0:129        'inF0' (temp 2-component vector of float)
+0:131      trunc (global 2-component vector of float)
+0:131        'inF0' (temp 2-component vector of float)
+0:134      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:207  Function Definition: PixelShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:138    Function Parameters: 
+0:138      'inF0' (temp 3-component vector of float)
+0:138      'inF1' (temp 3-component vector of float)
+0:138      'inF2' (temp 3-component vector of float)
+0:?     Sequence
+0:139      all (global bool)
+0:139        'inF0' (temp 3-component vector of float)
+0:140      Absolute value (global 3-component vector of float)
+0:140        'inF0' (temp 3-component vector of float)
+0:141      arc cosine (global 3-component vector of float)
+0:141        'inF0' (temp 3-component vector of float)
+0:142      any (global bool)
+0:142        'inF0' (temp 3-component vector of float)
+0:143      arc sine (global 3-component vector of float)
+0:143        'inF0' (temp 3-component vector of float)
+0:144      arc tangent (global 3-component vector of float)
+0:144        'inF0' (temp 3-component vector of float)
+0:145      arc tangent (global 3-component vector of float)
+0:145        'inF0' (temp 3-component vector of float)
+0:145        'inF1' (temp 3-component vector of float)
+0:146      Ceiling (global 3-component vector of float)
+0:146        'inF0' (temp 3-component vector of float)
+0:147      clamp (global 3-component vector of float)
+0:147        'inF0' (temp 3-component vector of float)
+0:147        'inF1' (temp 3-component vector of float)
+0:147        'inF2' (temp 3-component vector of float)
+0:148      cosine (global 3-component vector of float)
+0:148        'inF0' (temp 3-component vector of float)
+0:149      hyp. cosine (global 3-component vector of float)
+0:149        'inF0' (temp 3-component vector of float)
+0:?       bitCount (global 3-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:151      cross-product (global 3-component vector of float)
+0:151        'inF0' (temp 3-component vector of float)
+0:151        'inF1' (temp 3-component vector of float)
+0:152      dPdx (global 3-component vector of float)
+0:152        'inF0' (temp 3-component vector of float)
+0:153      dPdxCoarse (global 3-component vector of float)
+0:153        'inF0' (temp 3-component vector of float)
+0:154      dPdxFine (global 3-component vector of float)
+0:154        'inF0' (temp 3-component vector of float)
+0:155      dPdy (global 3-component vector of float)
+0:155        'inF0' (temp 3-component vector of float)
+0:156      dPdyCoarse (global 3-component vector of float)
+0:156        'inF0' (temp 3-component vector of float)
+0:157      dPdyFine (global 3-component vector of float)
+0:157        'inF0' (temp 3-component vector of float)
+0:158      degrees (global 3-component vector of float)
+0:158        'inF0' (temp 3-component vector of float)
+0:159      distance (global float)
+0:159        'inF0' (temp 3-component vector of float)
+0:159        'inF1' (temp 3-component vector of float)
+0:160      dot-product (global float)
+0:160        'inF0' (temp 3-component vector of float)
+0:160        'inF1' (temp 3-component vector of float)
+0:164      exp (global 3-component vector of float)
+0:164        'inF0' (temp 3-component vector of float)
+0:165      exp2 (global 3-component vector of float)
+0:165        'inF0' (temp 3-component vector of float)
+0:166      face-forward (global 3-component vector of float)
+0:166        'inF0' (temp 3-component vector of float)
+0:166        'inF1' (temp 3-component vector of float)
+0:166        'inF2' (temp 3-component vector of float)
+0:167      findMSB (global int)
+0:167        Constant:
+0:167          7 (const int)
+0:168      findLSB (global int)
+0:168        Constant:
+0:168          7 (const int)
+0:169      Floor (global 3-component vector of float)
+0:169        'inF0' (temp 3-component vector of float)
+0:171      Function Call: fmod(vf3;vf3; (global 3-component vector of float)
+0:171        'inF0' (temp 3-component vector of float)
+0:171        'inF1' (temp 3-component vector of float)
+0:172      Fraction (global 3-component vector of float)
+0:172        'inF0' (temp 3-component vector of float)
+0:173      frexp (global 3-component vector of float)
+0:173        'inF0' (temp 3-component vector of float)
+0:173        'inF1' (temp 3-component vector of float)
+0:174      fwidth (global 3-component vector of float)
+0:174        'inF0' (temp 3-component vector of float)
+0:175      isinf (global 3-component vector of bool)
+0:175        'inF0' (temp 3-component vector of float)
+0:176      isnan (global 3-component vector of bool)
+0:176        'inF0' (temp 3-component vector of float)
+0:177      ldexp (global 3-component vector of float)
+0:177        'inF0' (temp 3-component vector of float)
+0:177        'inF1' (temp 3-component vector of float)
+0:178      length (global float)
+0:178        'inF0' (temp 3-component vector of float)
+0:179      log (global 3-component vector of float)
+0:179        'inF0' (temp 3-component vector of float)
+0:180      log2 (global 3-component vector of float)
+0:180        'inF0' (temp 3-component vector of float)
+0:181      max (global 3-component vector of float)
+0:181        'inF0' (temp 3-component vector of float)
+0:181        'inF1' (temp 3-component vector of float)
+0:182      min (global 3-component vector of float)
+0:182        'inF0' (temp 3-component vector of float)
+0:182        'inF1' (temp 3-component vector of float)
+0:184      normalize (global 3-component vector of float)
+0:184        'inF0' (temp 3-component vector of float)
+0:185      pow (global 3-component vector of float)
+0:185        'inF0' (temp 3-component vector of float)
+0:185        'inF1' (temp 3-component vector of float)
+0:186      radians (global 3-component vector of float)
+0:186        'inF0' (temp 3-component vector of float)
+0:187      reflect (global 3-component vector of float)
+0:187        'inF0' (temp 3-component vector of float)
+0:187        'inF1' (temp 3-component vector of float)
+0:188      refract (global 3-component vector of float)
+0:188        'inF0' (temp 3-component vector of float)
+0:188        'inF1' (temp 3-component vector of float)
+0:188        Constant:
+0:188          2.000000
+0:?       bitFieldReverse (global 3-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:190      roundEven (global 3-component vector of float)
+0:190        'inF0' (temp 3-component vector of float)
+0:191      inverse sqrt (global 3-component vector of float)
+0:191        'inF0' (temp 3-component vector of float)
+0:192      Sign (global 3-component vector of float)
+0:192        'inF0' (temp 3-component vector of float)
+0:193      sine (global 3-component vector of float)
+0:193        'inF0' (temp 3-component vector of float)
+0:194      hyp. sine (global 3-component vector of float)
+0:194        'inF0' (temp 3-component vector of float)
+0:195      smoothstep (global 3-component vector of float)
+0:195        'inF0' (temp 3-component vector of float)
+0:195        'inF1' (temp 3-component vector of float)
+0:195        'inF2' (temp 3-component vector of float)
+0:196      sqrt (global 3-component vector of float)
+0:196        'inF0' (temp 3-component vector of float)
+0:197      step (global 3-component vector of float)
+0:197        'inF0' (temp 3-component vector of float)
+0:197        'inF1' (temp 3-component vector of float)
+0:198      tangent (global 3-component vector of float)
+0:198        'inF0' (temp 3-component vector of float)
+0:199      hyp. tangent (global 3-component vector of float)
+0:199        'inF0' (temp 3-component vector of float)
+0:201      trunc (global 3-component vector of float)
+0:201        'inF0' (temp 3-component vector of float)
+0:204      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:328  Function Definition: PixelShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:208    Function Parameters: 
+0:208      'inF0' (temp 4-component vector of float)
+0:208      'inF1' (temp 4-component vector of float)
+0:208      'inF2' (temp 4-component vector of float)
+0:?     Sequence
+0:209      all (global bool)
+0:209        'inF0' (temp 4-component vector of float)
+0:210      Absolute value (global 4-component vector of float)
+0:210        'inF0' (temp 4-component vector of float)
+0:211      arc cosine (global 4-component vector of float)
+0:211        'inF0' (temp 4-component vector of float)
+0:212      any (global bool)
+0:212        'inF0' (temp 4-component vector of float)
+0:213      arc sine (global 4-component vector of float)
+0:213        'inF0' (temp 4-component vector of float)
+0:214      arc tangent (global 4-component vector of float)
+0:214        'inF0' (temp 4-component vector of float)
+0:215      arc tangent (global 4-component vector of float)
+0:215        'inF0' (temp 4-component vector of float)
+0:215        'inF1' (temp 4-component vector of float)
+0:216      Ceiling (global 4-component vector of float)
+0:216        'inF0' (temp 4-component vector of float)
+0:217      clamp (global 4-component vector of float)
+0:217        'inF0' (temp 4-component vector of float)
+0:217        'inF1' (temp 4-component vector of float)
+0:217        'inF2' (temp 4-component vector of float)
+0:218      cosine (global 4-component vector of float)
+0:218        'inF0' (temp 4-component vector of float)
+0:219      hyp. cosine (global 4-component vector of float)
+0:219        'inF0' (temp 4-component vector of float)
+0:?       bitCount (global 4-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:?           2 (const uint)
+0:221      dPdx (global 4-component vector of float)
+0:221        'inF0' (temp 4-component vector of float)
+0:222      dPdxCoarse (global 4-component vector of float)
+0:222        'inF0' (temp 4-component vector of float)
+0:223      dPdxFine (global 4-component vector of float)
+0:223        'inF0' (temp 4-component vector of float)
+0:224      dPdy (global 4-component vector of float)
+0:224        'inF0' (temp 4-component vector of float)
+0:225      dPdyCoarse (global 4-component vector of float)
+0:225        'inF0' (temp 4-component vector of float)
+0:226      dPdyFine (global 4-component vector of float)
+0:226        'inF0' (temp 4-component vector of float)
+0:227      degrees (global 4-component vector of float)
+0:227        'inF0' (temp 4-component vector of float)
+0:228      distance (global float)
+0:228        'inF0' (temp 4-component vector of float)
+0:228        'inF1' (temp 4-component vector of float)
+0:229      dot-product (global float)
+0:229        'inF0' (temp 4-component vector of float)
+0:229        'inF1' (temp 4-component vector of float)
+0:233      exp (global 4-component vector of float)
+0:233        'inF0' (temp 4-component vector of float)
+0:234      exp2 (global 4-component vector of float)
+0:234        'inF0' (temp 4-component vector of float)
+0:235      face-forward (global 4-component vector of float)
+0:235        'inF0' (temp 4-component vector of float)
+0:235        'inF1' (temp 4-component vector of float)
+0:235        'inF2' (temp 4-component vector of float)
+0:236      findMSB (global int)
+0:236        Constant:
+0:236          7 (const int)
+0:237      findLSB (global int)
+0:237        Constant:
+0:237          7 (const int)
+0:238      Floor (global 4-component vector of float)
+0:238        'inF0' (temp 4-component vector of float)
+0:240      Function Call: fmod(vf4;vf4; (global 4-component vector of float)
+0:240        'inF0' (temp 4-component vector of float)
+0:240        'inF1' (temp 4-component vector of float)
+0:241      Fraction (global 4-component vector of float)
+0:241        'inF0' (temp 4-component vector of float)
+0:242      frexp (global 4-component vector of float)
+0:242        'inF0' (temp 4-component vector of float)
+0:242        'inF1' (temp 4-component vector of float)
+0:243      fwidth (global 4-component vector of float)
+0:243        'inF0' (temp 4-component vector of float)
+0:244      isinf (global 4-component vector of bool)
+0:244        'inF0' (temp 4-component vector of float)
+0:245      isnan (global 4-component vector of bool)
+0:245        'inF0' (temp 4-component vector of float)
+0:246      ldexp (global 4-component vector of float)
+0:246        'inF0' (temp 4-component vector of float)
+0:246        'inF1' (temp 4-component vector of float)
+0:247      length (global float)
+0:247        'inF0' (temp 4-component vector of float)
+0:248      log (global 4-component vector of float)
+0:248        'inF0' (temp 4-component vector of float)
+0:249      log2 (global 4-component vector of float)
+0:249        'inF0' (temp 4-component vector of float)
+0:250      max (global 4-component vector of float)
+0:250        'inF0' (temp 4-component vector of float)
+0:250        'inF1' (temp 4-component vector of float)
+0:251      min (global 4-component vector of float)
+0:251        'inF0' (temp 4-component vector of float)
+0:251        'inF1' (temp 4-component vector of float)
+0:253      normalize (global 4-component vector of float)
+0:253        'inF0' (temp 4-component vector of float)
+0:254      pow (global 4-component vector of float)
+0:254        'inF0' (temp 4-component vector of float)
+0:254        'inF1' (temp 4-component vector of float)
+0:255      radians (global 4-component vector of float)
+0:255        'inF0' (temp 4-component vector of float)
+0:256      reflect (global 4-component vector of float)
+0:256        'inF0' (temp 4-component vector of float)
+0:256        'inF1' (temp 4-component vector of float)
+0:257      refract (global 4-component vector of float)
+0:257        'inF0' (temp 4-component vector of float)
+0:257        'inF1' (temp 4-component vector of float)
+0:257        Constant:
+0:257          2.000000
+0:?       bitFieldReverse (global 4-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:?           4 (const uint)
+0:259      roundEven (global 4-component vector of float)
+0:259        'inF0' (temp 4-component vector of float)
+0:260      inverse sqrt (global 4-component vector of float)
+0:260        'inF0' (temp 4-component vector of float)
+0:261      Sign (global 4-component vector of float)
+0:261        'inF0' (temp 4-component vector of float)
+0:262      sine (global 4-component vector of float)
+0:262        'inF0' (temp 4-component vector of float)
+0:263      hyp. sine (global 4-component vector of float)
+0:263        'inF0' (temp 4-component vector of float)
+0:264      smoothstep (global 4-component vector of float)
+0:264        'inF0' (temp 4-component vector of float)
+0:264        'inF1' (temp 4-component vector of float)
+0:264        'inF2' (temp 4-component vector of float)
+0:265      sqrt (global 4-component vector of float)
+0:265        'inF0' (temp 4-component vector of float)
+0:266      step (global 4-component vector of float)
+0:266        'inF0' (temp 4-component vector of float)
+0:266        'inF1' (temp 4-component vector of float)
+0:267      tangent (global 4-component vector of float)
+0:267        'inF0' (temp 4-component vector of float)
+0:268      hyp. tangent (global 4-component vector of float)
+0:268        'inF0' (temp 4-component vector of float)
+0:270      trunc (global 4-component vector of float)
+0:270        'inF0' (temp 4-component vector of float)
+0:273      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:?           4.000000
+0:337  Function Definition: PixelShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:329    Function Parameters: 
+0:329      'inF0' (temp 2X2 matrix of float)
+0:329      'inF1' (temp 2X2 matrix of float)
+0:329      'inF2' (temp 2X2 matrix of float)
+0:?     Sequence
+0:331      all (global bool)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Absolute value (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      any (global bool)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      arc tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      Ceiling (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      clamp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331        'inF2' (temp 2X2 matrix of float)
+0:331      cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. cosine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdx (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdxCoarse (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdxFine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdy (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdyCoarse (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      dPdyFine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      degrees (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      determinant (global float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      exp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      exp2 (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      findMSB (global int)
+0:331        Constant:
+0:331          7 (const int)
+0:331      findLSB (global int)
+0:331        Constant:
+0:331          7 (const int)
+0:331      Floor (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Function Call: fmod(mf22;mf22; (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      Fraction (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      frexp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      fwidth (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      ldexp (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      log (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      log2 (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      max (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      min (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      pow (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      radians (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      roundEven (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      inverse sqrt (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      Sign (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. sine (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      smoothstep (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331        'inF2' (temp 2X2 matrix of float)
+0:331      sqrt (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      step (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331        'inF1' (temp 2X2 matrix of float)
+0:331      tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      hyp. tangent (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      transpose (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:331      trunc (global 2X2 matrix of float)
+0:331        'inF0' (temp 2X2 matrix of float)
+0:334      Branch: Return with expression
+0:?         Constant:
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:346  Function Definition: PixelShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:338    Function Parameters: 
+0:338      'inF0' (temp 3X3 matrix of float)
+0:338      'inF1' (temp 3X3 matrix of float)
+0:338      'inF2' (temp 3X3 matrix of float)
+0:?     Sequence
+0:340      all (global bool)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Absolute value (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      any (global bool)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      arc tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      Ceiling (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      clamp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340        'inF2' (temp 3X3 matrix of float)
+0:340      cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. cosine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdx (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdxCoarse (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdxFine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdy (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdyCoarse (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      dPdyFine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      degrees (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      determinant (global float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      exp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      exp2 (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      findMSB (global int)
+0:340        Constant:
+0:340          7 (const int)
+0:340      findLSB (global int)
+0:340        Constant:
+0:340          7 (const int)
+0:340      Floor (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Function Call: fmod(mf33;mf33; (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      Fraction (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      frexp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      fwidth (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      ldexp (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      log (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      log2 (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      max (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      min (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      pow (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      radians (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      roundEven (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      inverse sqrt (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      Sign (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. sine (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      smoothstep (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340        'inF2' (temp 3X3 matrix of float)
+0:340      sqrt (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      step (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340        'inF1' (temp 3X3 matrix of float)
+0:340      tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      hyp. tangent (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      transpose (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:340      trunc (global 3X3 matrix of float)
+0:340        'inF0' (temp 3X3 matrix of float)
+0:343      Branch: Return with expression
+0:?         Constant:
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:354  Function Definition: PixelShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:347    Function Parameters: 
+0:347      'inF0' (temp 4X4 matrix of float)
+0:347      'inF1' (temp 4X4 matrix of float)
+0:347      'inF2' (temp 4X4 matrix of float)
+0:?     Sequence
+0:349      all (global bool)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Absolute value (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      any (global bool)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      arc tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      Ceiling (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      clamp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349        'inF2' (temp 4X4 matrix of float)
+0:349      cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. cosine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdx (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdxCoarse (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdxFine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdy (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdyCoarse (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      dPdyFine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      degrees (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      determinant (global float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      exp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      exp2 (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      findMSB (global int)
+0:349        Constant:
+0:349          7 (const int)
+0:349      findLSB (global int)
+0:349        Constant:
+0:349          7 (const int)
+0:349      Floor (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Function Call: fmod(mf44;mf44; (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      Fraction (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      frexp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      fwidth (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      ldexp (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      log (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      log2 (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      max (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      min (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      pow (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      radians (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      roundEven (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      inverse sqrt (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      Sign (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. sine (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      smoothstep (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349        'inF2' (temp 4X4 matrix of float)
+0:349      sqrt (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      step (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349        'inF1' (temp 4X4 matrix of float)
+0:349      tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      hyp. tangent (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      transpose (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:349      trunc (global 4X4 matrix of float)
+0:349        'inF0' (temp 4X4 matrix of float)
+0:352      Branch: Return with expression
+0:?         Constant:
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?   Linker Objects
+
+Missing functionality: missing user function; linker needs to catch that
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 880
+
+                              Capability Shader
+                              Capability DerivativeControl
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "PixelShaderFunction"
+                              ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 450
+                              Name 4  "PixelShaderFunction"
+                              Name 8  "inF0"
+                              Name 23  "inF1"
+                              Name 30  "inF2"
+                              Name 67  "ResType"
+                              Name 127  "inF0"
+                              Name 141  "inF1"
+                              Name 148  "inF2"
+                              Name 195  "ResType"
+                              Name 268  "inF0"
+                              Name 282  "inF1"
+                              Name 289  "inF2"
+                              Name 339  "ResType"
+                              Name 410  "inF0"
+                              Name 424  "inF1"
+                              Name 431  "inF2"
+                              Name 477  "ResType"
+                              Name 549  "inF0"
+                              Name 563  "inF1"
+                              Name 570  "inF2"
+                              Name 604  "ResType"
+                              Name 660  "inF0"
+                              Name 674  "inF1"
+                              Name 681  "inF2"
+                              Name 715  "ResType"
+                              Name 771  "inF0"
+                              Name 785  "inF1"
+                              Name 792  "inF2"
+                              Name 826  "ResType"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+              10:             TypeBool
+              37:             TypeInt 32 0
+              38:     37(int) Constant 7
+              58:             TypeInt 32 1
+              59:     58(int) Constant 7
+     67(ResType):             TypeStruct 6(float) 58(int)
+              95:     37(int) Constant 2
+             122:    6(float) Constant 0
+             125:             TypeVector 6(float) 2
+             126:             TypePointer Function 125(fvec2)
+             155:             TypeVector 37(int) 2
+             156:     37(int) Constant 3
+             157:  155(ivec2) ConstantComposite 38 156
+             194:             TypeVector 58(int) 2
+    195(ResType):             TypeStruct 125(fvec2) 194(ivec2)
+             202:             TypeVector 10(bool) 2
+             233:    6(float) Constant 1073741824
+             235:     37(int) Constant 1
+             236:  155(ivec2) ConstantComposite 235 95
+             263:    6(float) Constant 1065353216
+             264:  125(fvec2) ConstantComposite 263 233
+             266:             TypeVector 6(float) 3
+             267:             TypePointer Function 266(fvec3)
+             296:             TypeVector 37(int) 3
+             297:     37(int) Constant 5
+             298:  296(ivec3) ConstantComposite 38 156 297
+             338:             TypeVector 58(int) 3
+    339(ResType):             TypeStruct 266(fvec3) 338(ivec3)
+             346:             TypeVector 10(bool) 3
+             378:  296(ivec3) ConstantComposite 235 95 156
+             405:    6(float) Constant 1077936128
+             406:  266(fvec3) ConstantComposite 263 233 405
+             408:             TypeVector 6(float) 4
+             409:             TypePointer Function 408(fvec4)
+             438:             TypeVector 37(int) 4
+             439:  438(ivec4) ConstantComposite 38 156 297 95
+             476:             TypeVector 58(int) 4
+    477(ResType):             TypeStruct 408(fvec4) 476(ivec4)
+             484:             TypeVector 10(bool) 4
+             516:     37(int) Constant 4
+             517:  438(ivec4) ConstantComposite 235 95 156 516
+             544:    6(float) Constant 1082130432
+             545:  408(fvec4) ConstantComposite 263 233 405 544
+             547:             TypeMatrix 125(fvec2) 2
+             548:             TypePointer Function 547
+    604(ResType):             TypeStruct 547 194(ivec2)
+             655:  125(fvec2) ConstantComposite 233 233
+             656:         547 ConstantComposite 655 655
+             658:             TypeMatrix 266(fvec3) 3
+             659:             TypePointer Function 658
+    715(ResType):             TypeStruct 658 338(ivec3)
+             766:  266(fvec3) ConstantComposite 405 405 405
+             767:         658 ConstantComposite 766 766 766
+             769:             TypeMatrix 408(fvec4) 4
+             770:             TypePointer Function 769
+    826(ResType):             TypeStruct 769 476(ivec4)
+             877:  408(fvec4) ConstantComposite 544 544 544 544
+             878:         769 ConstantComposite 877 877 877 877
+4(PixelShaderFunction):           2 Function None 3
+               5:             Label
+         8(inF0):      7(ptr) Variable Function
+        23(inF1):      7(ptr) Variable Function
+        30(inF2):      7(ptr) Variable Function
+       127(inF0):    126(ptr) Variable Function
+       141(inF1):    126(ptr) Variable Function
+       148(inF2):    126(ptr) Variable Function
+       268(inF0):    267(ptr) Variable Function
+       282(inF1):    267(ptr) Variable Function
+       289(inF2):    267(ptr) Variable Function
+       410(inF0):    409(ptr) Variable Function
+       424(inF1):    409(ptr) Variable Function
+       431(inF2):    409(ptr) Variable Function
+       549(inF0):    548(ptr) Variable Function
+       563(inF1):    548(ptr) Variable Function
+       570(inF2):    548(ptr) Variable Function
+       660(inF0):    659(ptr) Variable Function
+       674(inF1):    659(ptr) Variable Function
+       681(inF2):    659(ptr) Variable Function
+       771(inF0):    770(ptr) Variable Function
+       785(inF1):    770(ptr) Variable Function
+       792(inF2):    770(ptr) Variable Function
+               9:    6(float) Load 8(inF0)
+              11:    10(bool) All 9
+              12:    6(float) Load 8(inF0)
+              13:    6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12
+              14:    6(float) Load 8(inF0)
+              15:    6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14
+              16:    6(float) Load 8(inF0)
+              17:    10(bool) Any 16
+              18:    6(float) Load 8(inF0)
+              19:    6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18
+              20:    6(float) Load 8(inF0)
+              21:    6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20
+              22:    6(float) Load 8(inF0)
+              24:    6(float) Load 23(inF1)
+              25:    6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24
+              26:    6(float) Load 8(inF0)
+              27:    6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26
+              28:    6(float) Load 8(inF0)
+              29:    6(float) Load 23(inF1)
+              31:    6(float) Load 30(inF2)
+              32:    6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31
+              33:    6(float) Load 8(inF0)
+              34:    6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33
+              35:    6(float) Load 8(inF0)
+              36:    6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35
+              39:     37(int) BitCount 38
+              40:    6(float) Load 8(inF0)
+              41:    6(float) DPdx 40
+              42:    6(float) Load 8(inF0)
+              43:    6(float) DPdxCoarse 42
+              44:    6(float) Load 8(inF0)
+              45:    6(float) DPdxFine 44
+              46:    6(float) Load 8(inF0)
+              47:    6(float) DPdy 46
+              48:    6(float) Load 8(inF0)
+              49:    6(float) DPdyCoarse 48
+              50:    6(float) Load 8(inF0)
+              51:    6(float) DPdyFine 50
+              52:    6(float) Load 8(inF0)
+              53:    6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 52
+              54:    6(float) Load 8(inF0)
+              55:    6(float) ExtInst 1(GLSL.std.450) 27(Exp) 54
+              56:    6(float) Load 8(inF0)
+              57:    6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 56
+              60:     58(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 59
+              61:     58(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 59
+              62:    6(float) Load 8(inF0)
+              63:    6(float) ExtInst 1(GLSL.std.450) 8(Floor) 62
+              64:    6(float) Load 8(inF0)
+              65:    6(float) ExtInst 1(GLSL.std.450) 10(Fract) 64
+              66:    6(float) Load 8(inF0)
+              68: 67(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 66
+              69:     58(int) CompositeExtract 68 1
+                              Store 23(inF1) 69
+              70:    6(float) CompositeExtract 68 0
+              71:    6(float) Load 8(inF0)
+              72:    6(float) Fwidth 71
+              73:    6(float) Load 8(inF0)
+              74:    10(bool) IsInf 73
+              75:    6(float) Load 8(inF0)
+              76:    10(bool) IsNan 75
+              77:    6(float) Load 8(inF0)
+              78:    6(float) Load 23(inF1)
+              79:    6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 77 78
+              80:    6(float) Load 8(inF0)
+              81:    6(float) ExtInst 1(GLSL.std.450) 28(Log) 80
+              82:    6(float) Load 8(inF0)
+              83:    6(float) ExtInst 1(GLSL.std.450) 30(Log2) 82
+              84:    6(float) Load 8(inF0)
+              85:    6(float) Load 23(inF1)
+              86:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 84 85
+              87:    6(float) Load 8(inF0)
+              88:    6(float) Load 23(inF1)
+              89:    6(float) ExtInst 1(GLSL.std.450) 37(FMin) 87 88
+              90:    6(float) Load 8(inF0)
+              91:    6(float) Load 23(inF1)
+              92:    6(float) ExtInst 1(GLSL.std.450) 26(Pow) 90 91
+              93:    6(float) Load 8(inF0)
+              94:    6(float) ExtInst 1(GLSL.std.450) 11(Radians) 93
+              96:     37(int) BitReverse 95
+              97:    6(float) Load 8(inF0)
+              98:    6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 97
+              99:    6(float) Load 8(inF0)
+             100:    6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 99
+             101:    6(float) Load 8(inF0)
+             102:    6(float) ExtInst 1(GLSL.std.450) 6(FSign) 101
+             103:    6(float) Load 8(inF0)
+             104:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 103
+             105:    6(float) Load 8(inF0)
+             106:    6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 105
+             107:    6(float) Load 8(inF0)
+             108:    6(float) Load 23(inF1)
+             109:    6(float) Load 30(inF2)
+             110:    6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 107 108 109
+             111:    6(float) Load 8(inF0)
+             112:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 111
+             113:    6(float) Load 8(inF0)
+             114:    6(float) Load 23(inF1)
+             115:    6(float) ExtInst 1(GLSL.std.450) 48(Step) 113 114
+             116:    6(float) Load 8(inF0)
+             117:    6(float) ExtInst 1(GLSL.std.450) 15(Tan) 116
+             118:    6(float) Load 8(inF0)
+             119:    6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 118
+             120:    6(float) Load 8(inF0)
+             121:    6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 120
+                              ReturnValue 122
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
new file mode 100644
index 0000000000000000000000000000000000000000..22b301e061c3c89aa92eded35c9f48dfa38ebc16
--- /dev/null
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -0,0 +1,1994 @@
+hlsl.intrinsics.vert
+Shader version: 450
+0:? Sequence
+0:56  Function Definition: VertexShaderFunction(f1;f1;f1; (temp float)
+0:2    Function Parameters: 
+0:2      'inF0' (temp float)
+0:2      'inF1' (temp float)
+0:2      'inF2' (temp float)
+0:?     Sequence
+0:3      all (global bool)
+0:3        'inF0' (temp float)
+0:4      Absolute value (global float)
+0:4        'inF0' (temp float)
+0:5      arc cosine (global float)
+0:5        'inF0' (temp float)
+0:6      any (global bool)
+0:6        'inF0' (temp float)
+0:7      arc sine (global float)
+0:7        'inF0' (temp float)
+0:8      arc tangent (global float)
+0:8        'inF0' (temp float)
+0:9      arc tangent (global float)
+0:9        'inF0' (temp float)
+0:9        'inF1' (temp float)
+0:10      Ceiling (global float)
+0:10        'inF0' (temp float)
+0:11      clamp (global float)
+0:11        'inF0' (temp float)
+0:11        'inF1' (temp float)
+0:11        'inF2' (temp float)
+0:12      cosine (global float)
+0:12        'inF0' (temp float)
+0:13      hyp. cosine (global float)
+0:13        'inF0' (temp float)
+0:14      bitCount (global uint)
+0:14        Constant:
+0:14          7 (const uint)
+0:15      degrees (global float)
+0:15        'inF0' (temp float)
+0:19      exp (global float)
+0:19        'inF0' (temp float)
+0:20      exp2 (global float)
+0:20        'inF0' (temp float)
+0:21      findMSB (global int)
+0:21        Constant:
+0:21          7 (const int)
+0:22      findLSB (global int)
+0:22        Constant:
+0:22          7 (const int)
+0:23      Floor (global float)
+0:23        'inF0' (temp float)
+0:25      Function Call: fmod(f1;f1; (global float)
+0:25        'inF0' (temp float)
+0:25        'inF1' (temp float)
+0:26      Fraction (global float)
+0:26        'inF0' (temp float)
+0:27      frexp (global float)
+0:27        'inF0' (temp float)
+0:27        'inF1' (temp float)
+0:28      fwidth (global float)
+0:28        'inF0' (temp float)
+0:29      isinf (global bool)
+0:29        'inF0' (temp float)
+0:30      isnan (global bool)
+0:30        'inF0' (temp float)
+0:31      ldexp (global float)
+0:31        'inF0' (temp float)
+0:31        'inF1' (temp float)
+0:32      log (global float)
+0:32        'inF0' (temp float)
+0:33      log2 (global float)
+0:33        'inF0' (temp float)
+0:34      max (global float)
+0:34        'inF0' (temp float)
+0:34        'inF1' (temp float)
+0:35      min (global float)
+0:35        'inF0' (temp float)
+0:35        'inF1' (temp float)
+0:37      pow (global float)
+0:37        'inF0' (temp float)
+0:37        'inF1' (temp float)
+0:38      radians (global float)
+0:38        'inF0' (temp float)
+0:39      bitFieldReverse (global uint)
+0:39        Constant:
+0:39          2 (const uint)
+0:40      roundEven (global float)
+0:40        'inF0' (temp float)
+0:41      inverse sqrt (global float)
+0:41        'inF0' (temp float)
+0:42      Sign (global float)
+0:42        'inF0' (temp float)
+0:43      sine (global float)
+0:43        'inF0' (temp float)
+0:44      hyp. sine (global float)
+0:44        'inF0' (temp float)
+0:45      smoothstep (global float)
+0:45        'inF0' (temp float)
+0:45        'inF1' (temp float)
+0:45        'inF2' (temp float)
+0:46      sqrt (global float)
+0:46        'inF0' (temp float)
+0:47      step (global float)
+0:47        'inF0' (temp float)
+0:47        'inF1' (temp float)
+0:48      tangent (global float)
+0:48        'inF0' (temp float)
+0:49      hyp. tangent (global float)
+0:49        'inF0' (temp float)
+0:51      trunc (global float)
+0:51        'inF0' (temp float)
+0:53      Branch: Return with expression
+0:53        Constant:
+0:53          0.000000
+0:62  Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:57    Function Parameters: 
+0:57      'inF0' (temp 1-component vector of float)
+0:57      'inF1' (temp 1-component vector of float)
+0:57      'inF2' (temp 1-component vector of float)
+0:?     Sequence
+0:59      Branch: Return with expression
+0:59        Constant:
+0:59          0.000000
+0:125  Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:63    Function Parameters: 
+0:63      'inF0' (temp 2-component vector of float)
+0:63      'inF1' (temp 2-component vector of float)
+0:63      'inF2' (temp 2-component vector of float)
+0:?     Sequence
+0:64      all (global bool)
+0:64        'inF0' (temp 2-component vector of float)
+0:65      Absolute value (global 2-component vector of float)
+0:65        'inF0' (temp 2-component vector of float)
+0:66      arc cosine (global 2-component vector of float)
+0:66        'inF0' (temp 2-component vector of float)
+0:67      any (global bool)
+0:67        'inF0' (temp 2-component vector of float)
+0:68      arc sine (global 2-component vector of float)
+0:68        'inF0' (temp 2-component vector of float)
+0:69      arc tangent (global 2-component vector of float)
+0:69        'inF0' (temp 2-component vector of float)
+0:70      arc tangent (global 2-component vector of float)
+0:70        'inF0' (temp 2-component vector of float)
+0:70        'inF1' (temp 2-component vector of float)
+0:71      Ceiling (global 2-component vector of float)
+0:71        'inF0' (temp 2-component vector of float)
+0:72      clamp (global 2-component vector of float)
+0:72        'inF0' (temp 2-component vector of float)
+0:72        'inF1' (temp 2-component vector of float)
+0:72        'inF2' (temp 2-component vector of float)
+0:73      cosine (global 2-component vector of float)
+0:73        'inF0' (temp 2-component vector of float)
+0:74      hyp. cosine (global 2-component vector of float)
+0:74        'inF0' (temp 2-component vector of float)
+0:?       bitCount (global 2-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:76      degrees (global 2-component vector of float)
+0:76        'inF0' (temp 2-component vector of float)
+0:77      distance (global float)
+0:77        'inF0' (temp 2-component vector of float)
+0:77        'inF1' (temp 2-component vector of float)
+0:78      dot-product (global float)
+0:78        'inF0' (temp 2-component vector of float)
+0:78        'inF1' (temp 2-component vector of float)
+0:82      exp (global 2-component vector of float)
+0:82        'inF0' (temp 2-component vector of float)
+0:83      exp2 (global 2-component vector of float)
+0:83        'inF0' (temp 2-component vector of float)
+0:84      face-forward (global 2-component vector of float)
+0:84        'inF0' (temp 2-component vector of float)
+0:84        'inF1' (temp 2-component vector of float)
+0:84        'inF2' (temp 2-component vector of float)
+0:85      findMSB (global int)
+0:85        Constant:
+0:85          7 (const int)
+0:86      findLSB (global int)
+0:86        Constant:
+0:86          7 (const int)
+0:87      Floor (global 2-component vector of float)
+0:87        'inF0' (temp 2-component vector of float)
+0:89      Function Call: fmod(vf2;vf2; (global 2-component vector of float)
+0:89        'inF0' (temp 2-component vector of float)
+0:89        'inF1' (temp 2-component vector of float)
+0:90      Fraction (global 2-component vector of float)
+0:90        'inF0' (temp 2-component vector of float)
+0:91      frexp (global 2-component vector of float)
+0:91        'inF0' (temp 2-component vector of float)
+0:91        'inF1' (temp 2-component vector of float)
+0:92      fwidth (global 2-component vector of float)
+0:92        'inF0' (temp 2-component vector of float)
+0:93      isinf (global 2-component vector of bool)
+0:93        'inF0' (temp 2-component vector of float)
+0:94      isnan (global 2-component vector of bool)
+0:94        'inF0' (temp 2-component vector of float)
+0:95      ldexp (global 2-component vector of float)
+0:95        'inF0' (temp 2-component vector of float)
+0:95        'inF1' (temp 2-component vector of float)
+0:96      length (global float)
+0:96        'inF0' (temp 2-component vector of float)
+0:97      log (global 2-component vector of float)
+0:97        'inF0' (temp 2-component vector of float)
+0:98      log2 (global 2-component vector of float)
+0:98        'inF0' (temp 2-component vector of float)
+0:99      max (global 2-component vector of float)
+0:99        'inF0' (temp 2-component vector of float)
+0:99        'inF1' (temp 2-component vector of float)
+0:100      min (global 2-component vector of float)
+0:100        'inF0' (temp 2-component vector of float)
+0:100        'inF1' (temp 2-component vector of float)
+0:102      normalize (global 2-component vector of float)
+0:102        'inF0' (temp 2-component vector of float)
+0:103      pow (global 2-component vector of float)
+0:103        'inF0' (temp 2-component vector of float)
+0:103        'inF1' (temp 2-component vector of float)
+0:104      radians (global 2-component vector of float)
+0:104        'inF0' (temp 2-component vector of float)
+0:105      reflect (global 2-component vector of float)
+0:105        'inF0' (temp 2-component vector of float)
+0:105        'inF1' (temp 2-component vector of float)
+0:106      refract (global 2-component vector of float)
+0:106        'inF0' (temp 2-component vector of float)
+0:106        'inF1' (temp 2-component vector of float)
+0:106        Constant:
+0:106          2.000000
+0:?       bitFieldReverse (global 2-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:108      roundEven (global 2-component vector of float)
+0:108        'inF0' (temp 2-component vector of float)
+0:109      inverse sqrt (global 2-component vector of float)
+0:109        'inF0' (temp 2-component vector of float)
+0:110      Sign (global 2-component vector of float)
+0:110        'inF0' (temp 2-component vector of float)
+0:111      sine (global 2-component vector of float)
+0:111        'inF0' (temp 2-component vector of float)
+0:112      hyp. sine (global 2-component vector of float)
+0:112        'inF0' (temp 2-component vector of float)
+0:113      smoothstep (global 2-component vector of float)
+0:113        'inF0' (temp 2-component vector of float)
+0:113        'inF1' (temp 2-component vector of float)
+0:113        'inF2' (temp 2-component vector of float)
+0:114      sqrt (global 2-component vector of float)
+0:114        'inF0' (temp 2-component vector of float)
+0:115      step (global 2-component vector of float)
+0:115        'inF0' (temp 2-component vector of float)
+0:115        'inF1' (temp 2-component vector of float)
+0:116      tangent (global 2-component vector of float)
+0:116        'inF0' (temp 2-component vector of float)
+0:117      hyp. tangent (global 2-component vector of float)
+0:117        'inF0' (temp 2-component vector of float)
+0:119      trunc (global 2-component vector of float)
+0:119        'inF0' (temp 2-component vector of float)
+0:122      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:189  Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:126    Function Parameters: 
+0:126      'inF0' (temp 3-component vector of float)
+0:126      'inF1' (temp 3-component vector of float)
+0:126      'inF2' (temp 3-component vector of float)
+0:?     Sequence
+0:127      all (global bool)
+0:127        'inF0' (temp 3-component vector of float)
+0:128      Absolute value (global 3-component vector of float)
+0:128        'inF0' (temp 3-component vector of float)
+0:129      arc cosine (global 3-component vector of float)
+0:129        'inF0' (temp 3-component vector of float)
+0:130      any (global bool)
+0:130        'inF0' (temp 3-component vector of float)
+0:131      arc sine (global 3-component vector of float)
+0:131        'inF0' (temp 3-component vector of float)
+0:132      arc tangent (global 3-component vector of float)
+0:132        'inF0' (temp 3-component vector of float)
+0:133      arc tangent (global 3-component vector of float)
+0:133        'inF0' (temp 3-component vector of float)
+0:133        'inF1' (temp 3-component vector of float)
+0:134      Ceiling (global 3-component vector of float)
+0:134        'inF0' (temp 3-component vector of float)
+0:135      clamp (global 3-component vector of float)
+0:135        'inF0' (temp 3-component vector of float)
+0:135        'inF1' (temp 3-component vector of float)
+0:135        'inF2' (temp 3-component vector of float)
+0:136      cosine (global 3-component vector of float)
+0:136        'inF0' (temp 3-component vector of float)
+0:137      hyp. cosine (global 3-component vector of float)
+0:137        'inF0' (temp 3-component vector of float)
+0:?       bitCount (global 3-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:139      cross-product (global 3-component vector of float)
+0:139        'inF0' (temp 3-component vector of float)
+0:139        'inF1' (temp 3-component vector of float)
+0:140      degrees (global 3-component vector of float)
+0:140        'inF0' (temp 3-component vector of float)
+0:141      distance (global float)
+0:141        'inF0' (temp 3-component vector of float)
+0:141        'inF1' (temp 3-component vector of float)
+0:142      dot-product (global float)
+0:142        'inF0' (temp 3-component vector of float)
+0:142        'inF1' (temp 3-component vector of float)
+0:146      exp (global 3-component vector of float)
+0:146        'inF0' (temp 3-component vector of float)
+0:147      exp2 (global 3-component vector of float)
+0:147        'inF0' (temp 3-component vector of float)
+0:148      face-forward (global 3-component vector of float)
+0:148        'inF0' (temp 3-component vector of float)
+0:148        'inF1' (temp 3-component vector of float)
+0:148        'inF2' (temp 3-component vector of float)
+0:149      findMSB (global int)
+0:149        Constant:
+0:149          7 (const int)
+0:150      findLSB (global int)
+0:150        Constant:
+0:150          7 (const int)
+0:151      Floor (global 3-component vector of float)
+0:151        'inF0' (temp 3-component vector of float)
+0:153      Function Call: fmod(vf3;vf3; (global 3-component vector of float)
+0:153        'inF0' (temp 3-component vector of float)
+0:153        'inF1' (temp 3-component vector of float)
+0:154      Fraction (global 3-component vector of float)
+0:154        'inF0' (temp 3-component vector of float)
+0:155      frexp (global 3-component vector of float)
+0:155        'inF0' (temp 3-component vector of float)
+0:155        'inF1' (temp 3-component vector of float)
+0:156      fwidth (global 3-component vector of float)
+0:156        'inF0' (temp 3-component vector of float)
+0:157      isinf (global 3-component vector of bool)
+0:157        'inF0' (temp 3-component vector of float)
+0:158      isnan (global 3-component vector of bool)
+0:158        'inF0' (temp 3-component vector of float)
+0:159      ldexp (global 3-component vector of float)
+0:159        'inF0' (temp 3-component vector of float)
+0:159        'inF1' (temp 3-component vector of float)
+0:160      length (global float)
+0:160        'inF0' (temp 3-component vector of float)
+0:161      log (global 3-component vector of float)
+0:161        'inF0' (temp 3-component vector of float)
+0:162      log2 (global 3-component vector of float)
+0:162        'inF0' (temp 3-component vector of float)
+0:163      max (global 3-component vector of float)
+0:163        'inF0' (temp 3-component vector of float)
+0:163        'inF1' (temp 3-component vector of float)
+0:164      min (global 3-component vector of float)
+0:164        'inF0' (temp 3-component vector of float)
+0:164        'inF1' (temp 3-component vector of float)
+0:166      normalize (global 3-component vector of float)
+0:166        'inF0' (temp 3-component vector of float)
+0:167      pow (global 3-component vector of float)
+0:167        'inF0' (temp 3-component vector of float)
+0:167        'inF1' (temp 3-component vector of float)
+0:168      radians (global 3-component vector of float)
+0:168        'inF0' (temp 3-component vector of float)
+0:169      reflect (global 3-component vector of float)
+0:169        'inF0' (temp 3-component vector of float)
+0:169        'inF1' (temp 3-component vector of float)
+0:170      refract (global 3-component vector of float)
+0:170        'inF0' (temp 3-component vector of float)
+0:170        'inF1' (temp 3-component vector of float)
+0:170        Constant:
+0:170          2.000000
+0:?       bitFieldReverse (global 3-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:172      roundEven (global 3-component vector of float)
+0:172        'inF0' (temp 3-component vector of float)
+0:173      inverse sqrt (global 3-component vector of float)
+0:173        'inF0' (temp 3-component vector of float)
+0:174      Sign (global 3-component vector of float)
+0:174        'inF0' (temp 3-component vector of float)
+0:175      sine (global 3-component vector of float)
+0:175        'inF0' (temp 3-component vector of float)
+0:176      hyp. sine (global 3-component vector of float)
+0:176        'inF0' (temp 3-component vector of float)
+0:177      smoothstep (global 3-component vector of float)
+0:177        'inF0' (temp 3-component vector of float)
+0:177        'inF1' (temp 3-component vector of float)
+0:177        'inF2' (temp 3-component vector of float)
+0:178      sqrt (global 3-component vector of float)
+0:178        'inF0' (temp 3-component vector of float)
+0:179      step (global 3-component vector of float)
+0:179        'inF0' (temp 3-component vector of float)
+0:179        'inF1' (temp 3-component vector of float)
+0:180      tangent (global 3-component vector of float)
+0:180        'inF0' (temp 3-component vector of float)
+0:181      hyp. tangent (global 3-component vector of float)
+0:181        'inF0' (temp 3-component vector of float)
+0:183      trunc (global 3-component vector of float)
+0:183        'inF0' (temp 3-component vector of float)
+0:186      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:298  Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:190    Function Parameters: 
+0:190      'inF0' (temp 4-component vector of float)
+0:190      'inF1' (temp 4-component vector of float)
+0:190      'inF2' (temp 4-component vector of float)
+0:?     Sequence
+0:191      all (global bool)
+0:191        'inF0' (temp 4-component vector of float)
+0:192      Absolute value (global 4-component vector of float)
+0:192        'inF0' (temp 4-component vector of float)
+0:193      arc cosine (global 4-component vector of float)
+0:193        'inF0' (temp 4-component vector of float)
+0:194      any (global bool)
+0:194        'inF0' (temp 4-component vector of float)
+0:195      arc sine (global 4-component vector of float)
+0:195        'inF0' (temp 4-component vector of float)
+0:196      arc tangent (global 4-component vector of float)
+0:196        'inF0' (temp 4-component vector of float)
+0:197      arc tangent (global 4-component vector of float)
+0:197        'inF0' (temp 4-component vector of float)
+0:197        'inF1' (temp 4-component vector of float)
+0:198      Ceiling (global 4-component vector of float)
+0:198        'inF0' (temp 4-component vector of float)
+0:199      clamp (global 4-component vector of float)
+0:199        'inF0' (temp 4-component vector of float)
+0:199        'inF1' (temp 4-component vector of float)
+0:199        'inF2' (temp 4-component vector of float)
+0:200      cosine (global 4-component vector of float)
+0:200        'inF0' (temp 4-component vector of float)
+0:201      hyp. cosine (global 4-component vector of float)
+0:201        'inF0' (temp 4-component vector of float)
+0:?       bitCount (global 4-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:?           2 (const uint)
+0:203      degrees (global 4-component vector of float)
+0:203        'inF0' (temp 4-component vector of float)
+0:204      distance (global float)
+0:204        'inF0' (temp 4-component vector of float)
+0:204        'inF1' (temp 4-component vector of float)
+0:205      dot-product (global float)
+0:205        'inF0' (temp 4-component vector of float)
+0:205        'inF1' (temp 4-component vector of float)
+0:209      exp (global 4-component vector of float)
+0:209        'inF0' (temp 4-component vector of float)
+0:210      exp2 (global 4-component vector of float)
+0:210        'inF0' (temp 4-component vector of float)
+0:211      face-forward (global 4-component vector of float)
+0:211        'inF0' (temp 4-component vector of float)
+0:211        'inF1' (temp 4-component vector of float)
+0:211        'inF2' (temp 4-component vector of float)
+0:212      findMSB (global int)
+0:212        Constant:
+0:212          7 (const int)
+0:213      findLSB (global int)
+0:213        Constant:
+0:213          7 (const int)
+0:214      Floor (global 4-component vector of float)
+0:214        'inF0' (temp 4-component vector of float)
+0:216      Function Call: fmod(vf4;vf4; (global 4-component vector of float)
+0:216        'inF0' (temp 4-component vector of float)
+0:216        'inF1' (temp 4-component vector of float)
+0:217      Fraction (global 4-component vector of float)
+0:217        'inF0' (temp 4-component vector of float)
+0:218      frexp (global 4-component vector of float)
+0:218        'inF0' (temp 4-component vector of float)
+0:218        'inF1' (temp 4-component vector of float)
+0:219      fwidth (global 4-component vector of float)
+0:219        'inF0' (temp 4-component vector of float)
+0:220      isinf (global 4-component vector of bool)
+0:220        'inF0' (temp 4-component vector of float)
+0:221      isnan (global 4-component vector of bool)
+0:221        'inF0' (temp 4-component vector of float)
+0:222      ldexp (global 4-component vector of float)
+0:222        'inF0' (temp 4-component vector of float)
+0:222        'inF1' (temp 4-component vector of float)
+0:223      length (global float)
+0:223        'inF0' (temp 4-component vector of float)
+0:224      log (global 4-component vector of float)
+0:224        'inF0' (temp 4-component vector of float)
+0:225      log2 (global 4-component vector of float)
+0:225        'inF0' (temp 4-component vector of float)
+0:226      max (global 4-component vector of float)
+0:226        'inF0' (temp 4-component vector of float)
+0:226        'inF1' (temp 4-component vector of float)
+0:227      min (global 4-component vector of float)
+0:227        'inF0' (temp 4-component vector of float)
+0:227        'inF1' (temp 4-component vector of float)
+0:229      normalize (global 4-component vector of float)
+0:229        'inF0' (temp 4-component vector of float)
+0:230      pow (global 4-component vector of float)
+0:230        'inF0' (temp 4-component vector of float)
+0:230        'inF1' (temp 4-component vector of float)
+0:231      radians (global 4-component vector of float)
+0:231        'inF0' (temp 4-component vector of float)
+0:232      reflect (global 4-component vector of float)
+0:232        'inF0' (temp 4-component vector of float)
+0:232        'inF1' (temp 4-component vector of float)
+0:233      refract (global 4-component vector of float)
+0:233        'inF0' (temp 4-component vector of float)
+0:233        'inF1' (temp 4-component vector of float)
+0:233        Constant:
+0:233          2.000000
+0:?       bitFieldReverse (global 4-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:?           4 (const uint)
+0:235      roundEven (global 4-component vector of float)
+0:235        'inF0' (temp 4-component vector of float)
+0:236      inverse sqrt (global 4-component vector of float)
+0:236        'inF0' (temp 4-component vector of float)
+0:237      Sign (global 4-component vector of float)
+0:237        'inF0' (temp 4-component vector of float)
+0:238      sine (global 4-component vector of float)
+0:238        'inF0' (temp 4-component vector of float)
+0:239      hyp. sine (global 4-component vector of float)
+0:239        'inF0' (temp 4-component vector of float)
+0:240      smoothstep (global 4-component vector of float)
+0:240        'inF0' (temp 4-component vector of float)
+0:240        'inF1' (temp 4-component vector of float)
+0:240        'inF2' (temp 4-component vector of float)
+0:241      sqrt (global 4-component vector of float)
+0:241        'inF0' (temp 4-component vector of float)
+0:242      step (global 4-component vector of float)
+0:242        'inF0' (temp 4-component vector of float)
+0:242        'inF1' (temp 4-component vector of float)
+0:243      tangent (global 4-component vector of float)
+0:243        'inF0' (temp 4-component vector of float)
+0:244      hyp. tangent (global 4-component vector of float)
+0:244        'inF0' (temp 4-component vector of float)
+0:246      trunc (global 4-component vector of float)
+0:246        'inF0' (temp 4-component vector of float)
+0:249      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:?           4.000000
+0:307  Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:299    Function Parameters: 
+0:299      'inF0' (temp 2X2 matrix of float)
+0:299      'inF1' (temp 2X2 matrix of float)
+0:299      'inF2' (temp 2X2 matrix of float)
+0:?     Sequence
+0:301      all (global bool)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Absolute value (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      any (global bool)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      Ceiling (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      clamp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301        'inF2' (temp 2X2 matrix of float)
+0:301      cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      degrees (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      determinant (global float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      exp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      exp2 (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      findMSB (global int)
+0:301        Constant:
+0:301          7 (const int)
+0:301      findLSB (global int)
+0:301        Constant:
+0:301          7 (const int)
+0:301      Floor (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Function Call: fmod(mf22;mf22; (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      Fraction (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      frexp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      fwidth (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      ldexp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      log (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      log2 (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      max (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      min (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      pow (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      radians (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      roundEven (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      inverse sqrt (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Sign (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      smoothstep (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301        'inF2' (temp 2X2 matrix of float)
+0:301      sqrt (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      step (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      transpose (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      trunc (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:304      Branch: Return with expression
+0:?         Constant:
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:316  Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:308    Function Parameters: 
+0:308      'inF0' (temp 3X3 matrix of float)
+0:308      'inF1' (temp 3X3 matrix of float)
+0:308      'inF2' (temp 3X3 matrix of float)
+0:?     Sequence
+0:310      all (global bool)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Absolute value (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      any (global bool)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      Ceiling (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      clamp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310        'inF2' (temp 3X3 matrix of float)
+0:310      cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      degrees (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      determinant (global float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      exp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      exp2 (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      findMSB (global int)
+0:310        Constant:
+0:310          7 (const int)
+0:310      findLSB (global int)
+0:310        Constant:
+0:310          7 (const int)
+0:310      Floor (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Function Call: fmod(mf33;mf33; (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      Fraction (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      frexp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      fwidth (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      ldexp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      log (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      log2 (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      max (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      min (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      pow (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      radians (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      roundEven (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      inverse sqrt (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Sign (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      smoothstep (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310        'inF2' (temp 3X3 matrix of float)
+0:310      sqrt (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      step (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      transpose (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      trunc (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:313      Branch: Return with expression
+0:?         Constant:
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:324  Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:317    Function Parameters: 
+0:317      'inF0' (temp 4X4 matrix of float)
+0:317      'inF1' (temp 4X4 matrix of float)
+0:317      'inF2' (temp 4X4 matrix of float)
+0:?     Sequence
+0:319      all (global bool)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Absolute value (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      any (global bool)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      Ceiling (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      clamp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319        'inF2' (temp 4X4 matrix of float)
+0:319      cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      degrees (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      determinant (global float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      exp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      exp2 (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      findMSB (global int)
+0:319        Constant:
+0:319          7 (const int)
+0:319      findLSB (global int)
+0:319        Constant:
+0:319          7 (const int)
+0:319      Floor (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Function Call: fmod(mf44;mf44; (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      Fraction (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      frexp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      fwidth (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      ldexp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      log (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      log2 (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      max (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      min (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      pow (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      radians (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      roundEven (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      inverse sqrt (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Sign (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      smoothstep (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319        'inF2' (temp 4X4 matrix of float)
+0:319      sqrt (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      step (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      transpose (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      trunc (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:322      Branch: Return with expression
+0:?         Constant:
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?   Linker Objects
+
+
+Linked vertex stage:
+
+
+Shader version: 450
+0:? Sequence
+0:56  Function Definition: VertexShaderFunction(f1;f1;f1; (temp float)
+0:2    Function Parameters: 
+0:2      'inF0' (temp float)
+0:2      'inF1' (temp float)
+0:2      'inF2' (temp float)
+0:?     Sequence
+0:3      all (global bool)
+0:3        'inF0' (temp float)
+0:4      Absolute value (global float)
+0:4        'inF0' (temp float)
+0:5      arc cosine (global float)
+0:5        'inF0' (temp float)
+0:6      any (global bool)
+0:6        'inF0' (temp float)
+0:7      arc sine (global float)
+0:7        'inF0' (temp float)
+0:8      arc tangent (global float)
+0:8        'inF0' (temp float)
+0:9      arc tangent (global float)
+0:9        'inF0' (temp float)
+0:9        'inF1' (temp float)
+0:10      Ceiling (global float)
+0:10        'inF0' (temp float)
+0:11      clamp (global float)
+0:11        'inF0' (temp float)
+0:11        'inF1' (temp float)
+0:11        'inF2' (temp float)
+0:12      cosine (global float)
+0:12        'inF0' (temp float)
+0:13      hyp. cosine (global float)
+0:13        'inF0' (temp float)
+0:14      bitCount (global uint)
+0:14        Constant:
+0:14          7 (const uint)
+0:15      degrees (global float)
+0:15        'inF0' (temp float)
+0:19      exp (global float)
+0:19        'inF0' (temp float)
+0:20      exp2 (global float)
+0:20        'inF0' (temp float)
+0:21      findMSB (global int)
+0:21        Constant:
+0:21          7 (const int)
+0:22      findLSB (global int)
+0:22        Constant:
+0:22          7 (const int)
+0:23      Floor (global float)
+0:23        'inF0' (temp float)
+0:25      Function Call: fmod(f1;f1; (global float)
+0:25        'inF0' (temp float)
+0:25        'inF1' (temp float)
+0:26      Fraction (global float)
+0:26        'inF0' (temp float)
+0:27      frexp (global float)
+0:27        'inF0' (temp float)
+0:27        'inF1' (temp float)
+0:28      fwidth (global float)
+0:28        'inF0' (temp float)
+0:29      isinf (global bool)
+0:29        'inF0' (temp float)
+0:30      isnan (global bool)
+0:30        'inF0' (temp float)
+0:31      ldexp (global float)
+0:31        'inF0' (temp float)
+0:31        'inF1' (temp float)
+0:32      log (global float)
+0:32        'inF0' (temp float)
+0:33      log2 (global float)
+0:33        'inF0' (temp float)
+0:34      max (global float)
+0:34        'inF0' (temp float)
+0:34        'inF1' (temp float)
+0:35      min (global float)
+0:35        'inF0' (temp float)
+0:35        'inF1' (temp float)
+0:37      pow (global float)
+0:37        'inF0' (temp float)
+0:37        'inF1' (temp float)
+0:38      radians (global float)
+0:38        'inF0' (temp float)
+0:39      bitFieldReverse (global uint)
+0:39        Constant:
+0:39          2 (const uint)
+0:40      roundEven (global float)
+0:40        'inF0' (temp float)
+0:41      inverse sqrt (global float)
+0:41        'inF0' (temp float)
+0:42      Sign (global float)
+0:42        'inF0' (temp float)
+0:43      sine (global float)
+0:43        'inF0' (temp float)
+0:44      hyp. sine (global float)
+0:44        'inF0' (temp float)
+0:45      smoothstep (global float)
+0:45        'inF0' (temp float)
+0:45        'inF1' (temp float)
+0:45        'inF2' (temp float)
+0:46      sqrt (global float)
+0:46        'inF0' (temp float)
+0:47      step (global float)
+0:47        'inF0' (temp float)
+0:47        'inF1' (temp float)
+0:48      tangent (global float)
+0:48        'inF0' (temp float)
+0:49      hyp. tangent (global float)
+0:49        'inF0' (temp float)
+0:51      trunc (global float)
+0:51        'inF0' (temp float)
+0:53      Branch: Return with expression
+0:53        Constant:
+0:53          0.000000
+0:62  Function Definition: VertexShaderFunction(vf1;vf1;vf1; (temp 1-component vector of float)
+0:57    Function Parameters: 
+0:57      'inF0' (temp 1-component vector of float)
+0:57      'inF1' (temp 1-component vector of float)
+0:57      'inF2' (temp 1-component vector of float)
+0:?     Sequence
+0:59      Branch: Return with expression
+0:59        Constant:
+0:59          0.000000
+0:125  Function Definition: VertexShaderFunction(vf2;vf2;vf2; (temp 2-component vector of float)
+0:63    Function Parameters: 
+0:63      'inF0' (temp 2-component vector of float)
+0:63      'inF1' (temp 2-component vector of float)
+0:63      'inF2' (temp 2-component vector of float)
+0:?     Sequence
+0:64      all (global bool)
+0:64        'inF0' (temp 2-component vector of float)
+0:65      Absolute value (global 2-component vector of float)
+0:65        'inF0' (temp 2-component vector of float)
+0:66      arc cosine (global 2-component vector of float)
+0:66        'inF0' (temp 2-component vector of float)
+0:67      any (global bool)
+0:67        'inF0' (temp 2-component vector of float)
+0:68      arc sine (global 2-component vector of float)
+0:68        'inF0' (temp 2-component vector of float)
+0:69      arc tangent (global 2-component vector of float)
+0:69        'inF0' (temp 2-component vector of float)
+0:70      arc tangent (global 2-component vector of float)
+0:70        'inF0' (temp 2-component vector of float)
+0:70        'inF1' (temp 2-component vector of float)
+0:71      Ceiling (global 2-component vector of float)
+0:71        'inF0' (temp 2-component vector of float)
+0:72      clamp (global 2-component vector of float)
+0:72        'inF0' (temp 2-component vector of float)
+0:72        'inF1' (temp 2-component vector of float)
+0:72        'inF2' (temp 2-component vector of float)
+0:73      cosine (global 2-component vector of float)
+0:73        'inF0' (temp 2-component vector of float)
+0:74      hyp. cosine (global 2-component vector of float)
+0:74        'inF0' (temp 2-component vector of float)
+0:?       bitCount (global 2-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:76      degrees (global 2-component vector of float)
+0:76        'inF0' (temp 2-component vector of float)
+0:77      distance (global float)
+0:77        'inF0' (temp 2-component vector of float)
+0:77        'inF1' (temp 2-component vector of float)
+0:78      dot-product (global float)
+0:78        'inF0' (temp 2-component vector of float)
+0:78        'inF1' (temp 2-component vector of float)
+0:82      exp (global 2-component vector of float)
+0:82        'inF0' (temp 2-component vector of float)
+0:83      exp2 (global 2-component vector of float)
+0:83        'inF0' (temp 2-component vector of float)
+0:84      face-forward (global 2-component vector of float)
+0:84        'inF0' (temp 2-component vector of float)
+0:84        'inF1' (temp 2-component vector of float)
+0:84        'inF2' (temp 2-component vector of float)
+0:85      findMSB (global int)
+0:85        Constant:
+0:85          7 (const int)
+0:86      findLSB (global int)
+0:86        Constant:
+0:86          7 (const int)
+0:87      Floor (global 2-component vector of float)
+0:87        'inF0' (temp 2-component vector of float)
+0:89      Function Call: fmod(vf2;vf2; (global 2-component vector of float)
+0:89        'inF0' (temp 2-component vector of float)
+0:89        'inF1' (temp 2-component vector of float)
+0:90      Fraction (global 2-component vector of float)
+0:90        'inF0' (temp 2-component vector of float)
+0:91      frexp (global 2-component vector of float)
+0:91        'inF0' (temp 2-component vector of float)
+0:91        'inF1' (temp 2-component vector of float)
+0:92      fwidth (global 2-component vector of float)
+0:92        'inF0' (temp 2-component vector of float)
+0:93      isinf (global 2-component vector of bool)
+0:93        'inF0' (temp 2-component vector of float)
+0:94      isnan (global 2-component vector of bool)
+0:94        'inF0' (temp 2-component vector of float)
+0:95      ldexp (global 2-component vector of float)
+0:95        'inF0' (temp 2-component vector of float)
+0:95        'inF1' (temp 2-component vector of float)
+0:96      length (global float)
+0:96        'inF0' (temp 2-component vector of float)
+0:97      log (global 2-component vector of float)
+0:97        'inF0' (temp 2-component vector of float)
+0:98      log2 (global 2-component vector of float)
+0:98        'inF0' (temp 2-component vector of float)
+0:99      max (global 2-component vector of float)
+0:99        'inF0' (temp 2-component vector of float)
+0:99        'inF1' (temp 2-component vector of float)
+0:100      min (global 2-component vector of float)
+0:100        'inF0' (temp 2-component vector of float)
+0:100        'inF1' (temp 2-component vector of float)
+0:102      normalize (global 2-component vector of float)
+0:102        'inF0' (temp 2-component vector of float)
+0:103      pow (global 2-component vector of float)
+0:103        'inF0' (temp 2-component vector of float)
+0:103        'inF1' (temp 2-component vector of float)
+0:104      radians (global 2-component vector of float)
+0:104        'inF0' (temp 2-component vector of float)
+0:105      reflect (global 2-component vector of float)
+0:105        'inF0' (temp 2-component vector of float)
+0:105        'inF1' (temp 2-component vector of float)
+0:106      refract (global 2-component vector of float)
+0:106        'inF0' (temp 2-component vector of float)
+0:106        'inF1' (temp 2-component vector of float)
+0:106        Constant:
+0:106          2.000000
+0:?       bitFieldReverse (global 2-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:108      roundEven (global 2-component vector of float)
+0:108        'inF0' (temp 2-component vector of float)
+0:109      inverse sqrt (global 2-component vector of float)
+0:109        'inF0' (temp 2-component vector of float)
+0:110      Sign (global 2-component vector of float)
+0:110        'inF0' (temp 2-component vector of float)
+0:111      sine (global 2-component vector of float)
+0:111        'inF0' (temp 2-component vector of float)
+0:112      hyp. sine (global 2-component vector of float)
+0:112        'inF0' (temp 2-component vector of float)
+0:113      smoothstep (global 2-component vector of float)
+0:113        'inF0' (temp 2-component vector of float)
+0:113        'inF1' (temp 2-component vector of float)
+0:113        'inF2' (temp 2-component vector of float)
+0:114      sqrt (global 2-component vector of float)
+0:114        'inF0' (temp 2-component vector of float)
+0:115      step (global 2-component vector of float)
+0:115        'inF0' (temp 2-component vector of float)
+0:115        'inF1' (temp 2-component vector of float)
+0:116      tangent (global 2-component vector of float)
+0:116        'inF0' (temp 2-component vector of float)
+0:117      hyp. tangent (global 2-component vector of float)
+0:117        'inF0' (temp 2-component vector of float)
+0:119      trunc (global 2-component vector of float)
+0:119        'inF0' (temp 2-component vector of float)
+0:122      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:189  Function Definition: VertexShaderFunction(vf3;vf3;vf3; (temp 3-component vector of float)
+0:126    Function Parameters: 
+0:126      'inF0' (temp 3-component vector of float)
+0:126      'inF1' (temp 3-component vector of float)
+0:126      'inF2' (temp 3-component vector of float)
+0:?     Sequence
+0:127      all (global bool)
+0:127        'inF0' (temp 3-component vector of float)
+0:128      Absolute value (global 3-component vector of float)
+0:128        'inF0' (temp 3-component vector of float)
+0:129      arc cosine (global 3-component vector of float)
+0:129        'inF0' (temp 3-component vector of float)
+0:130      any (global bool)
+0:130        'inF0' (temp 3-component vector of float)
+0:131      arc sine (global 3-component vector of float)
+0:131        'inF0' (temp 3-component vector of float)
+0:132      arc tangent (global 3-component vector of float)
+0:132        'inF0' (temp 3-component vector of float)
+0:133      arc tangent (global 3-component vector of float)
+0:133        'inF0' (temp 3-component vector of float)
+0:133        'inF1' (temp 3-component vector of float)
+0:134      Ceiling (global 3-component vector of float)
+0:134        'inF0' (temp 3-component vector of float)
+0:135      clamp (global 3-component vector of float)
+0:135        'inF0' (temp 3-component vector of float)
+0:135        'inF1' (temp 3-component vector of float)
+0:135        'inF2' (temp 3-component vector of float)
+0:136      cosine (global 3-component vector of float)
+0:136        'inF0' (temp 3-component vector of float)
+0:137      hyp. cosine (global 3-component vector of float)
+0:137        'inF0' (temp 3-component vector of float)
+0:?       bitCount (global 3-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:139      cross-product (global 3-component vector of float)
+0:139        'inF0' (temp 3-component vector of float)
+0:139        'inF1' (temp 3-component vector of float)
+0:140      degrees (global 3-component vector of float)
+0:140        'inF0' (temp 3-component vector of float)
+0:141      distance (global float)
+0:141        'inF0' (temp 3-component vector of float)
+0:141        'inF1' (temp 3-component vector of float)
+0:142      dot-product (global float)
+0:142        'inF0' (temp 3-component vector of float)
+0:142        'inF1' (temp 3-component vector of float)
+0:146      exp (global 3-component vector of float)
+0:146        'inF0' (temp 3-component vector of float)
+0:147      exp2 (global 3-component vector of float)
+0:147        'inF0' (temp 3-component vector of float)
+0:148      face-forward (global 3-component vector of float)
+0:148        'inF0' (temp 3-component vector of float)
+0:148        'inF1' (temp 3-component vector of float)
+0:148        'inF2' (temp 3-component vector of float)
+0:149      findMSB (global int)
+0:149        Constant:
+0:149          7 (const int)
+0:150      findLSB (global int)
+0:150        Constant:
+0:150          7 (const int)
+0:151      Floor (global 3-component vector of float)
+0:151        'inF0' (temp 3-component vector of float)
+0:153      Function Call: fmod(vf3;vf3; (global 3-component vector of float)
+0:153        'inF0' (temp 3-component vector of float)
+0:153        'inF1' (temp 3-component vector of float)
+0:154      Fraction (global 3-component vector of float)
+0:154        'inF0' (temp 3-component vector of float)
+0:155      frexp (global 3-component vector of float)
+0:155        'inF0' (temp 3-component vector of float)
+0:155        'inF1' (temp 3-component vector of float)
+0:156      fwidth (global 3-component vector of float)
+0:156        'inF0' (temp 3-component vector of float)
+0:157      isinf (global 3-component vector of bool)
+0:157        'inF0' (temp 3-component vector of float)
+0:158      isnan (global 3-component vector of bool)
+0:158        'inF0' (temp 3-component vector of float)
+0:159      ldexp (global 3-component vector of float)
+0:159        'inF0' (temp 3-component vector of float)
+0:159        'inF1' (temp 3-component vector of float)
+0:160      length (global float)
+0:160        'inF0' (temp 3-component vector of float)
+0:161      log (global 3-component vector of float)
+0:161        'inF0' (temp 3-component vector of float)
+0:162      log2 (global 3-component vector of float)
+0:162        'inF0' (temp 3-component vector of float)
+0:163      max (global 3-component vector of float)
+0:163        'inF0' (temp 3-component vector of float)
+0:163        'inF1' (temp 3-component vector of float)
+0:164      min (global 3-component vector of float)
+0:164        'inF0' (temp 3-component vector of float)
+0:164        'inF1' (temp 3-component vector of float)
+0:166      normalize (global 3-component vector of float)
+0:166        'inF0' (temp 3-component vector of float)
+0:167      pow (global 3-component vector of float)
+0:167        'inF0' (temp 3-component vector of float)
+0:167        'inF1' (temp 3-component vector of float)
+0:168      radians (global 3-component vector of float)
+0:168        'inF0' (temp 3-component vector of float)
+0:169      reflect (global 3-component vector of float)
+0:169        'inF0' (temp 3-component vector of float)
+0:169        'inF1' (temp 3-component vector of float)
+0:170      refract (global 3-component vector of float)
+0:170        'inF0' (temp 3-component vector of float)
+0:170        'inF1' (temp 3-component vector of float)
+0:170        Constant:
+0:170          2.000000
+0:?       bitFieldReverse (global 3-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:172      roundEven (global 3-component vector of float)
+0:172        'inF0' (temp 3-component vector of float)
+0:173      inverse sqrt (global 3-component vector of float)
+0:173        'inF0' (temp 3-component vector of float)
+0:174      Sign (global 3-component vector of float)
+0:174        'inF0' (temp 3-component vector of float)
+0:175      sine (global 3-component vector of float)
+0:175        'inF0' (temp 3-component vector of float)
+0:176      hyp. sine (global 3-component vector of float)
+0:176        'inF0' (temp 3-component vector of float)
+0:177      smoothstep (global 3-component vector of float)
+0:177        'inF0' (temp 3-component vector of float)
+0:177        'inF1' (temp 3-component vector of float)
+0:177        'inF2' (temp 3-component vector of float)
+0:178      sqrt (global 3-component vector of float)
+0:178        'inF0' (temp 3-component vector of float)
+0:179      step (global 3-component vector of float)
+0:179        'inF0' (temp 3-component vector of float)
+0:179        'inF1' (temp 3-component vector of float)
+0:180      tangent (global 3-component vector of float)
+0:180        'inF0' (temp 3-component vector of float)
+0:181      hyp. tangent (global 3-component vector of float)
+0:181        'inF0' (temp 3-component vector of float)
+0:183      trunc (global 3-component vector of float)
+0:183        'inF0' (temp 3-component vector of float)
+0:186      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:298  Function Definition: VertexShaderFunction(vf4;vf4;vf4; (temp 4-component vector of float)
+0:190    Function Parameters: 
+0:190      'inF0' (temp 4-component vector of float)
+0:190      'inF1' (temp 4-component vector of float)
+0:190      'inF2' (temp 4-component vector of float)
+0:?     Sequence
+0:191      all (global bool)
+0:191        'inF0' (temp 4-component vector of float)
+0:192      Absolute value (global 4-component vector of float)
+0:192        'inF0' (temp 4-component vector of float)
+0:193      arc cosine (global 4-component vector of float)
+0:193        'inF0' (temp 4-component vector of float)
+0:194      any (global bool)
+0:194        'inF0' (temp 4-component vector of float)
+0:195      arc sine (global 4-component vector of float)
+0:195        'inF0' (temp 4-component vector of float)
+0:196      arc tangent (global 4-component vector of float)
+0:196        'inF0' (temp 4-component vector of float)
+0:197      arc tangent (global 4-component vector of float)
+0:197        'inF0' (temp 4-component vector of float)
+0:197        'inF1' (temp 4-component vector of float)
+0:198      Ceiling (global 4-component vector of float)
+0:198        'inF0' (temp 4-component vector of float)
+0:199      clamp (global 4-component vector of float)
+0:199        'inF0' (temp 4-component vector of float)
+0:199        'inF1' (temp 4-component vector of float)
+0:199        'inF2' (temp 4-component vector of float)
+0:200      cosine (global 4-component vector of float)
+0:200        'inF0' (temp 4-component vector of float)
+0:201      hyp. cosine (global 4-component vector of float)
+0:201        'inF0' (temp 4-component vector of float)
+0:?       bitCount (global 4-component vector of uint)
+0:?         Constant:
+0:?           7 (const uint)
+0:?           3 (const uint)
+0:?           5 (const uint)
+0:?           2 (const uint)
+0:203      degrees (global 4-component vector of float)
+0:203        'inF0' (temp 4-component vector of float)
+0:204      distance (global float)
+0:204        'inF0' (temp 4-component vector of float)
+0:204        'inF1' (temp 4-component vector of float)
+0:205      dot-product (global float)
+0:205        'inF0' (temp 4-component vector of float)
+0:205        'inF1' (temp 4-component vector of float)
+0:209      exp (global 4-component vector of float)
+0:209        'inF0' (temp 4-component vector of float)
+0:210      exp2 (global 4-component vector of float)
+0:210        'inF0' (temp 4-component vector of float)
+0:211      face-forward (global 4-component vector of float)
+0:211        'inF0' (temp 4-component vector of float)
+0:211        'inF1' (temp 4-component vector of float)
+0:211        'inF2' (temp 4-component vector of float)
+0:212      findMSB (global int)
+0:212        Constant:
+0:212          7 (const int)
+0:213      findLSB (global int)
+0:213        Constant:
+0:213          7 (const int)
+0:214      Floor (global 4-component vector of float)
+0:214        'inF0' (temp 4-component vector of float)
+0:216      Function Call: fmod(vf4;vf4; (global 4-component vector of float)
+0:216        'inF0' (temp 4-component vector of float)
+0:216        'inF1' (temp 4-component vector of float)
+0:217      Fraction (global 4-component vector of float)
+0:217        'inF0' (temp 4-component vector of float)
+0:218      frexp (global 4-component vector of float)
+0:218        'inF0' (temp 4-component vector of float)
+0:218        'inF1' (temp 4-component vector of float)
+0:219      fwidth (global 4-component vector of float)
+0:219        'inF0' (temp 4-component vector of float)
+0:220      isinf (global 4-component vector of bool)
+0:220        'inF0' (temp 4-component vector of float)
+0:221      isnan (global 4-component vector of bool)
+0:221        'inF0' (temp 4-component vector of float)
+0:222      ldexp (global 4-component vector of float)
+0:222        'inF0' (temp 4-component vector of float)
+0:222        'inF1' (temp 4-component vector of float)
+0:223      length (global float)
+0:223        'inF0' (temp 4-component vector of float)
+0:224      log (global 4-component vector of float)
+0:224        'inF0' (temp 4-component vector of float)
+0:225      log2 (global 4-component vector of float)
+0:225        'inF0' (temp 4-component vector of float)
+0:226      max (global 4-component vector of float)
+0:226        'inF0' (temp 4-component vector of float)
+0:226        'inF1' (temp 4-component vector of float)
+0:227      min (global 4-component vector of float)
+0:227        'inF0' (temp 4-component vector of float)
+0:227        'inF1' (temp 4-component vector of float)
+0:229      normalize (global 4-component vector of float)
+0:229        'inF0' (temp 4-component vector of float)
+0:230      pow (global 4-component vector of float)
+0:230        'inF0' (temp 4-component vector of float)
+0:230        'inF1' (temp 4-component vector of float)
+0:231      radians (global 4-component vector of float)
+0:231        'inF0' (temp 4-component vector of float)
+0:232      reflect (global 4-component vector of float)
+0:232        'inF0' (temp 4-component vector of float)
+0:232        'inF1' (temp 4-component vector of float)
+0:233      refract (global 4-component vector of float)
+0:233        'inF0' (temp 4-component vector of float)
+0:233        'inF1' (temp 4-component vector of float)
+0:233        Constant:
+0:233          2.000000
+0:?       bitFieldReverse (global 4-component vector of uint)
+0:?         Constant:
+0:?           1 (const uint)
+0:?           2 (const uint)
+0:?           3 (const uint)
+0:?           4 (const uint)
+0:235      roundEven (global 4-component vector of float)
+0:235        'inF0' (temp 4-component vector of float)
+0:236      inverse sqrt (global 4-component vector of float)
+0:236        'inF0' (temp 4-component vector of float)
+0:237      Sign (global 4-component vector of float)
+0:237        'inF0' (temp 4-component vector of float)
+0:238      sine (global 4-component vector of float)
+0:238        'inF0' (temp 4-component vector of float)
+0:239      hyp. sine (global 4-component vector of float)
+0:239        'inF0' (temp 4-component vector of float)
+0:240      smoothstep (global 4-component vector of float)
+0:240        'inF0' (temp 4-component vector of float)
+0:240        'inF1' (temp 4-component vector of float)
+0:240        'inF2' (temp 4-component vector of float)
+0:241      sqrt (global 4-component vector of float)
+0:241        'inF0' (temp 4-component vector of float)
+0:242      step (global 4-component vector of float)
+0:242        'inF0' (temp 4-component vector of float)
+0:242        'inF1' (temp 4-component vector of float)
+0:243      tangent (global 4-component vector of float)
+0:243        'inF0' (temp 4-component vector of float)
+0:244      hyp. tangent (global 4-component vector of float)
+0:244        'inF0' (temp 4-component vector of float)
+0:246      trunc (global 4-component vector of float)
+0:246        'inF0' (temp 4-component vector of float)
+0:249      Branch: Return with expression
+0:?         Constant:
+0:?           1.000000
+0:?           2.000000
+0:?           3.000000
+0:?           4.000000
+0:307  Function Definition: VertexShaderFunction(mf22;mf22;mf22; (temp 2X2 matrix of float)
+0:299    Function Parameters: 
+0:299      'inF0' (temp 2X2 matrix of float)
+0:299      'inF1' (temp 2X2 matrix of float)
+0:299      'inF2' (temp 2X2 matrix of float)
+0:?     Sequence
+0:301      all (global bool)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Absolute value (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      any (global bool)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      arc tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      Ceiling (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      clamp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301        'inF2' (temp 2X2 matrix of float)
+0:301      cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. cosine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      degrees (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      determinant (global float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      exp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      exp2 (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      findMSB (global int)
+0:301        Constant:
+0:301          7 (const int)
+0:301      findLSB (global int)
+0:301        Constant:
+0:301          7 (const int)
+0:301      Floor (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Function Call: fmod(mf22;mf22; (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      Fraction (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      frexp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      fwidth (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      ldexp (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      log (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      log2 (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      max (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      min (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      pow (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      radians (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      roundEven (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      inverse sqrt (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      Sign (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. sine (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      smoothstep (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301        'inF2' (temp 2X2 matrix of float)
+0:301      sqrt (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      step (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301        'inF1' (temp 2X2 matrix of float)
+0:301      tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      hyp. tangent (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      transpose (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:301      trunc (global 2X2 matrix of float)
+0:301        'inF0' (temp 2X2 matrix of float)
+0:304      Branch: Return with expression
+0:?         Constant:
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:?           2.000000
+0:316  Function Definition: VertexShaderFunction(mf33;mf33;mf33; (temp 3X3 matrix of float)
+0:308    Function Parameters: 
+0:308      'inF0' (temp 3X3 matrix of float)
+0:308      'inF1' (temp 3X3 matrix of float)
+0:308      'inF2' (temp 3X3 matrix of float)
+0:?     Sequence
+0:310      all (global bool)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Absolute value (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      any (global bool)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      arc tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      Ceiling (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      clamp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310        'inF2' (temp 3X3 matrix of float)
+0:310      cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. cosine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      degrees (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      determinant (global float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      exp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      exp2 (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      findMSB (global int)
+0:310        Constant:
+0:310          7 (const int)
+0:310      findLSB (global int)
+0:310        Constant:
+0:310          7 (const int)
+0:310      Floor (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Function Call: fmod(mf33;mf33; (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      Fraction (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      frexp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      fwidth (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      ldexp (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      log (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      log2 (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      max (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      min (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      pow (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      radians (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      roundEven (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      inverse sqrt (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      Sign (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. sine (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      smoothstep (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310        'inF2' (temp 3X3 matrix of float)
+0:310      sqrt (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      step (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310        'inF1' (temp 3X3 matrix of float)
+0:310      tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      hyp. tangent (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      transpose (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:310      trunc (global 3X3 matrix of float)
+0:310        'inF0' (temp 3X3 matrix of float)
+0:313      Branch: Return with expression
+0:?         Constant:
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:?           3.000000
+0:324  Function Definition: VertexShaderFunction(mf44;mf44;mf44; (temp 4X4 matrix of float)
+0:317    Function Parameters: 
+0:317      'inF0' (temp 4X4 matrix of float)
+0:317      'inF1' (temp 4X4 matrix of float)
+0:317      'inF2' (temp 4X4 matrix of float)
+0:?     Sequence
+0:319      all (global bool)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Absolute value (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      any (global bool)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      arc tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      Ceiling (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      clamp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319        'inF2' (temp 4X4 matrix of float)
+0:319      cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. cosine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      degrees (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      determinant (global float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      exp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      exp2 (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      findMSB (global int)
+0:319        Constant:
+0:319          7 (const int)
+0:319      findLSB (global int)
+0:319        Constant:
+0:319          7 (const int)
+0:319      Floor (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Function Call: fmod(mf44;mf44; (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      Fraction (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      frexp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      fwidth (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      ldexp (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      log (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      log2 (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      max (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      min (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      pow (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      radians (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      roundEven (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      inverse sqrt (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      Sign (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. sine (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      smoothstep (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319        'inF2' (temp 4X4 matrix of float)
+0:319      sqrt (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      step (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319        'inF1' (temp 4X4 matrix of float)
+0:319      tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      hyp. tangent (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      transpose (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:319      trunc (global 4X4 matrix of float)
+0:319        'inF0' (temp 4X4 matrix of float)
+0:322      Branch: Return with expression
+0:?         Constant:
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?           4.000000
+0:?   Linker Objects
+
+Missing functionality: missing user function; linker needs to catch that
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 796
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Vertex 4  "VertexShaderFunction"
+                              Source HLSL 450
+                              Name 4  "VertexShaderFunction"
+                              Name 8  "inF0"
+                              Name 23  "inF1"
+                              Name 30  "inF2"
+                              Name 55  "ResType"
+                              Name 115  "inF0"
+                              Name 129  "inF1"
+                              Name 136  "inF2"
+                              Name 171  "ResType"
+                              Name 244  "inF0"
+                              Name 258  "inF1"
+                              Name 265  "inF2"
+                              Name 303  "ResType"
+                              Name 374  "inF0"
+                              Name 388  "inF1"
+                              Name 395  "inF2"
+                              Name 429  "ResType"
+                              Name 501  "inF0"
+                              Name 515  "inF1"
+                              Name 522  "inF2"
+                              Name 544  "ResType"
+                              Name 600  "inF0"
+                              Name 614  "inF1"
+                              Name 621  "inF2"
+                              Name 643  "ResType"
+                              Name 699  "inF0"
+                              Name 713  "inF1"
+                              Name 720  "inF2"
+                              Name 742  "ResType"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypePointer Function 6(float)
+              10:             TypeBool
+              37:             TypeInt 32 0
+              38:     37(int) Constant 7
+              46:             TypeInt 32 1
+              47:     46(int) Constant 7
+     55(ResType):             TypeStruct 6(float) 46(int)
+              83:     37(int) Constant 2
+             110:    6(float) Constant 0
+             113:             TypeVector 6(float) 2
+             114:             TypePointer Function 113(fvec2)
+             143:             TypeVector 37(int) 2
+             144:     37(int) Constant 3
+             145:  143(ivec2) ConstantComposite 38 144
+             170:             TypeVector 46(int) 2
+    171(ResType):             TypeStruct 113(fvec2) 170(ivec2)
+             178:             TypeVector 10(bool) 2
+             209:    6(float) Constant 1073741824
+             211:     37(int) Constant 1
+             212:  143(ivec2) ConstantComposite 211 83
+             239:    6(float) Constant 1065353216
+             240:  113(fvec2) ConstantComposite 239 209
+             242:             TypeVector 6(float) 3
+             243:             TypePointer Function 242(fvec3)
+             272:             TypeVector 37(int) 3
+             273:     37(int) Constant 5
+             274:  272(ivec3) ConstantComposite 38 144 273
+             302:             TypeVector 46(int) 3
+    303(ResType):             TypeStruct 242(fvec3) 302(ivec3)
+             310:             TypeVector 10(bool) 3
+             342:  272(ivec3) ConstantComposite 211 83 144
+             369:    6(float) Constant 1077936128
+             370:  242(fvec3) ConstantComposite 239 209 369
+             372:             TypeVector 6(float) 4
+             373:             TypePointer Function 372(fvec4)
+             402:             TypeVector 37(int) 4
+             403:  402(ivec4) ConstantComposite 38 144 273 83
+             428:             TypeVector 46(int) 4
+    429(ResType):             TypeStruct 372(fvec4) 428(ivec4)
+             436:             TypeVector 10(bool) 4
+             468:     37(int) Constant 4
+             469:  402(ivec4) ConstantComposite 211 83 144 468
+             496:    6(float) Constant 1082130432
+             497:  372(fvec4) ConstantComposite 239 209 369 496
+             499:             TypeMatrix 113(fvec2) 2
+             500:             TypePointer Function 499
+    544(ResType):             TypeStruct 499 170(ivec2)
+             595:  113(fvec2) ConstantComposite 209 209
+             596:         499 ConstantComposite 595 595
+             598:             TypeMatrix 242(fvec3) 3
+             599:             TypePointer Function 598
+    643(ResType):             TypeStruct 598 302(ivec3)
+             694:  242(fvec3) ConstantComposite 369 369 369
+             695:         598 ConstantComposite 694 694 694
+             697:             TypeMatrix 372(fvec4) 4
+             698:             TypePointer Function 697
+    742(ResType):             TypeStruct 697 428(ivec4)
+             793:  372(fvec4) ConstantComposite 496 496 496 496
+             794:         697 ConstantComposite 793 793 793 793
+4(VertexShaderFunction):           2 Function None 3
+               5:             Label
+         8(inF0):      7(ptr) Variable Function
+        23(inF1):      7(ptr) Variable Function
+        30(inF2):      7(ptr) Variable Function
+       115(inF0):    114(ptr) Variable Function
+       129(inF1):    114(ptr) Variable Function
+       136(inF2):    114(ptr) Variable Function
+       244(inF0):    243(ptr) Variable Function
+       258(inF1):    243(ptr) Variable Function
+       265(inF2):    243(ptr) Variable Function
+       374(inF0):    373(ptr) Variable Function
+       388(inF1):    373(ptr) Variable Function
+       395(inF2):    373(ptr) Variable Function
+       501(inF0):    500(ptr) Variable Function
+       515(inF1):    500(ptr) Variable Function
+       522(inF2):    500(ptr) Variable Function
+       600(inF0):    599(ptr) Variable Function
+       614(inF1):    599(ptr) Variable Function
+       621(inF2):    599(ptr) Variable Function
+       699(inF0):    698(ptr) Variable Function
+       713(inF1):    698(ptr) Variable Function
+       720(inF2):    698(ptr) Variable Function
+               9:    6(float) Load 8(inF0)
+              11:    10(bool) All 9
+              12:    6(float) Load 8(inF0)
+              13:    6(float) ExtInst 1(GLSL.std.450) 4(FAbs) 12
+              14:    6(float) Load 8(inF0)
+              15:    6(float) ExtInst 1(GLSL.std.450) 17(Acos) 14
+              16:    6(float) Load 8(inF0)
+              17:    10(bool) Any 16
+              18:    6(float) Load 8(inF0)
+              19:    6(float) ExtInst 1(GLSL.std.450) 16(Asin) 18
+              20:    6(float) Load 8(inF0)
+              21:    6(float) ExtInst 1(GLSL.std.450) 18(Atan) 20
+              22:    6(float) Load 8(inF0)
+              24:    6(float) Load 23(inF1)
+              25:    6(float) ExtInst 1(GLSL.std.450) 25(Atan2) 22 24
+              26:    6(float) Load 8(inF0)
+              27:    6(float) ExtInst 1(GLSL.std.450) 9(Ceil) 26
+              28:    6(float) Load 8(inF0)
+              29:    6(float) Load 23(inF1)
+              31:    6(float) Load 30(inF2)
+              32:    6(float) ExtInst 1(GLSL.std.450) 43(FClamp) 28 29 31
+              33:    6(float) Load 8(inF0)
+              34:    6(float) ExtInst 1(GLSL.std.450) 14(Cos) 33
+              35:    6(float) Load 8(inF0)
+              36:    6(float) ExtInst 1(GLSL.std.450) 20(Cosh) 35
+              39:     37(int) BitCount 38
+              40:    6(float) Load 8(inF0)
+              41:    6(float) ExtInst 1(GLSL.std.450) 12(Degrees) 40
+              42:    6(float) Load 8(inF0)
+              43:    6(float) ExtInst 1(GLSL.std.450) 27(Exp) 42
+              44:    6(float) Load 8(inF0)
+              45:    6(float) ExtInst 1(GLSL.std.450) 29(Exp2) 44
+              48:     46(int) ExtInst 1(GLSL.std.450) 74(FindSMsb) 47
+              49:     46(int) ExtInst 1(GLSL.std.450) 73(FindILsb) 47
+              50:    6(float) Load 8(inF0)
+              51:    6(float) ExtInst 1(GLSL.std.450) 8(Floor) 50
+              52:    6(float) Load 8(inF0)
+              53:    6(float) ExtInst 1(GLSL.std.450) 10(Fract) 52
+              54:    6(float) Load 8(inF0)
+              56: 55(ResType) ExtInst 1(GLSL.std.450) 52(FrexpStruct) 54
+              57:     46(int) CompositeExtract 56 1
+                              Store 23(inF1) 57
+              58:    6(float) CompositeExtract 56 0
+              59:    6(float) Load 8(inF0)
+              60:    6(float) Fwidth 59
+              61:    6(float) Load 8(inF0)
+              62:    10(bool) IsInf 61
+              63:    6(float) Load 8(inF0)
+              64:    10(bool) IsNan 63
+              65:    6(float) Load 8(inF0)
+              66:    6(float) Load 23(inF1)
+              67:    6(float) ExtInst 1(GLSL.std.450) 53(Ldexp) 65 66
+              68:    6(float) Load 8(inF0)
+              69:    6(float) ExtInst 1(GLSL.std.450) 28(Log) 68
+              70:    6(float) Load 8(inF0)
+              71:    6(float) ExtInst 1(GLSL.std.450) 30(Log2) 70
+              72:    6(float) Load 8(inF0)
+              73:    6(float) Load 23(inF1)
+              74:    6(float) ExtInst 1(GLSL.std.450) 40(FMax) 72 73
+              75:    6(float) Load 8(inF0)
+              76:    6(float) Load 23(inF1)
+              77:    6(float) ExtInst 1(GLSL.std.450) 37(FMin) 75 76
+              78:    6(float) Load 8(inF0)
+              79:    6(float) Load 23(inF1)
+              80:    6(float) ExtInst 1(GLSL.std.450) 26(Pow) 78 79
+              81:    6(float) Load 8(inF0)
+              82:    6(float) ExtInst 1(GLSL.std.450) 11(Radians) 81
+              84:     37(int) BitReverse 83
+              85:    6(float) Load 8(inF0)
+              86:    6(float) ExtInst 1(GLSL.std.450) 2(RoundEven) 85
+              87:    6(float) Load 8(inF0)
+              88:    6(float) ExtInst 1(GLSL.std.450) 32(InverseSqrt) 87
+              89:    6(float) Load 8(inF0)
+              90:    6(float) ExtInst 1(GLSL.std.450) 6(FSign) 89
+              91:    6(float) Load 8(inF0)
+              92:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 91
+              93:    6(float) Load 8(inF0)
+              94:    6(float) ExtInst 1(GLSL.std.450) 19(Sinh) 93
+              95:    6(float) Load 8(inF0)
+              96:    6(float) Load 23(inF1)
+              97:    6(float) Load 30(inF2)
+              98:    6(float) ExtInst 1(GLSL.std.450) 49(SmoothStep) 95 96 97
+              99:    6(float) Load 8(inF0)
+             100:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 99
+             101:    6(float) Load 8(inF0)
+             102:    6(float) Load 23(inF1)
+             103:    6(float) ExtInst 1(GLSL.std.450) 48(Step) 101 102
+             104:    6(float) Load 8(inF0)
+             105:    6(float) ExtInst 1(GLSL.std.450) 15(Tan) 104
+             106:    6(float) Load 8(inF0)
+             107:    6(float) ExtInst 1(GLSL.std.450) 21(Tanh) 106
+             108:    6(float) Load 8(inF0)
+             109:    6(float) ExtInst 1(GLSL.std.450) 3(Trunc) 108
+                              ReturnValue 110
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out
index 438a06a46c8f2df05e60cca631a0db639bb37036..298211df4adcb42353456feeed8494805e7dc7bd 100755
--- a/Test/baseResults/hlsl.matType.frag.out
+++ b/Test/baseResults/hlsl.matType.frag.out
@@ -1,5 +1,5 @@
 hlsl.matType.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 1-component vector of float)
@@ -22,7 +22,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:1  move second child to first child (temp 1-component vector of float)
@@ -51,7 +51,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"
diff --git a/Test/baseResults/hlsl.max.frag.out b/Test/baseResults/hlsl.max.frag.out
index addc965cb6516c8fdc8abedf858eeba7ca2dd250..7c3c7e69194ffcdb1e70058e5925022c4d5ed314 100755
--- a/Test/baseResults/hlsl.max.frag.out
+++ b/Test/baseResults/hlsl.max.frag.out
@@ -1,5 +1,5 @@
 hlsl.max.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
@@ -17,7 +17,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: PixelShaderFunction(vf4;vf4; (temp 4-component vector of float)
@@ -40,7 +40,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 9  "input1"
                               Name 11  "input2"
diff --git a/Test/baseResults/hlsl.precedence.frag.out b/Test/baseResults/hlsl.precedence.frag.out
index fc31f4b2f95d0894a1b7fedbda3309f3129f8fc7..dc0b0e93ab9e55a4e6e9eeadaee0794fec23af21 100755
--- a/Test/baseResults/hlsl.precedence.frag.out
+++ b/Test/baseResults/hlsl.precedence.frag.out
@@ -1,5 +1,5 @@
 hlsl.precedence.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
@@ -23,7 +23,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: PixelShaderFunction(vf4;vf4;vf4;vf4; (temp 4-component vector of float)
@@ -52,7 +52,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 9  "a1"
                               Name 11  "a2"
diff --git a/Test/baseResults/hlsl.precedence2.frag.out b/Test/baseResults/hlsl.precedence2.frag.out
index fc4ae025a642187056dea02153f1245e030fda06..73d500d3c73137d272b2e14807a2dff8af556c4a 100755
--- a/Test/baseResults/hlsl.precedence2.frag.out
+++ b/Test/baseResults/hlsl.precedence2.frag.out
@@ -1,5 +1,5 @@
 hlsl.precedence2.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
@@ -31,7 +31,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:10  Function Definition: PixelShaderFunction(i1;i1;i1;i1; (temp int)
@@ -68,7 +68,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 8  "a1"
                               Name 10  "a2"
diff --git a/Test/baseResults/hlsl.sin.frag.out b/Test/baseResults/hlsl.sin.frag.out
index 7d4f626d1142b777fd9f0b5ce9e0c78cc0479cca..331945acfbec400015f58a8507246b788d664aab 100755
--- a/Test/baseResults/hlsl.sin.frag.out
+++ b/Test/baseResults/hlsl.sin.frag.out
@@ -1,5 +1,5 @@
 hlsl.sin.frag
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
@@ -15,7 +15,7 @@ gl_FragCoord origin is upper left
 Linked fragment stage:
 
 
-Shader version: 100
+Shader version: 450
 gl_FragCoord origin is upper left
 0:? Sequence
 0:5  Function Definition: PixelShaderFunction(vf4; (temp 4-component vector of float)
@@ -36,7 +36,7 @@ gl_FragCoord origin is upper left
                               MemoryModel Logical GLSL450
                               EntryPoint Fragment 4  "PixelShaderFunction"
                               ExecutionMode 4 OriginUpperLeft
-                              Source HLSL 100
+                              Source HLSL 450
                               Name 4  "PixelShaderFunction"
                               Name 9  "input"
                2:             TypeVoid
diff --git a/Test/hlsl.intrinsics.frag b/Test/hlsl.intrinsics.frag
new file mode 100644
index 0000000000000000000000000000000000000000..563ce22549d51cdbbd77185f742817ae4dad98e4
--- /dev/null
+++ b/Test/hlsl.intrinsics.frag
@@ -0,0 +1,353 @@
+float PixelShaderFunction(float inF0, float inF1, float inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(7);
+    ddx(inF0);
+    ddx_coarse(inF0);
+    ddx_fine(inF0);
+    ddy(inF0);
+    ddy_coarse(inF0);
+    ddy_fine(inF0);
+    degrees(inF0);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    pow(inF0, inF1);
+    radians(inF0);
+    reversebits(2);
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    return 0.0;
+}
+
+float1 PixelShaderFunction(float1 inF0, float1 inF1, float1 inF2)
+{
+    // TODO: ... add when float1 prototypes are generated
+    return 0.0;
+}
+
+float2 PixelShaderFunction(float2 inF0, float2 inF1, float2 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int2(7,3));
+    ddx(inF0);
+    ddx_coarse(inF0);
+    ddx_fine(inF0);
+    ddy(inF0);
+    ddy_coarse(inF0);
+    ddy_fine(inF0);
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int2(1,2));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float2(1,2);
+}
+
+float3 PixelShaderFunction(float3 inF0, float3 inF1, float3 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int3(7,3,5));
+    cross(inF0, inF1);
+    ddx(inF0);
+    ddx_coarse(inF0);
+    ddx_fine(inF0);
+    ddy(inF0);
+    ddy_coarse(inF0);
+    ddy_fine(inF0);
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int3(1,2,3));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float3(1,2,3);
+}
+
+float4 PixelShaderFunction(float4 inF0, float4 inF1, float4 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int4(7,3,5,2));
+    ddx(inF0);
+    ddx_coarse(inF0);
+    ddx_fine(inF0);
+    ddy(inF0);
+    ddy_coarse(inF0);
+    ddy_fine(inF0);
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int4(1,2,3,4));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+    all(inF0); \
+    abs(inF0); \
+    acos(inF0); \
+    any(inF0); \
+    asin(inF0); \
+    atan(inF0); \
+    atan2(inF0, inF1); \
+    ceil(inF0); \
+    clamp(inF0, inF1, inF2); \
+    cos(inF0); \
+    cosh(inF0); \
+    ddx(inF0); \
+    ddx_coarse(inF0); \
+    ddx_fine(inF0); \
+    ddy(inF0); \
+    ddy_coarse(inF0); \
+    ddy_fine(inF0); \
+    degrees(inF0); \
+    determinant(inF0); \
+    exp(inF0); \
+    exp2(inF0); \
+    firstbithigh(7); \
+    firstbitlow(7); \
+    floor(inF0); \
+    fmod(inF0, inF1); \
+    frac(inF0); \
+    frexp(inF0, inF1); \
+    fwidth(inF0); \
+    ldexp(inF0, inF1); \
+    log(inF0); \
+    log2(inF0); \
+    max(inF0, inF1); \
+    min(inF0, inF1); \
+    pow(inF0, inF1); \
+    radians(inF0); \
+    round(inF0); \
+    rsqrt(inF0); \
+    sign(inF0); \
+    sin(inF0); \
+    sinh(inF0); \
+    smoothstep(inF0, inF1, inF2); \
+    sqrt(inF0); \
+    step(inF0, inF1); \
+    tan(inF0); \
+    tanh(inF0); \
+    transpose(inF0); \
+    trunc(inF0);
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 PixelShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float2x2(2,2,2,2);
+}
+
+float3x3 PixelShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 PixelShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
diff --git a/Test/hlsl.intrinsics.vert b/Test/hlsl.intrinsics.vert
new file mode 100644
index 0000000000000000000000000000000000000000..7324342085faeb2f6ec5990a5ef3a5ae16419d18
--- /dev/null
+++ b/Test/hlsl.intrinsics.vert
@@ -0,0 +1,323 @@
+float VertexShaderFunction(float inF0, float inF1, float inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(7);
+    degrees(inF0);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    pow(inF0, inF1);
+    radians(inF0);
+    reversebits(2);
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    return 0.0;
+}
+
+float1 VertexShaderFunction(float1 inF0, float1 inF1, float1 inF2)
+{
+    // TODO: ... add when float1 prototypes are generated
+    return 0.0;
+}
+
+float2 VertexShaderFunction(float2 inF0, float2 inF1, float2 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int2(7,3));
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int2(1,2));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float2(1,2);
+}
+
+float3 VertexShaderFunction(float3 inF0, float3 inF1, float3 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int3(7,3,5));
+    cross(inF0, inF1);
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int3(1,2,3));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float3(1,2,3);
+}
+
+float4 VertexShaderFunction(float4 inF0, float4 inF1, float4 inF2)
+{
+    all(inF0);
+    abs(inF0);
+    acos(inF0);
+    any(inF0);
+    asin(inF0);
+    atan(inF0);
+    atan2(inF0, inF1);
+    ceil(inF0);
+    clamp(inF0, inF1, inF2);
+    cos(inF0);
+    cosh(inF0);
+    countbits(int4(7,3,5,2));
+    degrees(inF0);
+    distance(inF0, inF1);
+    dot(inF0, inF1);
+    // EvaluateAttributeAtCentroid(inF0);
+    // EvaluateAttributeAtSample(inF0, 0);
+    // TODO: EvaluateAttributeSnapped(inF0, int2(1,2));
+    exp(inF0);
+    exp2(inF0);
+    faceforward(inF0, inF1, inF2);
+    firstbithigh(7);
+    firstbitlow(7);
+    floor(inF0);
+    // TODO: fma(inD0, inD1, inD2);
+    fmod(inF0, inF1);
+    frac(inF0);
+    frexp(inF0, inF1);
+    fwidth(inF0);
+    isinf(inF0);
+    isnan(inF0);
+    ldexp(inF0, inF1);
+    length(inF0);
+    log(inF0);
+    log2(inF0);
+    max(inF0, inF1);
+    min(inF0, inF1);
+    // TODO: mul(inF0, inF1);
+    normalize(inF0);
+    pow(inF0, inF1);
+    radians(inF0);
+    reflect(inF0, inF1);
+    refract(inF0, inF1, 2.0);
+    reversebits(int4(1,2,3,4));
+    round(inF0);
+    rsqrt(inF0);
+    sign(inF0);
+    sin(inF0);
+    sinh(inF0);
+    smoothstep(inF0, inF1, inF2);
+    sqrt(inF0);
+    step(inF0, inF1);
+    tan(inF0);
+    tanh(inF0);
+    // TODO: sampler intrinsics, when we can declare the types.
+    trunc(inF0);
+
+    // TODO: ... add when float1 prototypes are generated
+    return float4(1,2,3,4);
+}
+
+// TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+#define MATFNS() \
+    all(inF0); \
+    abs(inF0); \
+    acos(inF0); \
+    any(inF0); \
+    asin(inF0); \
+    atan(inF0); \
+    atan2(inF0, inF1); \
+    ceil(inF0); \
+    clamp(inF0, inF1, inF2); \
+    cos(inF0); \
+    cosh(inF0); \
+    degrees(inF0); \
+    determinant(inF0); \
+    exp(inF0); \
+    exp2(inF0); \
+    firstbithigh(7); \
+    firstbitlow(7); \
+    floor(inF0); \
+    fmod(inF0, inF1); \
+    frac(inF0); \
+    frexp(inF0, inF1); \
+    fwidth(inF0); \
+    ldexp(inF0, inF1); \
+    log(inF0); \
+    log2(inF0); \
+    max(inF0, inF1); \
+    min(inF0, inF1); \
+    pow(inF0, inF1); \
+    radians(inF0); \
+    round(inF0); \
+    rsqrt(inF0); \
+    sign(inF0); \
+    sin(inF0); \
+    sinh(inF0); \
+    smoothstep(inF0, inF1, inF2); \
+    sqrt(inF0); \
+    step(inF0, inF1); \
+    tan(inF0); \
+    tanh(inF0); \
+    transpose(inF0); \
+    trunc(inF0);
+
+// TODO: turn on non-square matrix tests when protos are available.
+
+float2x2 VertexShaderFunction(float2x2 inF0, float2x2 inF1, float2x2 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float2x2(2,2,2,2);
+}
+
+float3x3 VertexShaderFunction(float3x3 inF0, float3x3 inF1, float3x3 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float3x3(3,3,3,3,3,3,3,3,3);
+}
+
+float4x4 VertexShaderFunction(float4x4 inF0, float4x4 inF1, float4x4 inF2)
+{
+    // TODO: FXC doesn't accept this with (), but glslang doesn't accept it without.
+    MATFNS()
+
+    // TODO: ... add when float1 prototypes are generated
+    return float4x4(4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
+}
diff --git a/glslang/MachineIndependent/ShaderLang.cpp b/glslang/MachineIndependent/ShaderLang.cpp
index 1abb553574dcbcace1dffcc75d56f3e653d7ff9b..c2b56055f9f41da17daa5551faec82bf2784361e 100644
--- a/glslang/MachineIndependent/ShaderLang.cpp
+++ b/glslang/MachineIndependent/ShaderLang.cpp
@@ -69,9 +69,6 @@ using namespace glslang;
 // Create a language specific version of parseables.
 TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource source)
 {
-    // TODO: hardcode to the GLSL path, until HLSL intrinsics are available.
-    source = EShSourceGlsl; // REMOVE
-
     switch (source) {
     case EShSourceGlsl: return new TBuiltIns();              // GLSL builtIns
     case EShSourceHlsl: return new TBuiltInParseablesHlsl(); // HLSL intrinsics
@@ -81,7 +78,7 @@ TBuiltInParseables* CreateBuiltInParseables(TInfoSink& infoSink, EShSource sourc
         return nullptr;
     }
 }
-    
+
 // Local mapping functions for making arrays of symbol tables....
 
 int MapVersionToIndex(int version)
@@ -169,6 +166,9 @@ bool InitializeSymbolTable(const TString& builtIns, int version, EProfile profil
     builtInShaders[0] = builtIns.c_str();
     builtInLengths[0] = builtIns.size();
 
+    if (builtInLengths[0] == 0)
+        return true;
+    
     TInputScanner input(1, builtInShaders, builtInLengths);
     if (! parseContext.parseShaderStrings(ppContext, input) != 0) {
         infoSink.info.message(EPrefixInternalError, "Unable to parse built-ins");
@@ -338,7 +338,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
     bool correct = true;
 
     if (source == EShSourceHlsl) {
-        version = defaultVersion;
+        version = 450;         // TODO: GLSL parser is still used for builtins.
         profile = ENoProfile;
         return correct;
     }
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index 1307dae1116ccadaf895b951eb994394bea4963e..b5a38866011df4861d46bc3024dd398df39cd5c3 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -1,5 +1,6 @@
 //
 // Copyright (C) 2016 Google, Inc.
+// Copyright (C) 2016 LunarG, Inc.
 //
 // All rights reserved.
 //
@@ -79,6 +80,8 @@ INSTANTIATE_TEST_CASE_P(
         {"hlsl.precedence.frag", "PixelShaderFunction"},
         {"hlsl.precedence2.frag", "PixelShaderFunction"},
         {"hlsl.sin.frag", "PixelShaderFunction"},
+        {"hlsl.intrinsics.frag", "PixelShaderFunction"},
+        {"hlsl.intrinsics.vert", "VertexShaderFunction"},
     }),
     FileNameAsCustomTestSuffix
 );
diff --git a/hlsl/hlslParseables.cpp b/hlsl/hlslParseables.cpp
index b29226d21435a64fbfe1ac75c75c93500febc4dc..18f7ca4a50313a92fa251163af1732adeb4fc02d 100755
--- a/hlsl/hlslParseables.cpp
+++ b/hlsl/hlslParseables.cpp
@@ -49,12 +49,165 @@
 //
 
 #include "hlslParseables.h"
+#include <cctype>
+#include <utility>
+
+namespace {  // anonymous namespace functions
+
+const char* BaseTypeName(const char* argOrder, const char* scalarName, const char* vecName, const char* matName)
+{
+    switch (*argOrder) {
+    case 'S': return scalarName;
+    case 'V': return vecName;
+    case 'M': return matName;
+    default:  return "UNKNOWN_TYPE";
+    }
+}
+    
+// Create and return a type name.  This is done in GLSL, not HLSL conventions, until such
+// time as builtins are parsed using the HLSL parser.
+//
+//    order:   S = scalar, V = vector, M = matrix
+//    argType: F = float, D = double, I = int, U = uint, B = bool, S = sampler
+//    dim0 = vector dimension, or matrix 1st dimension
+//    dim1 = matrix 2nd dimension
+glslang::TString& AppendTypeName(glslang::TString& s, const char* argOrder, const char* argType, int dim0, int dim1)
+{
+    const bool transpose = (argOrder[0] == '^');
+
+    // Take transpose of matrix dimensions
+    if (transpose) {
+        std::swap(dim0, dim1);
+        ++argOrder;
+    }
+
+    switch (*argType) {
+    case '-': s += "void"; break;
+    case 'F': s += BaseTypeName(argOrder, "float",   "vec",     "mat");  break;
+    case 'D': s += BaseTypeName(argOrder, "double",  "dvec",    "dmat"); break;
+    case 'I': s += BaseTypeName(argOrder, "int",     "ivec",    "imat"); break;
+    case 'U': s += BaseTypeName(argOrder, "uint",    "uvec",    "umat"); break;
+    case 'B': s += BaseTypeName(argOrder, "bool",    "bvec",    "bmat"); break;
+    case 'S': s += BaseTypeName(argOrder, "sampler", "sampler", "sampler"); break; // TODO: 
+    default:  s += "UNKNOWN_TYPE"; break;
+    }
+
+    // handle fixed vector sizes, such as float3, and only ever 3.
+    const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0;
+    if (fixedVecSize != 0)
+        dim0 = dim1 = fixedVecSize;
+
+    // Add sampler dimensions
+    if (*argType == 'S') {
+        switch (dim0) {
+        case 1: s += "1D";   break;
+        case 2: s += "2D";   break;
+        case 3: s += "3D";   break;
+        case 4: s += "Cube"; break;
+        default: s += "UNKNOWN_SAMPLER"; break;
+        }
+    }
+
+    // verify dimensions
+    if ((*argOrder == 'V' || *argOrder == 'M') && (dim0 < 1 || dim0 > 4) ||
+        (*argOrder == 'M' && (dim1 < 1 || dim1 > 4))) {
+        s += "UNKNOWN_DIMENSION";
+        return s;
+    }
+
+    switch (*argOrder) {
+    case '-': break;  // no dimensions for voids
+    case 'S': break;  // no dimensions on scalars
+    case 'V': s += ('0' + dim0); break;
+    case 'M': s += ('0' + dim0); s += 'x'; s += ('0' + dim1); break;
+    }
+
+    return s;
+}
+
+// TODO: the GLSL parser is currently used to parse HLSL prototypes.  However, many valid HLSL prototypes
+// are not valid GLSL prototypes.  This rejects the invalid ones.  Thus, there is a single switch below
+// to enable creation of the entire HLSL space.
+inline bool IsValidGlsl(const char* cname, char retOrder, char retType, char argOrder, char argType,
+                        int dim0, int dim1, int dim0Max, int dim1Max)
+{
+    const bool isVec = dim0Max > 1 || argType == 'V';
+    const bool isMat = dim1Max > 1 || argType == 'M';
+
+    if (argType == 'D'                  ||  // avoid double args
+        retType == 'D'                  ||  // avoid double return
+        (isVec && dim0 == 1)            ||  // avoid vec1
+        (isMat && dim0 == 1 && dim1 == 1))  // avoid mat1x1
+        return false;
+
+    const std::string name(cname);  // for ease of comparison. slow, but temporary, until HLSL parser is online.
+                                
+    if (isMat && dim0 != dim1)  // TODO: avoid mats until we find the right GLSL profile
+        return false;
+
+    if (isMat && (argType == 'I' || argType == 'U' || argType == 'B') ||
+        retOrder == 'M' && (retType == 'I' || retType == 'U' || retType == 'B'))
+        return false;
+
+    if (name == "GetRenderTargetSamplePosition" ||
+        name == "tex1D" ||
+        name == "tex1Dgrad")
+        return false;
+
+    return true;
+}
+
+
+// Return true for the end of a single argument key, which can be the end of the string, or
+// the comma separator.
+inline bool IsEndOfArg(const char* arg)
+{
+    return arg == nullptr || *arg == '\0' || *arg == ',';
+}
+
+
+// return position of end of argument specifier
+inline const char* FindEndOfArg(const char* arg)
+{
+    while (!IsEndOfArg(arg))
+        ++arg;
+
+    return *arg == '\0' ? nullptr : arg;
+}
+
+
+// Return pointer to beginning of Nth argument specifier in the string.
+inline const char* NthArg(const char* arg, int n)
+{
+    for (int x=0; x<n && arg; ++x)
+        if ((arg = FindEndOfArg(arg)) != nullptr)
+            ++arg;  // skip arg separator
+
+    return arg;
+}
+
+inline void FindVectorMatrixBounds(const char* argOrder, int fixedVecSize, int& dim0Min, int& dim0Max, int& dim1Min, int& dim1Max)
+{
+    for (int arg = 0; ; ++arg) {
+        const char* nthArgOrder(NthArg(argOrder, arg));
+        if (nthArgOrder == nullptr)
+            break;
+        else if (*nthArgOrder == 'V')
+            dim0Max = 4;
+        else if (*nthArgOrder == 'M')
+            dim0Max = dim1Max = 4;
+    }
+
+    if (fixedVecSize > 0) // handle fixed sized vectors
+        dim0Min = dim0Max = fixedVecSize;
+}
+    
+} // end anonymous namespace
 
 namespace glslang {
 
 TBuiltInParseablesHlsl::TBuiltInParseablesHlsl()
 {
-    assert(0 && "Unimplemented TBuiltInParseablesHlsl::TBuiltInParseablesHlsl");
 }
 
 //
@@ -67,7 +220,268 @@ TBuiltInParseablesHlsl::TBuiltInParseablesHlsl()
 //
 void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv, int vulkan)
 {
-    assert(0 && "Unimplemented TBuiltInParseablesHlsl::initialize");
+    static const EShLanguageMask EShLangAll = EShLanguageMask(EShLangCount - 1);
+
+    // This structure encodes the prototype information for each HLSL intrinsic.
+    // Because explicit enumeration would be cumbersome, it's procedurally generated.
+    // orderKey can be:
+    //   S = scalar, V = vector, M = matrix, - = void
+    // typekey can be:
+    //   D = double, F = float, U = uint, I = int, B = bool, S = sampler, - = void
+    // An empty order or type key repeats the first one.  E.g: SVM,, means 3 args each of SVM.
+    // '>' as first letter of order creates an output paremeter
+    // '<' as first letter of order creates an input paremeter
+    // '^' as first letter of order takes transpose dimensions
+
+    static const struct {
+        const char*   name;      // intrinsic name
+        const char*   retOrder;  // return type key: empty matches order of 1st argument
+        const char*   retType;   // return type key: empty matches type of 1st argument
+        const char*   argOrder;  // argument order key
+        const char*   argType;   // argument type key
+        unsigned int  stage;     // stage mask
+    } hlslIntrinsics[] = {
+        // name                               retOrd   retType    argOrder      argType   stage mask
+        // -----------------------------------------------------------------------------------------------
+        { "abort",                            nullptr, nullptr,   "-",          "-",      EShLangAll },
+        { "abs",                              nullptr, nullptr,   "SVM",        "DFUI",   EShLangAll },
+        { "acos",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "all",                              "S",    "B",        "SVM",        "BFI",    EShLangAll },
+        { "AllMemoryBarrier",                 nullptr, nullptr,   "-",          "-",      EShLangComputeMask },
+        { "AllMemoryBarrierWithGroupSync",    nullptr, nullptr,   "-",          "-",      EShLangComputeMask },
+        { "any",                              "S",     "B",       "SVM",        "BFI",    EShLangAll },
+        { "asdouble",                         "S",     "D",       "S,",         "U,",     EShLangAll },
+        { "asdouble",                         "V2",    "D",       "V2,",        "U,",     EShLangAll },
+        { "asfloat",                          nullptr, "F",       "SVM",        "BFIU",   EShLangAll },
+        { "asin",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "asint",                            nullptr, "I",       "SVM",        "FU",     EShLangAll },
+        { "asuint",                           nullptr, "U",       "SVM",        "FU",     EShLangAll },
+        { "atan",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "atan2",                            nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        { "ceil",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "CheckAccessFullyMapped",           "S",     "B" ,      "S",          "U",      EShLangFragmentMask | EShLangComputeMask },
+        { "clamp",                            nullptr, nullptr,   "SVM,,",      "FUI,,",  EShLangAll },
+        { "clip",                             "-",     "-",       "SVM",        "F",      EShLangFragmentMask },
+        { "cos",                              nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "cosh",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "countbits",                        nullptr, nullptr,   "SV",         "U",      EShLangAll },
+        { "cross",                            nullptr, nullptr,   "V3,",        "F,",     EShLangAll },
+        { "D3DCOLORtoUBYTE4",                 "V4",    "I",       "V4",         "F",      EShLangAll },
+        { "ddx",                              nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "ddx_coarse",                       nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "ddx_fine",                         nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "ddy",                              nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "ddy_coarse",                       nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "ddy_fine",                         nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "degrees",                          nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "determinant",                      "S",     "F",       "M",          "F",      EShLangAll },
+        { "DeviceMemoryBarrier",              nullptr, nullptr,   "-",          "-",      EShLangFragmentMask | EShLangComputeMask },
+        { "DeviceMemoryBarrierWithGroupSync", nullptr, nullptr,   "-",          "-",      EShLangComputeMask },
+        { "distance",                         "S",     "F",       "V,",         "F,",     EShLangAll },
+        { "dot",                              "S",     nullptr,   "V,",         "FI,",    EShLangAll },
+        { "dst",                              nullptr, nullptr,   "V,",         "F,",     EShLangAll },
+        // { "errorf",                           "-",     "-",       "",         "",     EShLangAll }, TODO: varargs
+        { "EvaluateAttributeAtCentroid",      nullptr, nullptr,   "SVM",        "F",      EShLangFragmentMask },
+        { "EvaluateAttributeAtSample",        nullptr, nullptr,   "SVM,S",      "F,U",    EShLangFragmentMask },
+        { "EvaluateAttributeSnapped",         nullptr, nullptr,   "SVM,V2",     "F,F",    EShLangFragmentMask },
+        { "exp",                              nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "exp2",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "f16tof32",                         nullptr, "F",       "SV",         "U",      EShLangAll },
+        { "f32tof16",                         nullptr, "U",       "SV",         "F",      EShLangAll },
+        { "faceforward",                      nullptr, nullptr,   "V,,",        "F,,",    EShLangAll },
+        { "firstbithigh",                     nullptr, nullptr,   "SV",         "UI",     EShLangAll },
+        { "firstbitlow",                      nullptr, nullptr,   "SV",         "UI",     EShLangAll },
+        { "floor",                            nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "fma",                              nullptr, nullptr,   "SVM,,",      "D,,",    EShLangAll },
+        { "fmod",                             nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        { "frac",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "frexp",                            nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        { "fwidth",                           nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "GetRenderTargetSampleCount",       "S",     "U",       "-",          "-",      EShLangAll },
+        { "GetRenderTargetSamplePosition",    "V2",    "F",       "V1",         "I",      EShLangAll },
+        { "GroupMemoryBarrier",               nullptr, nullptr,   "-",          "-",      EShLangComputeMask },
+        { "GroupMemoryBarrierWithGroupSync",  nullptr, nullptr,   "-",          "-",      EShLangComputeMask },
+        { "InterlockedAdd",                   "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedAnd",                   "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedCompareExchange",       "-",     "-",       "SVM,,,>",    "UI,,,",  EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedCompareStore",          "-",     "-",       "SVM,,",      "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedExchange",              "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedMax",                   "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedMin",                   "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedOr",                    "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "InterlockedXor",                   "-",     "-",       "SVM,,>",     "UI,,",   EShLangFragmentMask | EShLangComputeMask },
+        { "isfinite",                         nullptr, "B" ,      "SVM",        "F",      EShLangAll },
+        { "isinf",                            nullptr, "B" ,      "SVM",        "F",      EShLangAll },
+        { "isnan",                            nullptr, "B" ,      "SVM",        "F",      EShLangAll },
+        { "ldexp",                            nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        { "length",                           "S",     "F",       "V",          "F",      EShLangAll },
+        { "lit",                              "V4",    "F",       "S,,",        "F,,",    EShLangAll },
+        { "log",                              nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "log10",                            nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "log2",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "mad",                              nullptr, nullptr,   "SVM,,",      "DFUI,,", EShLangAll },
+        { "max",                              nullptr, nullptr,   "SVM,",       "FI,",    EShLangAll },
+        { "min",                              nullptr, nullptr,   "SVM,",       "FI,",    EShLangAll },
+        { "modf",                             nullptr, nullptr,   "SVM,>",      "FI,",    EShLangAll },
+        { "msad4",                            "V4",    "U",       "S,V2,V4",    "U,,",    EShLangAll },
+        { "mul",                              "S",     nullptr,   "S,S",        "FI,",    EShLangAll },
+        { "mul",                              "V",     nullptr,   "S,V",        "FI,",    EShLangAll },
+        { "mul",                              "M",     nullptr,   "S,M",        "FI,",    EShLangAll },
+        { "mul",                              "V",     nullptr,   "V,S",        "FI,",    EShLangAll },
+        { "mul",                              "S",     nullptr,   "V,V",        "FI,",    EShLangAll },
+        { "mul",                              "V",     nullptr,   "V,M",        "FI,",    EShLangAll },
+        { "mul",                              "M",     nullptr,   "M,S",        "FI,",    EShLangAll },
+        { "mul",                              "V",     nullptr,   "M,V",        "FI,",    EShLangAll },
+        { "mul",                              "M",     nullptr,   "M,M",        "FI,",    EShLangAll },
+        { "noise",                            "S",     "F",       "V",          "F",      EShLangFragmentMask },
+        { "normalize",                        nullptr, nullptr,   "V",          "F",      EShLangAll },
+        { "pow",                              nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        // { "printf",                           "-",     "-",       "",        "",     EShLangAll }, TODO: varargs
+        { "Process2DQuadTessFactorsAvg",      "-",     "-",       "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
+        { "Process2DQuadTessFactorsMax",      "-",     "-",       "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
+        { "Process2DQuadTessFactorsMin",      "-",     "-",       "V4,V2,>V4,>V2,>V2", "F,,,,", EShLangTessControlMask },
+        { "ProcessIsolineTessFactors",        "-",     "-",       "S,,>,>",  "F,,,",   EShLangTessControlMask },
+        { "ProcessQuadTessFactorsAvg",        "-",     "-",       "V4,S,>V4,>V2,>V2", "F,,,,",  EShLangTessControlMask },
+        { "ProcessQuadTessFactorsMax",        "-",     "-",       "V4,S,>V4,>V2,>V2", "F,,,,",  EShLangTessControlMask },
+        { "ProcessQuadTessFactorsMin",        "-",     "-",       "V4,S,>V4,>V2,>V2", "F,,,,",  EShLangTessControlMask },
+        { "ProcessTriTessFactorsAvg",         "-",     "-",       "V3,S,>V3,>S,>S",   "F,,,,",  EShLangTessControlMask },
+        { "ProcessTriTessFactorsMax",         "-",     "-",       "V3,S,>V3,>S,>S",   "F,,,,",  EShLangTessControlMask },
+        { "ProcessTriTessFactorsMin",         "-",     "-",       "V3,S,>V3,>S,>S",   "F,,,,",  EShLangTessControlMask },
+        { "radians",                          nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "rcp",                              nullptr, nullptr,   "SVM",        "FD",     EShLangAll },
+        { "reflect",                          nullptr, nullptr,   "V,",         "F,",     EShLangAll },
+        { "refract",                          nullptr, nullptr,   "V,V,S",      "F,,",    EShLangAll },
+        { "reversebits",                      nullptr, nullptr,   "SV",         "U",      EShLangAll },
+        { "round",                            nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "rsqrt",                            nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "saturate",                         nullptr, nullptr ,  "SVM",        "F",      EShLangAll },
+        { "sign",                             nullptr, nullptr,   "SVM",        "FI",     EShLangAll },
+        { "sin",                              nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "sincos",                           "-",     "-",       "SVM,>,>",    "F,,",    EShLangAll },
+        { "sinh",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "smoothstep",                       nullptr, nullptr,   "SVM,,",      "F,,",    EShLangAll },
+        { "sqrt",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "step",                             nullptr, nullptr,   "SVM,",       "F,",     EShLangAll },
+        { "tan",                              nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "tanh",                             nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+        { "tex1D",                            "V4",    "F",       "S1,S",       "S,F",    EShLangFragmentMask },
+        { "tex1D",                            "V4",    "F",       "S1,S,V1,V1", "S,F,F,F",EShLangFragmentMask },
+        { "tex1Dbias",                        "V4",    "F",       "S1,V4",      "S,F",    EShLangFragmentMask },
+        { "tex1Dgrad",                        "V4",    "F",       "S1,V1,V1,V1","S,F,F,F",EShLangFragmentMask },
+        { "tex1Dlod",                         "V4",    "F",       "S1,V4",      "S,F",    EShLangFragmentMask },
+        { "tex1Dproj",                        "V4",    "F",       "S1,V4",      "S,F",    EShLangFragmentMask },
+        { "tex2D",                            "V4",    "F",       "S2,V2",      "S,F",    EShLangFragmentMask },
+        { "tex2D",                            "V4",    "F",       "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
+        { "tex2Dbias",                        "V4",    "F",       "S2,V4",      "S,F",    EShLangFragmentMask },
+        { "tex2Dgrad",                        "V4",    "F",       "S2,V2,V2,V2","S,F,F,F",EShLangFragmentMask },
+        { "tex2Dlod",                         "V4",    "F",       "S2,V4",      "S,F",    EShLangFragmentMask },
+        { "tex2Dproj",                        "V4",    "F",       "S2,V4",      "S,F",    EShLangFragmentMask },
+        { "tex3D",                            "V4",    "F",       "S3,V3",      "S,F",    EShLangFragmentMask },
+        { "tex3D",                            "V4",    "F",       "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
+        { "tex3Dbias",                        "V4",    "F",       "S3,V4",      "S,F",    EShLangFragmentMask },
+        { "tex3Dgrad",                        "V4",    "F",       "S3,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
+        { "tex3Dlod",                         "V4",    "F",       "S3,V4",      "S,F",    EShLangFragmentMask },
+        { "tex3Dproj",                        "V4",    "F",       "S3,V4",      "S,F",    EShLangFragmentMask },
+        { "texCUBE",                          "V4",    "F",       "S4,V3",      "S,F",    EShLangFragmentMask },
+        { "texCUBE",                          "V4",    "F",       "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
+        { "texCUBEbias",                      "V4",    "F",       "S4,V4",      "S,F",    EShLangFragmentMask },
+        { "texCUBEgrad",                      "V4",    "F",       "S4,V3,V3,V3","S,F,F,F",EShLangFragmentMask },
+        { "texCUBElod",                       "V4",    "F",       "S4,V4",      "S,F",    EShLangFragmentMask },
+        { "texCUBEproj",                      "V4",    "F",       "S4,V4",      "S,F",    EShLangFragmentMask },
+        { "transpose",                        "^M",    nullptr,   "M",          "F",      EShLangAll },
+        { "trunc",                            nullptr, nullptr,   "SVM",        "F",      EShLangAll },
+
+        // Mark end of list, since we want to avoid a range-based for, as some compilers don't handle it yet.
+        { nullptr,                            nullptr, nullptr,   nullptr,      nullptr,  0 },
+    };
+
+    // Set this to true to avoid generating prototypes that will be invalid for the GLSL parser.
+    // TODO: turn it off (and remove the code) when the HLSL parser can be used to parse builtins.
+    static const bool skipInvalidGlsl = true;
+    
+    // Create prototypes for the intrinsics.  TODO: Avoid ranged based for until all compilers can handle it.
+    for (int icount = 0; hlslIntrinsics[icount].name; ++icount) {
+        const auto& intrinsic = hlslIntrinsics[icount];
+
+        for (int stage = 0; stage < EShLangCount; ++stage) {                                // for each stage...
+            if ((intrinsic.stage & (1<<stage)) == 0) // skip inapplicable stages
+                continue;
+
+            // reference to either the common builtins, or stage specific builtins.
+            TString& s = (intrinsic.stage == EShLangAll) ? commonBuiltins : stageBuiltins[stage];
+
+            for (const char* argOrder = intrinsic.argOrder; !IsEndOfArg(argOrder); ++argOrder) { // for each order...
+                const int fixedVecSize = isdigit(argOrder[1]) ? (argOrder[1] - '0') : 0;
+
+                // calculate min and max vector and matrix dimensions
+                int dim0Min = 1;
+                int dim0Max = 1;
+                int dim1Min = 1;
+                int dim1Max = 1;
+
+                FindVectorMatrixBounds(argOrder, fixedVecSize, dim0Min, dim0Max, dim1Min, dim1Max);
+
+                for (const char* argType = intrinsic.argType; !IsEndOfArg(argType); ++argType) { // for each type...
+                    for (int dim0 = dim0Min; dim0 <= dim0Max; ++dim0) {          // for each dim 0...
+                        for (int dim1 = dim1Min; dim1 <= dim1Max; ++dim1) {      // for each dim 1...
+                            const char* retOrder = intrinsic.retOrder ? intrinsic.retOrder : argOrder;
+                            const char* retType  = intrinsic.retType  ? intrinsic.retType  : argType;
+
+                            if (skipInvalidGlsl && !IsValidGlsl(intrinsic.name, *retOrder, *retType, *argOrder, *argType,
+                                                                dim0, dim1, dim0Max, dim1Max))
+                                continue;
+
+                            AppendTypeName(s, retOrder, retType, dim0, dim1);  // add return type
+                            s.append(" ");                                     // space between type and name
+                            s.append(intrinsic.name);                          // intrinsic name
+                            s.append("(");                                     // open paren
+
+                            // Append argument types, if any.
+                            for (int arg = 0; ; ++arg) {
+                                const char* nthArgOrder(NthArg(argOrder, arg));
+                                const char* nthArgType(NthArg(argType, arg));
+
+                                if (nthArgOrder == nullptr || nthArgType == nullptr)
+                                    break;
+
+                                s.append(arg > 0 ? ", ": "");  // comma separator if needed
+                                
+                                if (*nthArgOrder == '>') {           // output params
+                                    ++nthArgOrder;
+                                    s.append("out ");
+                                } else if (*nthArgOrder == '<') {    // input params
+                                    ++nthArgOrder;
+                                    s.append("in ");
+                                }
+
+                                // Comma means use the 1st argument order and type.
+                                if (*nthArgOrder == ',' || *nthArgOrder == '\0') nthArgOrder = argOrder;
+                                if (*nthArgType == ',' || *nthArgType == '\0') nthArgType = argType;
+
+                                AppendTypeName(s, nthArgOrder, nthArgType, dim0, dim1); // Add first argument
+                            }
+                            
+                            s.append(");\n");            // close paren and trailing semicolon
+                        }
+                    }
+                }
+
+                if (fixedVecSize > 0)  // skip over number for fixed size vectors
+                    ++argOrder;
+            }
+            
+            if (intrinsic.stage == EShLangAll) // common builtins are only added once.
+                break;
+        }
+    }
+
+    // printf("Common:\n%s\n",   getCommonString().c_str());
+    // printf("Frag:\n%s\n",     getStageString(EShLangFragment).c_str());
+    // printf("Vertex:\n%s\n",   getStageString(EShLangVertex).c_str());
+    // printf("Geo:\n%s\n",      getStageString(EShLangGeometry).c_str());
+    // printf("TessCtrl:\n%s\n", getStageString(EShLangTessControl).c_str());
+    // printf("TessEval:\n%s\n", getStageString(EShLangTessEvaluation).c_str());
+    // printf("Compute:\n%s\n",  getStageString(EShLangCompute).c_str());
 }
 
 //
@@ -80,7 +494,6 @@ void TBuiltInParseablesHlsl::initialize(int version, EProfile profile, int spv,
 void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int version, EProfile profile, int spv,
                                         int vulkan, EShLanguage language)
 {
-    assert(0 && "Unimplemented TBuiltInParseablesHlsl::initialize");
 }
 
 
@@ -95,7 +508,140 @@ void TBuiltInParseablesHlsl::initialize(const TBuiltInResource &resources, int v
 void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int vulkan, EShLanguage language,
                                               TSymbolTable& symbolTable)
 {
-    assert(0 && "Unimplemented TBuiltInParseablesHlsl::identifyBuiltIns");
+    // symbolTable.relateToOperator("abort");
+    symbolTable.relateToOperator("abs",                         EOpAbs);
+    symbolTable.relateToOperator("acos",                        EOpAcos);
+    symbolTable.relateToOperator("all",                         EOpAll);
+    // symbolTable.relateToOperator("AllMemoryBarrier");
+    // symbolTable.relateToOperator("AllMemoryBarrierWithGroupSync");
+    symbolTable.relateToOperator("any",                         EOpAny);
+    // symbolTable.relateToOperator("asdouble");
+    // symbolTable.relateToOperator("asfloat");
+    symbolTable.relateToOperator("asin",                        EOpAsin);
+    // symbolTable.relateToOperator("asint");
+    // symbolTable.relateToOperator("asuint");
+    symbolTable.relateToOperator("atan",                        EOpAtan);
+    symbolTable.relateToOperator("atan2",                       EOpAtan);
+    symbolTable.relateToOperator("ceil",                        EOpCeil);
+    // symbolTable.relateToOperator("CheckAccessFullyMapped");
+    symbolTable.relateToOperator("clamp",                       EOpClamp);
+    // symbolTable.relateToOperator("clip");
+    symbolTable.relateToOperator("cos",                         EOpCos);
+    symbolTable.relateToOperator("cosh",                        EOpCosh);
+    symbolTable.relateToOperator("countbits",                   EOpBitCount);
+    symbolTable.relateToOperator("cross",                       EOpCross);
+    // symbolTable.relateToOperator("D3DCOLORtoUBYTE4");
+    symbolTable.relateToOperator("ddx",                         EOpDPdx);
+    symbolTable.relateToOperator("ddx_coarse",                  EOpDPdxCoarse);
+    symbolTable.relateToOperator("ddx_fine",                    EOpDPdxFine);
+    symbolTable.relateToOperator("ddy",                         EOpDPdy);
+    symbolTable.relateToOperator("ddy_coarse",                  EOpDPdyCoarse);
+    symbolTable.relateToOperator("ddy_fine",                    EOpDPdyFine);
+    symbolTable.relateToOperator("degrees",                     EOpDegrees);
+    symbolTable.relateToOperator("determinant",                 EOpDeterminant);
+    // symbolTable.relateToOperator("DeviceMemoryBarrier");
+    // symbolTable.relateToOperator("DeviceMemoryBarrierWithGroupSync");
+    symbolTable.relateToOperator("distance",                    EOpDistance);
+    symbolTable.relateToOperator("dot",                         EOpDot);
+    // symbolTable.relateToOperator("dst");
+    // symbolTable.relateToOperator("errorf");
+    symbolTable.relateToOperator("EvaluateAttributeAtCentroid", EOpInterpolateAtCentroid);
+    symbolTable.relateToOperator("EvaluateAttributeAtSample",   EOpInterpolateAtSample);
+    // symbolTable.relateToOperator("EvaluateAttributeSnapped");  // TODO: hsnflr positions.  new op?
+    symbolTable.relateToOperator("exp",                         EOpExp);
+    symbolTable.relateToOperator("exp2",                        EOpExp2);
+    // symbolTable.relateToOperator("f16tof32");
+    // symbolTable.relateToOperator("f32tof16");
+    symbolTable.relateToOperator("faceforward",                 EOpFaceForward);
+    symbolTable.relateToOperator("firstbithigh",                EOpFindMSB);
+    symbolTable.relateToOperator("firstbitlow",                 EOpFindLSB);
+    symbolTable.relateToOperator("floor",                       EOpFloor);
+    symbolTable.relateToOperator("fma",                         EOpFma);
+    // symbolTable.relateToOperator("fmod");
+    symbolTable.relateToOperator("frac",                        EOpFract);
+    symbolTable.relateToOperator("frexp",                       EOpFrexp);
+    symbolTable.relateToOperator("fwidth",                      EOpFwidth);
+    // symbolTable.relateToOperator("GetRenderTargetSampleCount");
+    // symbolTable.relateToOperator("GetRenderTargetSamplePosition");
+    // symbolTable.relateToOperator("GroupMemoryBarrier");
+    // symbolTable.relateToOperator("GroupMemoryBarrierWithGroupSync");
+    // symbolTable.relateToOperator("InterlockedAdd");
+    // symbolTable.relateToOperator("InterlockedAnd");
+    // symbolTable.relateToOperator("InterlockedCompareExchange");
+    // symbolTable.relateToOperator("InterlockedCompareStore");
+    // symbolTable.relateToOperator("InterlockedExchange");
+    // symbolTable.relateToOperator("InterlockedMax");
+    // symbolTable.relateToOperator("InterlockedMin");
+    // symbolTable.relateToOperator("InterlockedOr");
+    // symbolTable.relateToOperator("InterlockedXor");
+    // symbolTable.relateToOperator("isfinite");
+    symbolTable.relateToOperator("isinf",                       EOpIsInf);
+    symbolTable.relateToOperator("isnan",                       EOpIsNan);
+    symbolTable.relateToOperator("ldexp",                       EOpLdexp);
+    symbolTable.relateToOperator("length",                      EOpLength);
+    // symbolTable.relateToOperator("lit");
+    symbolTable.relateToOperator("log",                         EOpLog);
+    // symbolTable.relateToOperator("log10");
+    symbolTable.relateToOperator("log2",                        EOpLog2);
+    // symbolTable.relateToOperator("mad");
+    symbolTable.relateToOperator("max",                         EOpMax);
+    symbolTable.relateToOperator("min",                         EOpMin);
+    symbolTable.relateToOperator("modf",                        EOpModf);
+    // symbolTable.relateToOperator("msad4");
+    // symbolTable.relateToOperator("mul");
+    // symbolTable.relateToOperator("noise",                    EOpNoise); // TODO: check return type
+    symbolTable.relateToOperator("normalize",                   EOpNormalize);
+    symbolTable.relateToOperator("pow",                         EOpPow);
+    // symbolTable.relateToOperator("printf");
+    // symbolTable.relateToOperator("Process2DQuadTessFactorsAvg");
+    // symbolTable.relateToOperator("Process2DQuadTessFactorsMax");
+    // symbolTable.relateToOperator("Process2DQuadTessFactorsMin");
+    // symbolTable.relateToOperator("ProcessIsolineTessFactors");
+    // symbolTable.relateToOperator("ProcessQuadTessFactorsAvg");
+    // symbolTable.relateToOperator("ProcessQuadTessFactorsMax");
+    // symbolTable.relateToOperator("ProcessQuadTessFactorsMin");
+    // symbolTable.relateToOperator("ProcessTriTessFactorsAvg");
+    // symbolTable.relateToOperator("ProcessTriTessFactorsMax");
+    // symbolTable.relateToOperator("ProcessTriTessFactorsMin");
+    symbolTable.relateToOperator("radians",                     EOpRadians);
+    // symbolTable.relateToOperator("rcp");
+    symbolTable.relateToOperator("reflect",                     EOpReflect);
+    symbolTable.relateToOperator("refract",                     EOpRefract);
+    symbolTable.relateToOperator("reversebits",                 EOpBitFieldReverse);
+    symbolTable.relateToOperator("round",                       EOpRoundEven);
+    symbolTable.relateToOperator("rsqrt",                       EOpInverseSqrt);
+    // symbolTable.relateToOperator("saturate"); 
+    symbolTable.relateToOperator("sign",                        EOpSign);
+    symbolTable.relateToOperator("sin",                         EOpSin);
+    // symbolTable.relateToOperator("sincos");
+    symbolTable.relateToOperator("sinh",                        EOpSinh);
+    symbolTable.relateToOperator("smoothstep",                  EOpSmoothStep);
+    symbolTable.relateToOperator("sqrt",                        EOpSqrt);
+    symbolTable.relateToOperator("step",                        EOpStep);
+    symbolTable.relateToOperator("tan",                         EOpTan);
+    symbolTable.relateToOperator("tanh",                        EOpTanh);
+    symbolTable.relateToOperator("tex1D",                       EOpTexture);
+    // symbolTable.relateToOperator("tex1Dbias",                  // TODO:
+    symbolTable.relateToOperator("tex1Dgrad",                   EOpTextureGrad);
+    symbolTable.relateToOperator("tex1Dlod",                    EOpTextureLod);
+    symbolTable.relateToOperator("tex1Dproj",                   EOpTextureProj);
+    symbolTable.relateToOperator("tex2D",                       EOpTexture);
+    // symbolTable.relateToOperator("tex2Dbias",                  // TODO:
+    symbolTable.relateToOperator("tex2Dgrad",                   EOpTextureGrad);
+    symbolTable.relateToOperator("tex2Dlod",                    EOpTextureLod);
+    // symbolTable.relateToOperator("tex2Dproj",                   EOpTextureProj);
+    symbolTable.relateToOperator("tex3D",                       EOpTexture);
+    // symbolTable.relateToOperator("tex3Dbias");                // TODO
+    symbolTable.relateToOperator("tex3Dgrad",                   EOpTextureGrad);
+    symbolTable.relateToOperator("tex3Dlod",                    EOpTextureLod);
+    // symbolTable.relateToOperator("tex3Dproj",                   EOpTextureProj);
+    symbolTable.relateToOperator("texCUBE",                     EOpTexture);
+    // symbolTable.relateToOperator("texCUBEbias",              // TODO
+    symbolTable.relateToOperator("texCUBEgrad",                 EOpTextureGrad);
+    symbolTable.relateToOperator("texCUBElod",                  EOpTextureLod);
+    // symbolTable.relateToOperator("texCUBEproj",                 EOpTextureProj);
+    symbolTable.relateToOperator("transpose",                   EOpTranspose);
+    symbolTable.relateToOperator("trunc",                       EOpTrunc);
 }
 
 //
@@ -110,7 +656,6 @@ void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int
 void TBuiltInParseablesHlsl::identifyBuiltIns(int version, EProfile profile, int spv, int /*vulkan*/, EShLanguage language,
                                               TSymbolTable& symbolTable, const TBuiltInResource &resources)
 {
-    assert(0 && "Unimplemented TBuiltInParseablesHlsl::identifyBuiltIns");
 }