HLSL: Grammar: Make comma-separated declaration lists work.
diff --git a/Test/baseResults/hlsl.discard.frag.out b/Test/baseResults/hlsl.discard.frag.out
index 9f5b6c3..7e549e1 100755
--- a/Test/baseResults/hlsl.discard.frag.out
+++ b/Test/baseResults/hlsl.discard.frag.out
@@ -31,12 +31,13 @@
 0:10            0 (const int)
 0:10        true case
 0:11        Branch: Kill
-0:12      move second child to first child (temp float)
-0:12        'f' (temp float)
-0:12        direct index (temp float)
-0:12          'input' (in 4-component vector of float)
-0:12          Constant:
-0:12            0 (const int)
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'f' (temp float)
+0:12          direct index (temp float)
+0:12            'input' (in 4-component vector of float)
+0:12            Constant:
+0:12              0 (const int)
 0:13      Branch: Kill
 0:?   Linker Objects
 
@@ -76,12 +77,13 @@
 0:10            0 (const int)
 0:10        true case
 0:11        Branch: Kill
-0:12      move second child to first child (temp float)
-0:12        'f' (temp float)
-0:12        direct index (temp float)
-0:12          'input' (in 4-component vector of float)
-0:12          Constant:
-0:12            0 (const int)
+0:12      Sequence
+0:12        move second child to first child (temp float)
+0:12          'f' (temp float)
+0:12          direct index (temp float)
+0:12            'input' (in 4-component vector of float)
+0:12            Constant:
+0:12              0 (const int)
 0:13      Branch: Kill
 0:?   Linker Objects
 
diff --git a/Test/baseResults/hlsl.float1.frag.out b/Test/baseResults/hlsl.float1.frag.out
index c21931d..6effb9a 100755
--- a/Test/baseResults/hlsl.float1.frag.out
+++ b/Test/baseResults/hlsl.float1.frag.out
@@ -2,14 +2,16 @@
 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)
-0:1    'f1' (temp 1-component vector of float)
-0:1    Constant:
-0:1      1.000000
-0:2  move second child to first child (temp float)
-0:2    'scalar' (temp float)
-0:2    Constant:
-0:2      2.000000
+0:1  Sequence
+0:1    move second child to first child (temp 1-component vector of float)
+0:1      'f1' (temp 1-component vector of float)
+0:1      Constant:
+0:1        1.000000
+0:2  Sequence
+0:2    move second child to first child (temp float)
+0:2      'scalar' (temp float)
+0:2      Constant:
+0:2        2.000000
 0:8  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
@@ -34,14 +36,16 @@
 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)
-0:1    'f1' (temp 1-component vector of float)
-0:1    Constant:
-0:1      1.000000
-0:2  move second child to first child (temp float)
-0:2    'scalar' (temp float)
-0:2    Constant:
-0:2      2.000000
+0:1  Sequence
+0:1    move second child to first child (temp 1-component vector of float)
+0:1      'f1' (temp 1-component vector of float)
+0:1      Constant:
+0:1        1.000000
+0:2  Sequence
+0:2    move second child to first child (temp float)
+0:2      'scalar' (temp float)
+0:2      Constant:
+0:2        2.000000
 0:8  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
 0:5    Function Parameters: 
 0:5      'inFloat1' (in 1-component vector of float)
@@ -61,7 +65,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 24
+// Id's are bound by 26
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -80,21 +84,25 @@
                6:             TypeFloat 32
                7:             TypePointer Function 6(float)
                8:             TypeFunction 6(float) 7(ptr) 7(ptr)
+              14:    6(float) Constant 1065353216
+              16:    6(float) Constant 1073741824
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
+          13(f1):      7(ptr) Variable Function
+      15(scalar):      7(ptr) Variable Function
+                              Store 13(f1) 14
+                              Store 15(scalar) 16
                               FunctionEnd
 11(ShaderFunction(vf1;f1;):    6(float) Function None 8
      9(inFloat1):      7(ptr) FunctionParameter
     10(inScalar):      7(ptr) FunctionParameter
               12:             Label
-          13(f1):      7(ptr) Variable Function
-      15(scalar):      7(ptr) Variable Function
-              14:    6(float) Load 13(f1)
-              16:    6(float) Load 15(scalar)
-              17:    6(float) IMul 14 16
-              18:    6(float) Load 9(inFloat1)
-              19:    6(float) Load 10(inScalar)
-              20:    6(float) IMul 18 19
-              21:    6(float) FAdd 17 20
-                              ReturnValue 21
+              17:    6(float) Load 13(f1)
+              18:    6(float) Load 15(scalar)
+              19:    6(float) IMul 17 18
+              20:    6(float) Load 9(inFloat1)
+              21:    6(float) Load 10(inScalar)
+              22:    6(float) IMul 20 21
+              23:    6(float) FAdd 19 22
+                              ReturnValue 23
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.float4.frag.out b/Test/baseResults/hlsl.float4.frag.out
index 7ad1721..cad5006 100755
--- a/Test/baseResults/hlsl.float4.frag.out
+++ b/Test/baseResults/hlsl.float4.frag.out
@@ -2,13 +2,14 @@
 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)
-0:1    'AmbientColor' (temp 4-component vector of float)
-0:?     Constant:
-0:?       1.000000
-0:?       0.500000
-0:?       0.000000
-0:?       1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'AmbientColor' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
 0:12  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
@@ -31,13 +32,14 @@
 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)
-0:1    'AmbientColor' (temp 4-component vector of float)
-0:?     Constant:
-0:?       1.000000
-0:?       0.500000
-0:?       0.000000
-0:?       1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'AmbientColor' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
 0:12  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
 0:9    Function Parameters: 
 0:9      'input' (in 4-component vector of float)
@@ -55,7 +57,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 25
+// Id's are bound by 29
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -66,34 +68,39 @@
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"
-                              Name 14  "AmbientColor"
-                              Name 21  "ff1"
-                              Name 22  "ff2"
-                              Name 23  "ff3"
-                              Name 24  "ff4"
-                              Decorate 21(ff1) BuiltIn FrontFacing
-                              Decorate 24(ff4) BuiltIn FragCoord
+                              Name 13  "AmbientColor"
+                              Name 25  "ff1"
+                              Name 26  "ff2"
+                              Name 27  "ff3"
+                              Name 28  "ff4"
+                              Decorate 25(ff1) BuiltIn FrontFacing
+                              Decorate 28(ff4) BuiltIn FragCoord
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
                8:             TypePointer Function 7(fvec4)
                9:             TypeFunction 7(fvec4) 8(ptr)
-              19:             TypeBool
-              20:             TypePointer Function 19(bool)
+              14:    6(float) Constant 1065353216
+              15:    6(float) Constant 1056964608
+              16:    6(float) Constant 0
+              17:    7(fvec4) ConstantComposite 14 15 16 14
+              23:             TypeBool
+              24:             TypePointer Function 23(bool)
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
+13(AmbientColor):      8(ptr) Variable Function
+                              Store 13(AmbientColor) 17
                               FunctionEnd
 11(ShaderFunction(vf4;):    7(fvec4) Function None 9
        10(input):      8(ptr) FunctionParameter
               12:             Label
-14(AmbientColor):      8(ptr) Variable Function
-         21(ff1):     20(ptr) Variable Function
-         22(ff2):      8(ptr) Variable Function
-         23(ff3):      8(ptr) Variable Function
-         24(ff4):      8(ptr) Variable Function
-              13:    7(fvec4) Load 10(input)
-              15:    7(fvec4) Load 14(AmbientColor)
-              16:    7(fvec4) FMul 13 15
-                              ReturnValue 16
+         25(ff1):     24(ptr) Variable Function
+         26(ff2):      8(ptr) Variable Function
+         27(ff3):      8(ptr) Variable Function
+         28(ff4):      8(ptr) Variable Function
+              18:    7(fvec4) Load 10(input)
+              19:    7(fvec4) Load 13(AmbientColor)
+              20:    7(fvec4) FMul 18 19
+                              ReturnValue 20
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.init.frag.out b/Test/baseResults/hlsl.init.frag.out
new file mode 100755
index 0000000..06fbe42
--- /dev/null
+++ b/Test/baseResults/hlsl.init.frag.out
@@ -0,0 +1,224 @@
+hlsl.init.frag
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'a1' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'b1' (temp 4-component vector of float)
+0:?       Constant:
+0:?         2.000000
+0:?         2.500000
+0:?         2.100000
+0:?         2.200000
+0:2  Sequence
+0:2    move second child to first child (temp float)
+0:2      'a2' (temp float)
+0:2      Constant:
+0:2        0.200000
+0:?   Sequence
+0:3    move second child to first child (temp float)
+0:3      'b3' (temp float)
+0:3      Constant:
+0:3        0.300000
+0:?   Sequence
+0:4    move second child to first child (temp float)
+0:4      'b4' (temp float)
+0:4      Constant:
+0:4        0.400000
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'a5' (temp float)
+0:5      Constant:
+0:5        0.500000
+0:5    move second child to first child (temp float)
+0:5      'c5' (temp float)
+0:5      Constant:
+0:5        1.500000
+0:13  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:8    Function Parameters: 
+0:8      'input' (in 4-component vector of float)
+0:?     Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'a2' (temp 4-component vector of float)
+0:?           Constant:
+0:?             0.200000
+0:?             0.300000
+0:?             0.400000
+0:?             0.500000
+0:11      Branch: Return with expression
+0:11        component-wise multiply (temp 4-component vector of float)
+0:11          'input' (in 4-component vector of float)
+0:11          'a1' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'a1' (temp 4-component vector of float)
+0:?     'b1' (temp 4-component vector of float)
+0:?     'a2' (temp float)
+0:?     'b2' (temp float)
+0:?     'a3' (temp float)
+0:?     'b3' (temp float)
+0:?     'a4' (temp float)
+0:?     'b4' (temp float)
+0:?     'c4' (temp float)
+0:?     'a5' (temp float)
+0:?     'b5' (temp float)
+0:?     'c5' (temp float)
+
+
+Linked fragment stage:
+
+
+Shader version: 450
+gl_FragCoord origin is upper left
+0:? Sequence
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'a1' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'b1' (temp 4-component vector of float)
+0:?       Constant:
+0:?         2.000000
+0:?         2.500000
+0:?         2.100000
+0:?         2.200000
+0:2  Sequence
+0:2    move second child to first child (temp float)
+0:2      'a2' (temp float)
+0:2      Constant:
+0:2        0.200000
+0:?   Sequence
+0:3    move second child to first child (temp float)
+0:3      'b3' (temp float)
+0:3      Constant:
+0:3        0.300000
+0:?   Sequence
+0:4    move second child to first child (temp float)
+0:4      'b4' (temp float)
+0:4      Constant:
+0:4        0.400000
+0:5  Sequence
+0:5    move second child to first child (temp float)
+0:5      'a5' (temp float)
+0:5      Constant:
+0:5        0.500000
+0:5    move second child to first child (temp float)
+0:5      'c5' (temp float)
+0:5      Constant:
+0:5        1.500000
+0:13  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
+0:8    Function Parameters: 
+0:8      'input' (in 4-component vector of float)
+0:?     Sequence
+0:9      Sequence
+0:9        move second child to first child (temp 4-component vector of float)
+0:9          'a2' (temp 4-component vector of float)
+0:?           Constant:
+0:?             0.200000
+0:?             0.300000
+0:?             0.400000
+0:?             0.500000
+0:11      Branch: Return with expression
+0:11        component-wise multiply (temp 4-component vector of float)
+0:11          'input' (in 4-component vector of float)
+0:11          'a1' (temp 4-component vector of float)
+0:?   Linker Objects
+0:?     'a1' (temp 4-component vector of float)
+0:?     'b1' (temp 4-component vector of float)
+0:?     'a2' (temp float)
+0:?     'b2' (temp float)
+0:?     'a3' (temp float)
+0:?     'b3' (temp float)
+0:?     'a4' (temp float)
+0:?     'b4' (temp float)
+0:?     'c4' (temp float)
+0:?     'a5' (temp float)
+0:?     'b5' (temp float)
+0:?     'c5' (temp float)
+
+// Module Version 10000
+// Generated by (magic number): 80001
+// Id's are bound by 43
+
+                              Capability Shader
+               1:             ExtInstImport  "GLSL.std.450"
+                              MemoryModel Logical GLSL450
+                              EntryPoint Fragment 4  "ShaderFunction" 33
+                              ExecutionMode 4 OriginUpperLeft
+                              Source HLSL 450
+                              Name 4  "ShaderFunction"
+                              Name 9  "a1"
+                              Name 14  "b1"
+                              Name 21  "a2"
+                              Name 23  "b3"
+                              Name 25  "b4"
+                              Name 27  "a5"
+                              Name 28  "c5"
+                              Name 30  "a2"
+                              Name 33  "input"
+                              Name 38  "b2"
+                              Name 39  "a3"
+                              Name 40  "a4"
+                              Name 41  "c4"
+                              Name 42  "b5"
+               2:             TypeVoid
+               3:             TypeFunction 2
+               6:             TypeFloat 32
+               7:             TypeVector 6(float) 4
+               8:             TypePointer Function 7(fvec4)
+              10:    6(float) Constant 1065353216
+              11:    6(float) Constant 1056964608
+              12:    6(float) Constant 0
+              13:    7(fvec4) ConstantComposite 10 11 12 10
+              15:    6(float) Constant 1073741824
+              16:    6(float) Constant 1075838976
+              17:    6(float) Constant 1074161254
+              18:    6(float) Constant 1074580685
+              19:    7(fvec4) ConstantComposite 15 16 17 18
+              20:             TypePointer Function 6(float)
+              22:    6(float) Constant 1045220557
+              24:    6(float) Constant 1050253722
+              26:    6(float) Constant 1053609165
+              29:    6(float) Constant 1069547520
+              31:    7(fvec4) ConstantComposite 22 24 26 11
+              32:             TypePointer Input 7(fvec4)
+       33(input):     32(ptr) Variable Input
+4(ShaderFunction):           2 Function None 3
+               5:             Label
+           9(a1):      8(ptr) Variable Function
+          14(b1):      8(ptr) Variable Function
+          21(a2):     20(ptr) Variable Function
+          23(b3):     20(ptr) Variable Function
+          25(b4):     20(ptr) Variable Function
+          27(a5):     20(ptr) Variable Function
+          28(c5):     20(ptr) Variable Function
+          30(a2):      8(ptr) Variable Function
+          38(b2):     20(ptr) Variable Function
+          39(a3):     20(ptr) Variable Function
+          40(a4):     20(ptr) Variable Function
+          41(c4):     20(ptr) Variable Function
+          42(b5):     20(ptr) Variable Function
+                              Store 9(a1) 13
+                              Store 14(b1) 19
+                              Store 21(a2) 22
+                              Store 23(b3) 24
+                              Store 25(b4) 26
+                              Store 27(a5) 11
+                              Store 28(c5) 29
+                              Store 30(a2) 31
+              34:    7(fvec4) Load 33(input)
+              35:    7(fvec4) Load 9(a1)
+              36:    7(fvec4) FMul 34 35
+                              ReturnValue 36
+                              FunctionEnd
diff --git a/Test/baseResults/hlsl.intrinsics.double.frag.out b/Test/baseResults/hlsl.intrinsics.double.frag.out
index ebdbcac..494cc0f 100644
--- a/Test/baseResults/hlsl.intrinsics.double.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.double.frag.out
@@ -13,18 +13,20 @@
 0:5      'inU1a' (in uint)
 0:5      'inU1b' (in uint)
 0:?     Sequence
-0:6      move second child to first child (temp double)
-0:6        'r00' (temp double)
-0:6        fma (global double)
-0:6          'inDV1a' (in double)
-0:6          'inDV1b' (in double)
-0:6          'inDV1c' (in double)
-0:7      move second child to first child (temp double)
-0:7        'r01' (temp double)
-0:7        uint64BitsToDouble (temp double)
-0:7          Construct uvec2 (temp 2-component vector of uint)
-0:7            'inU1a' (in uint)
-0:7            'inU1b' (in uint)
+0:6      Sequence
+0:6        move second child to first child (temp double)
+0:6          'r00' (temp double)
+0:6          fma (global double)
+0:6            'inDV1a' (in double)
+0:6            'inDV1b' (in double)
+0:6            'inDV1c' (in double)
+0:7      Sequence
+0:7        move second child to first child (temp double)
+0:7          'r01' (temp double)
+0:7          uint64BitsToDouble (temp double)
+0:7            Construct uvec2 (temp 2-component vector of uint)
+0:7              'inU1a' (in uint)
+0:7              'inU1b' (in uint)
 0:9      Branch: Return with expression
 0:9        Constant:
 0:9          0.000000
@@ -48,18 +50,20 @@
 0:5      'inU1a' (in uint)
 0:5      'inU1b' (in uint)
 0:?     Sequence
-0:6      move second child to first child (temp double)
-0:6        'r00' (temp double)
-0:6        fma (global double)
-0:6          'inDV1a' (in double)
-0:6          'inDV1b' (in double)
-0:6          'inDV1c' (in double)
-0:7      move second child to first child (temp double)
-0:7        'r01' (temp double)
-0:7        uint64BitsToDouble (temp double)
-0:7          Construct uvec2 (temp 2-component vector of uint)
-0:7            'inU1a' (in uint)
-0:7            'inU1b' (in uint)
+0:6      Sequence
+0:6        move second child to first child (temp double)
+0:6          'r00' (temp double)
+0:6          fma (global double)
+0:6            'inDV1a' (in double)
+0:6            'inDV1b' (in double)
+0:6            'inDV1c' (in double)
+0:7      Sequence
+0:7        move second child to first child (temp double)
+0:7          'r01' (temp double)
+0:7          uint64BitsToDouble (temp double)
+0:7            Construct uvec2 (temp 2-component vector of uint)
+0:7              'inU1a' (in uint)
+0:7              'inU1b' (in uint)
 0:9      Branch: Return with expression
 0:9        Constant:
 0:9          0.000000
diff --git a/Test/baseResults/hlsl.intrinsics.frag.out b/Test/baseResults/hlsl.intrinsics.frag.out
index 5920d25..aec3602 100644
--- a/Test/baseResults/hlsl.intrinsics.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.frag.out
@@ -10,57 +10,69 @@
 0:17      'inU0' (in uint)
 0:17      'inU1' (in uint)
 0:?     Sequence
-0:20      move second child to first child (temp bool)
-0:20        'r000' (temp bool)
-0:20        all (global bool)
-0:20          'inF0' (in float)
-0:21      move second child to first child (temp float)
-0:21        'r001' (temp float)
-0:21        Absolute value (global float)
-0:21          'inF0' (in float)
-0:22      move second child to first child (temp float)
-0:22        'r002' (temp float)
-0:22        arc cosine (global float)
-0:22          'inF0' (in float)
-0:23      move second child to first child (temp bool)
-0:23        'r003' (temp bool)
-0:23        any (global bool)
-0:23          'inF0' (in float)
-0:24      move second child to first child (temp float)
-0:24        'r004' (temp float)
-0:24        arc sine (global float)
-0:24          'inF0' (in float)
-0:25      move second child to first child (temp int)
-0:25        'r005' (temp int)
-0:25        floatBitsToInt (global int)
-0:25          'inF0' (in float)
-0:26      move second child to first child (temp uint)
-0:26        'r006' (temp uint)
-0:26        floatBitsToUint (global uint)
-0:26          'inF0' (in float)
-0:27      move second child to first child (temp float)
-0:27        'r007' (temp float)
-0:27        intBitsToFloat (global float)
-0:27          'inU0' (in uint)
-0:29      move second child to first child (temp float)
-0:29        'r009' (temp float)
-0:29        arc tangent (global float)
-0:29          'inF0' (in float)
-0:30      move second child to first child (temp float)
-0:30        'r010' (temp float)
-0:30        arc tangent (global float)
-0:30          'inF0' (in float)
-0:30          'inF1' (in float)
-0:31      move second child to first child (temp float)
-0:31        'r011' (temp float)
-0:31        Ceiling (global float)
-0:31          'inF0' (in float)
-0:32      move second child to first child (temp float)
-0:32        'r012' (temp float)
-0:32        clamp (global float)
-0:32          'inF0' (in float)
-0:32          'inF1' (in float)
-0:32          'inF2' (in float)
+0:20      Sequence
+0:20        move second child to first child (temp bool)
+0:20          'r000' (temp bool)
+0:20          all (global bool)
+0:20            'inF0' (in float)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'r001' (temp float)
+0:21          Absolute value (global float)
+0:21            'inF0' (in float)
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'r002' (temp float)
+0:22          arc cosine (global float)
+0:22            'inF0' (in float)
+0:23      Sequence
+0:23        move second child to first child (temp bool)
+0:23          'r003' (temp bool)
+0:23          any (global bool)
+0:23            'inF0' (in float)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'r004' (temp float)
+0:24          arc sine (global float)
+0:24            'inF0' (in float)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'r005' (temp int)
+0:25          floatBitsToInt (global int)
+0:25            'inF0' (in float)
+0:26      Sequence
+0:26        move second child to first child (temp uint)
+0:26          'r006' (temp uint)
+0:26          floatBitsToUint (global uint)
+0:26            'inF0' (in float)
+0:27      Sequence
+0:27        move second child to first child (temp float)
+0:27          'r007' (temp float)
+0:27          intBitsToFloat (global float)
+0:27            'inU0' (in uint)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'r009' (temp float)
+0:29          arc tangent (global float)
+0:29            'inF0' (in float)
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'r010' (temp float)
+0:30          arc tangent (global float)
+0:30            'inF0' (in float)
+0:30            'inF1' (in float)
+0:31      Sequence
+0:31        move second child to first child (temp float)
+0:31          'r011' (temp float)
+0:31          Ceiling (global float)
+0:31            'inF0' (in float)
+0:32      Sequence
+0:32        move second child to first child (temp float)
+0:32          'r012' (temp float)
+0:32          clamp (global float)
+0:32            'inF0' (in float)
+0:32            'inF1' (in float)
+0:32            'inF2' (in float)
 0:33      Test condition and select (temp void)
 0:33        Condition
 0:33        Compare Less Than (temp bool)
@@ -69,177 +81,214 @@
 0:33            0.000000
 0:33        true case
 0:33        Branch: Kill
-0:34      move second child to first child (temp float)
-0:34        'r014' (temp float)
-0:34        cosine (global float)
-0:34          'inF0' (in float)
-0:35      move second child to first child (temp float)
-0:35        'r015' (temp float)
-0:35        hyp. cosine (global float)
-0:35          'inF0' (in float)
-0:36      move second child to first child (temp uint)
-0:36        'r016' (temp uint)
-0:36        bitCount (global uint)
-0:36          Constant:
-0:36            7 (const uint)
-0:37      move second child to first child (temp float)
-0:37        'r017' (temp float)
-0:37        dPdx (global float)
-0:37          'inF0' (in float)
-0:38      move second child to first child (temp float)
-0:38        'r018' (temp float)
-0:38        dPdxCoarse (global float)
-0:38          'inF0' (in float)
-0:39      move second child to first child (temp float)
-0:39        'r019' (temp float)
-0:39        dPdxFine (global float)
-0:39          'inF0' (in float)
-0:40      move second child to first child (temp float)
-0:40        'r020' (temp float)
-0:40        dPdy (global float)
-0:40          'inF0' (in float)
-0:41      move second child to first child (temp float)
-0:41        'r021' (temp float)
-0:41        dPdyCoarse (global float)
-0:41          'inF0' (in float)
-0:42      move second child to first child (temp float)
-0:42        'r022' (temp float)
-0:42        dPdyFine (global float)
-0:42          'inF0' (in float)
-0:43      move second child to first child (temp float)
-0:43        'r023' (temp float)
-0:43        degrees (global float)
-0:43          'inF0' (in float)
-0:47      move second child to first child (temp float)
-0:47        'r027' (temp float)
-0:47        exp (global float)
-0:47          'inF0' (in float)
-0:48      move second child to first child (temp float)
-0:48        'r028' (temp float)
-0:48        exp2 (global float)
-0:48          'inF0' (in float)
-0:49      move second child to first child (temp uint)
-0:49        'r029' (temp uint)
-0:49        Convert int to uint (temp uint)
-0:49          findMSB (global int)
-0:49            Constant:
-0:49              7 (const int)
-0:50      move second child to first child (temp uint)
-0:50        'r030' (temp uint)
-0:50        Convert int to uint (temp uint)
-0:50          findLSB (global int)
-0:50            Constant:
-0:50              7 (const int)
-0:51      move second child to first child (temp float)
-0:51        'r031' (temp float)
-0:51        Floor (global float)
-0:51          'inF0' (in float)
-0:53      move second child to first child (temp float)
-0:53        'r033' (temp float)
-0:53        mod (global float)
-0:53          'inF0' (in float)
-0:53          'inF1' (in float)
-0:54      move second child to first child (temp float)
-0:54        'r034' (temp float)
-0:54        Fraction (global float)
-0:54          'inF0' (in float)
-0:55      move second child to first child (temp float)
-0:55        'r035' (temp float)
-0:55        frexp (global float)
-0:55          'inF0' (in float)
-0:55          'inF1' (in float)
-0:56      move second child to first child (temp float)
-0:56        'r036' (temp float)
-0:56        fwidth (global float)
-0:56          'inF0' (in float)
-0:57      move second child to first child (temp bool)
-0:57        'r037' (temp bool)
-0:57        isinf (global bool)
-0:57          'inF0' (in float)
-0:58      move second child to first child (temp bool)
-0:58        'r038' (temp bool)
-0:58        isnan (global bool)
-0:58          'inF0' (in float)
-0:59      move second child to first child (temp float)
-0:59        'r039' (temp float)
-0:59        ldexp (global float)
-0:59          'inF0' (in float)
-0:59          'inF1' (in float)
-0:60      move second child to first child (temp float)
-0:60        'r039a' (temp float)
-0:60        mix (global float)
-0:60          'inF0' (in float)
-0:60          'inF1' (in float)
-0:60          'inF2' (in float)
-0:61      move second child to first child (temp float)
-0:61        'r040' (temp float)
-0:61        log (global float)
-0:61          'inF0' (in float)
-0:62      move second child to first child (temp float)
-0:62        'r041' (temp float)
-0:62        component-wise multiply (temp float)
-0:62          log2 (temp float)
-0:62            'inF0' (in float)
-0:62          Constant:
-0:62            0.301030
-0:63      move second child to first child (temp float)
-0:63        'r042' (temp float)
-0:63        log2 (global float)
-0:63          'inF0' (in float)
-0:64      move second child to first child (temp float)
-0:64        'r043' (temp float)
-0:64        max (global float)
-0:64          'inF0' (in float)
-0:64          'inF1' (in float)
-0:65      move second child to first child (temp float)
-0:65        'r044' (temp float)
-0:65        min (global float)
-0:65          'inF0' (in float)
-0:65          'inF1' (in float)
-0:66      move second child to first child (temp float)
-0:66        'r045' (temp float)
-0:66        pow (global float)
-0:66          'inF0' (in float)
-0:66          'inF1' (in float)
-0:67      move second child to first child (temp float)
-0:67        'r046' (temp float)
-0:67        radians (global float)
-0:67          'inF0' (in float)
-0:68      move second child to first child (temp float)
-0:68        'r047' (temp float)
-0:68        divide (temp float)
-0:68          Constant:
-0:68            1.000000
-0:68          'inF0' (in float)
-0:69      move second child to first child (temp uint)
-0:69        'r048' (temp uint)
-0:69        bitFieldReverse (global uint)
-0:69          Constant:
-0:69            2 (const uint)
-0:70      move second child to first child (temp float)
-0:70        'r049' (temp float)
-0:70        roundEven (global float)
-0:70          'inF0' (in float)
-0:71      move second child to first child (temp float)
-0:71        'r050' (temp float)
-0:71        inverse sqrt (global float)
-0:71          'inF0' (in float)
-0:72      move second child to first child (temp float)
-0:72        'r051' (temp float)
-0:72        clamp (temp float)
-0:72          'inF0' (in float)
-0:72          Constant:
-0:72            0.000000
-0:72          Constant:
-0:72            1.000000
-0:73      move second child to first child (temp float)
-0:73        'r052' (temp float)
-0:73        Sign (global float)
-0:73          'inF0' (in float)
-0:74      move second child to first child (temp float)
-0:74        'r053' (temp float)
-0:74        sine (global float)
-0:74          'inF0' (in float)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'r014' (temp float)
+0:34          cosine (global float)
+0:34            'inF0' (in float)
+0:35      Sequence
+0:35        move second child to first child (temp float)
+0:35          'r015' (temp float)
+0:35          hyp. cosine (global float)
+0:35            'inF0' (in float)
+0:36      Sequence
+0:36        move second child to first child (temp uint)
+0:36          'r016' (temp uint)
+0:36          bitCount (global uint)
+0:36            Constant:
+0:36              7 (const uint)
+0:37      Sequence
+0:37        move second child to first child (temp float)
+0:37          'r017' (temp float)
+0:37          dPdx (global float)
+0:37            'inF0' (in float)
+0:38      Sequence
+0:38        move second child to first child (temp float)
+0:38          'r018' (temp float)
+0:38          dPdxCoarse (global float)
+0:38            'inF0' (in float)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'r019' (temp float)
+0:39          dPdxFine (global float)
+0:39            'inF0' (in float)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'r020' (temp float)
+0:40          dPdy (global float)
+0:40            'inF0' (in float)
+0:41      Sequence
+0:41        move second child to first child (temp float)
+0:41          'r021' (temp float)
+0:41          dPdyCoarse (global float)
+0:41            'inF0' (in float)
+0:42      Sequence
+0:42        move second child to first child (temp float)
+0:42          'r022' (temp float)
+0:42          dPdyFine (global float)
+0:42            'inF0' (in float)
+0:43      Sequence
+0:43        move second child to first child (temp float)
+0:43          'r023' (temp float)
+0:43          degrees (global float)
+0:43            'inF0' (in float)
+0:47      Sequence
+0:47        move second child to first child (temp float)
+0:47          'r027' (temp float)
+0:47          exp (global float)
+0:47            'inF0' (in float)
+0:48      Sequence
+0:48        move second child to first child (temp float)
+0:48          'r028' (temp float)
+0:48          exp2 (global float)
+0:48            'inF0' (in float)
+0:49      Sequence
+0:49        move second child to first child (temp uint)
+0:49          'r029' (temp uint)
+0:49          Convert int to uint (temp uint)
+0:49            findMSB (global int)
+0:49              Constant:
+0:49                7 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp uint)
+0:50          'r030' (temp uint)
+0:50          Convert int to uint (temp uint)
+0:50            findLSB (global int)
+0:50              Constant:
+0:50                7 (const int)
+0:51      Sequence
+0:51        move second child to first child (temp float)
+0:51          'r031' (temp float)
+0:51          Floor (global float)
+0:51            'inF0' (in float)
+0:53      Sequence
+0:53        move second child to first child (temp float)
+0:53          'r033' (temp float)
+0:53          mod (global float)
+0:53            'inF0' (in float)
+0:53            'inF1' (in float)
+0:54      Sequence
+0:54        move second child to first child (temp float)
+0:54          'r034' (temp float)
+0:54          Fraction (global float)
+0:54            'inF0' (in float)
+0:55      Sequence
+0:55        move second child to first child (temp float)
+0:55          'r035' (temp float)
+0:55          frexp (global float)
+0:55            'inF0' (in float)
+0:55            'inF1' (in float)
+0:56      Sequence
+0:56        move second child to first child (temp float)
+0:56          'r036' (temp float)
+0:56          fwidth (global float)
+0:56            'inF0' (in float)
+0:57      Sequence
+0:57        move second child to first child (temp bool)
+0:57          'r037' (temp bool)
+0:57          isinf (global bool)
+0:57            'inF0' (in float)
+0:58      Sequence
+0:58        move second child to first child (temp bool)
+0:58          'r038' (temp bool)
+0:58          isnan (global bool)
+0:58            'inF0' (in float)
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'r039' (temp float)
+0:59          ldexp (global float)
+0:59            'inF0' (in float)
+0:59            'inF1' (in float)
+0:60      Sequence
+0:60        move second child to first child (temp float)
+0:60          'r039a' (temp float)
+0:60          mix (global float)
+0:60            'inF0' (in float)
+0:60            'inF1' (in float)
+0:60            'inF2' (in float)
+0:61      Sequence
+0:61        move second child to first child (temp float)
+0:61          'r040' (temp float)
+0:61          log (global float)
+0:61            'inF0' (in float)
+0:62      Sequence
+0:62        move second child to first child (temp float)
+0:62          'r041' (temp float)
+0:62          component-wise multiply (temp float)
+0:62            log2 (temp float)
+0:62              'inF0' (in float)
+0:62            Constant:
+0:62              0.301030
+0:63      Sequence
+0:63        move second child to first child (temp float)
+0:63          'r042' (temp float)
+0:63          log2 (global float)
+0:63            'inF0' (in float)
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'r043' (temp float)
+0:64          max (global float)
+0:64            'inF0' (in float)
+0:64            'inF1' (in float)
+0:65      Sequence
+0:65        move second child to first child (temp float)
+0:65          'r044' (temp float)
+0:65          min (global float)
+0:65            'inF0' (in float)
+0:65            'inF1' (in float)
+0:66      Sequence
+0:66        move second child to first child (temp float)
+0:66          'r045' (temp float)
+0:66          pow (global float)
+0:66            'inF0' (in float)
+0:66            'inF1' (in float)
+0:67      Sequence
+0:67        move second child to first child (temp float)
+0:67          'r046' (temp float)
+0:67          radians (global float)
+0:67            'inF0' (in float)
+0:68      Sequence
+0:68        move second child to first child (temp float)
+0:68          'r047' (temp float)
+0:68          divide (temp float)
+0:68            Constant:
+0:68              1.000000
+0:68            'inF0' (in float)
+0:69      Sequence
+0:69        move second child to first child (temp uint)
+0:69          'r048' (temp uint)
+0:69          bitFieldReverse (global uint)
+0:69            Constant:
+0:69              2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp float)
+0:70          'r049' (temp float)
+0:70          roundEven (global float)
+0:70            'inF0' (in float)
+0:71      Sequence
+0:71        move second child to first child (temp float)
+0:71          'r050' (temp float)
+0:71          inverse sqrt (global float)
+0:71            'inF0' (in float)
+0:72      Sequence
+0:72        move second child to first child (temp float)
+0:72          'r051' (temp float)
+0:72          clamp (temp float)
+0:72            'inF0' (in float)
+0:72            Constant:
+0:72              0.000000
+0:72            Constant:
+0:72              1.000000
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'r052' (temp float)
+0:73          Sign (global float)
+0:73            'inF0' (in float)
+0:74      Sequence
+0:74        move second child to first child (temp float)
+0:74          'r053' (temp float)
+0:74          sine (global float)
+0:74            'inF0' (in float)
 0:75      Sequence
 0:75        move second child to first child (temp float)
 0:75          'inF1' (in float)
@@ -249,37 +298,44 @@
 0:75          'inF2' (in float)
 0:75          cosine (temp float)
 0:75            'inF0' (in float)
-0:76      move second child to first child (temp float)
-0:76        'r055' (temp float)
-0:76        hyp. sine (global float)
-0:76          'inF0' (in float)
-0:77      move second child to first child (temp float)
-0:77        'r056' (temp float)
-0:77        smoothstep (global float)
-0:77          'inF0' (in float)
-0:77          'inF1' (in float)
-0:77          'inF2' (in float)
-0:78      move second child to first child (temp float)
-0:78        'r057' (temp float)
-0:78        sqrt (global float)
-0:78          'inF0' (in float)
-0:79      move second child to first child (temp float)
-0:79        'r058' (temp float)
-0:79        step (global float)
-0:79          'inF0' (in float)
-0:79          'inF1' (in float)
-0:80      move second child to first child (temp float)
-0:80        'r059' (temp float)
-0:80        tangent (global float)
-0:80          'inF0' (in float)
-0:81      move second child to first child (temp float)
-0:81        'r060' (temp float)
-0:81        hyp. tangent (global float)
-0:81          'inF0' (in float)
-0:83      move second child to first child (temp float)
-0:83        'r061' (temp float)
-0:83        trunc (global float)
-0:83          'inF0' (in float)
+0:76      Sequence
+0:76        move second child to first child (temp float)
+0:76          'r055' (temp float)
+0:76          hyp. sine (global float)
+0:76            'inF0' (in float)
+0:77      Sequence
+0:77        move second child to first child (temp float)
+0:77          'r056' (temp float)
+0:77          smoothstep (global float)
+0:77            'inF0' (in float)
+0:77            'inF1' (in float)
+0:77            'inF2' (in float)
+0:78      Sequence
+0:78        move second child to first child (temp float)
+0:78          'r057' (temp float)
+0:78          sqrt (global float)
+0:78            'inF0' (in float)
+0:79      Sequence
+0:79        move second child to first child (temp float)
+0:79          'r058' (temp float)
+0:79          step (global float)
+0:79            'inF0' (in float)
+0:79            'inF1' (in float)
+0:80      Sequence
+0:80        move second child to first child (temp float)
+0:80          'r059' (temp float)
+0:80          tangent (global float)
+0:80            'inF0' (in float)
+0:81      Sequence
+0:81        move second child to first child (temp float)
+0:81          'r060' (temp float)
+0:81          hyp. tangent (global float)
+0:81            'inF0' (in float)
+0:83      Sequence
+0:83        move second child to first child (temp float)
+0:83          'r061' (temp float)
+0:83          trunc (global float)
+0:83            'inF0' (in float)
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
@@ -300,57 +356,69 @@
 0:95      'inU0' (in 2-component vector of uint)
 0:95      'inU1' (in 2-component vector of uint)
 0:?     Sequence
-0:98      move second child to first child (temp bool)
-0:98        'r000' (temp bool)
-0:98        all (global bool)
-0:98          'inF0' (in 2-component vector of float)
-0:99      move second child to first child (temp 2-component vector of float)
-0:99        'r001' (temp 2-component vector of float)
-0:99        Absolute value (global 2-component vector of float)
-0:99          'inF0' (in 2-component vector of float)
-0:100      move second child to first child (temp 2-component vector of float)
-0:100        'r002' (temp 2-component vector of float)
-0:100        arc cosine (global 2-component vector of float)
-0:100          'inF0' (in 2-component vector of float)
-0:101      move second child to first child (temp bool)
-0:101        'r003' (temp bool)
-0:101        any (global bool)
-0:101          'inF0' (in 2-component vector of float)
-0:102      move second child to first child (temp 2-component vector of float)
-0:102        'r004' (temp 2-component vector of float)
-0:102        arc sine (global 2-component vector of float)
-0:102          'inF0' (in 2-component vector of float)
-0:103      move second child to first child (temp 2-component vector of int)
-0:103        'r005' (temp 2-component vector of int)
-0:103        floatBitsToInt (global 2-component vector of int)
-0:103          'inF0' (in 2-component vector of float)
-0:104      move second child to first child (temp 2-component vector of uint)
-0:104        'r006' (temp 2-component vector of uint)
-0:104        floatBitsToUint (global 2-component vector of uint)
-0:104          'inF0' (in 2-component vector of float)
-0:105      move second child to first child (temp 2-component vector of float)
-0:105        'r007' (temp 2-component vector of float)
-0:105        intBitsToFloat (global 2-component vector of float)
-0:105          'inU0' (in 2-component vector of uint)
-0:107      move second child to first child (temp 2-component vector of float)
-0:107        'r009' (temp 2-component vector of float)
-0:107        arc tangent (global 2-component vector of float)
-0:107          'inF0' (in 2-component vector of float)
-0:108      move second child to first child (temp 2-component vector of float)
-0:108        'r010' (temp 2-component vector of float)
-0:108        arc tangent (global 2-component vector of float)
-0:108          'inF0' (in 2-component vector of float)
-0:108          'inF1' (in 2-component vector of float)
-0:109      move second child to first child (temp 2-component vector of float)
-0:109        'r011' (temp 2-component vector of float)
-0:109        Ceiling (global 2-component vector of float)
-0:109          'inF0' (in 2-component vector of float)
-0:110      move second child to first child (temp 2-component vector of float)
-0:110        'r012' (temp 2-component vector of float)
-0:110        clamp (global 2-component vector of float)
-0:110          'inF0' (in 2-component vector of float)
-0:110          'inF1' (in 2-component vector of float)
-0:110          'inF2' (in 2-component vector of float)
+0:98      Sequence
+0:98        move second child to first child (temp bool)
+0:98          'r000' (temp bool)
+0:98          all (global bool)
+0:98            'inF0' (in 2-component vector of float)
+0:99      Sequence
+0:99        move second child to first child (temp 2-component vector of float)
+0:99          'r001' (temp 2-component vector of float)
+0:99          Absolute value (global 2-component vector of float)
+0:99            'inF0' (in 2-component vector of float)
+0:100      Sequence
+0:100        move second child to first child (temp 2-component vector of float)
+0:100          'r002' (temp 2-component vector of float)
+0:100          arc cosine (global 2-component vector of float)
+0:100            'inF0' (in 2-component vector of float)
+0:101      Sequence
+0:101        move second child to first child (temp bool)
+0:101          'r003' (temp bool)
+0:101          any (global bool)
+0:101            'inF0' (in 2-component vector of float)
+0:102      Sequence
+0:102        move second child to first child (temp 2-component vector of float)
+0:102          'r004' (temp 2-component vector of float)
+0:102          arc sine (global 2-component vector of float)
+0:102            'inF0' (in 2-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 2-component vector of int)
+0:103          'r005' (temp 2-component vector of int)
+0:103          floatBitsToInt (global 2-component vector of int)
+0:103            'inF0' (in 2-component vector of float)
+0:104      Sequence
+0:104        move second child to first child (temp 2-component vector of uint)
+0:104          'r006' (temp 2-component vector of uint)
+0:104          floatBitsToUint (global 2-component vector of uint)
+0:104            'inF0' (in 2-component vector of float)
+0:105      Sequence
+0:105        move second child to first child (temp 2-component vector of float)
+0:105          'r007' (temp 2-component vector of float)
+0:105          intBitsToFloat (global 2-component vector of float)
+0:105            'inU0' (in 2-component vector of uint)
+0:107      Sequence
+0:107        move second child to first child (temp 2-component vector of float)
+0:107          'r009' (temp 2-component vector of float)
+0:107          arc tangent (global 2-component vector of float)
+0:107            'inF0' (in 2-component vector of float)
+0:108      Sequence
+0:108        move second child to first child (temp 2-component vector of float)
+0:108          'r010' (temp 2-component vector of float)
+0:108          arc tangent (global 2-component vector of float)
+0:108            'inF0' (in 2-component vector of float)
+0:108            'inF1' (in 2-component vector of float)
+0:109      Sequence
+0:109        move second child to first child (temp 2-component vector of float)
+0:109          'r011' (temp 2-component vector of float)
+0:109          Ceiling (global 2-component vector of float)
+0:109            'inF0' (in 2-component vector of float)
+0:110      Sequence
+0:110        move second child to first child (temp 2-component vector of float)
+0:110          'r012' (temp 2-component vector of float)
+0:110          clamp (global 2-component vector of float)
+0:110            'inF0' (in 2-component vector of float)
+0:110            'inF1' (in 2-component vector of float)
+0:110            'inF2' (in 2-component vector of float)
 0:111      Test condition and select (temp void)
 0:111        Condition
 0:111        any (temp bool)
@@ -361,215 +429,259 @@
 0:111              0.000000
 0:111        true case
 0:111        Branch: Kill
-0:112      move second child to first child (temp 2-component vector of float)
-0:112        'r013' (temp 2-component vector of float)
-0:112        cosine (global 2-component vector of float)
-0:112          'inF0' (in 2-component vector of float)
-0:113      move second child to first child (temp 2-component vector of float)
-0:113        'r015' (temp 2-component vector of float)
-0:113        hyp. cosine (global 2-component vector of float)
-0:113          'inF0' (in 2-component vector of float)
-0:114      move second child to first child (temp 2-component vector of uint)
-0:114        'r016' (temp 2-component vector of uint)
-0:?         bitCount (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             3 (const uint)
-0:115      move second child to first child (temp 2-component vector of float)
-0:115        'r017' (temp 2-component vector of float)
-0:115        dPdx (global 2-component vector of float)
-0:115          'inF0' (in 2-component vector of float)
-0:116      move second child to first child (temp 2-component vector of float)
-0:116        'r018' (temp 2-component vector of float)
-0:116        dPdxCoarse (global 2-component vector of float)
-0:116          'inF0' (in 2-component vector of float)
-0:117      move second child to first child (temp 2-component vector of float)
-0:117        'r019' (temp 2-component vector of float)
-0:117        dPdxFine (global 2-component vector of float)
-0:117          'inF0' (in 2-component vector of float)
-0:118      move second child to first child (temp 2-component vector of float)
-0:118        'r020' (temp 2-component vector of float)
-0:118        dPdy (global 2-component vector of float)
-0:118          'inF0' (in 2-component vector of float)
-0:119      move second child to first child (temp 2-component vector of float)
-0:119        'r021' (temp 2-component vector of float)
-0:119        dPdyCoarse (global 2-component vector of float)
-0:119          'inF0' (in 2-component vector of float)
-0:120      move second child to first child (temp 2-component vector of float)
-0:120        'r022' (temp 2-component vector of float)
-0:120        dPdyFine (global 2-component vector of float)
-0:120          'inF0' (in 2-component vector of float)
-0:121      move second child to first child (temp 2-component vector of float)
-0:121        'r023' (temp 2-component vector of float)
-0:121        degrees (global 2-component vector of float)
-0:121          'inF0' (in 2-component vector of float)
-0:125      move second child to first child (temp float)
-0:125        'r026' (temp float)
-0:125        distance (global float)
-0:125          'inF0' (in 2-component vector of float)
-0:125          'inF1' (in 2-component vector of float)
-0:126      move second child to first child (temp float)
-0:126        'r027' (temp float)
-0:126        dot-product (global float)
-0:126          'inF0' (in 2-component vector of float)
-0:126          'inF1' (in 2-component vector of float)
-0:130      move second child to first child (temp 2-component vector of float)
-0:130        'r028' (temp 2-component vector of float)
-0:130        exp (global 2-component vector of float)
-0:130          'inF0' (in 2-component vector of float)
-0:131      move second child to first child (temp 2-component vector of float)
-0:131        'r029' (temp 2-component vector of float)
-0:131        exp2 (global 2-component vector of float)
-0:131          'inF0' (in 2-component vector of float)
-0:132      move second child to first child (temp 2-component vector of float)
-0:132        'r030' (temp 2-component vector of float)
-0:132        face-forward (global 2-component vector of float)
-0:132          'inF0' (in 2-component vector of float)
-0:132          'inF1' (in 2-component vector of float)
-0:132          'inF2' (in 2-component vector of float)
-0:133      move second child to first child (temp 2-component vector of uint)
-0:133        'r031' (temp 2-component vector of uint)
-0:?         findMSB (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:134      move second child to first child (temp 2-component vector of uint)
-0:134        'r032' (temp 2-component vector of uint)
-0:?         findLSB (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:135      move second child to first child (temp 2-component vector of float)
-0:135        'r033' (temp 2-component vector of float)
-0:135        Floor (global 2-component vector of float)
-0:135          'inF0' (in 2-component vector of float)
-0:137      move second child to first child (temp 2-component vector of float)
-0:137        'r035' (temp 2-component vector of float)
-0:137        mod (global 2-component vector of float)
-0:137          'inF0' (in 2-component vector of float)
-0:137          'inF1' (in 2-component vector of float)
-0:138      move second child to first child (temp 2-component vector of float)
-0:138        'r036' (temp 2-component vector of float)
-0:138        Fraction (global 2-component vector of float)
-0:138          'inF0' (in 2-component vector of float)
-0:139      move second child to first child (temp 2-component vector of float)
-0:139        'r037' (temp 2-component vector of float)
-0:139        frexp (global 2-component vector of float)
-0:139          'inF0' (in 2-component vector of float)
-0:139          'inF1' (in 2-component vector of float)
-0:140      move second child to first child (temp 2-component vector of float)
-0:140        'r038' (temp 2-component vector of float)
-0:140        fwidth (global 2-component vector of float)
-0:140          'inF0' (in 2-component vector of float)
-0:141      move second child to first child (temp 2-component vector of bool)
-0:141        'r039' (temp 2-component vector of bool)
-0:141        isinf (global 2-component vector of bool)
-0:141          'inF0' (in 2-component vector of float)
-0:142      move second child to first child (temp 2-component vector of bool)
-0:142        'r040' (temp 2-component vector of bool)
-0:142        isnan (global 2-component vector of bool)
-0:142          'inF0' (in 2-component vector of float)
-0:143      move second child to first child (temp 2-component vector of float)
-0:143        'r041' (temp 2-component vector of float)
-0:143        ldexp (global 2-component vector of float)
-0:143          'inF0' (in 2-component vector of float)
-0:143          'inF1' (in 2-component vector of float)
-0:144      move second child to first child (temp 2-component vector of float)
-0:144        'r039a' (temp 2-component vector of float)
-0:144        mix (global 2-component vector of float)
-0:144          'inF0' (in 2-component vector of float)
-0:144          'inF1' (in 2-component vector of float)
-0:144          'inF2' (in 2-component vector of float)
-0:145      move second child to first child (temp float)
-0:145        'r042' (temp float)
-0:145        length (global float)
-0:145          'inF0' (in 2-component vector of float)
-0:146      move second child to first child (temp 2-component vector of float)
-0:146        'r043' (temp 2-component vector of float)
-0:146        log (global 2-component vector of float)
-0:146          'inF0' (in 2-component vector of float)
-0:147      move second child to first child (temp 2-component vector of float)
-0:147        'r044' (temp 2-component vector of float)
-0:147        vector-scale (temp 2-component vector of float)
-0:147          log2 (temp 2-component vector of float)
-0:147            'inF0' (in 2-component vector of float)
-0:147          Constant:
-0:147            0.301030
-0:148      move second child to first child (temp 2-component vector of float)
-0:148        'r045' (temp 2-component vector of float)
-0:148        log2 (global 2-component vector of float)
-0:148          'inF0' (in 2-component vector of float)
-0:149      move second child to first child (temp 2-component vector of float)
-0:149        'r046' (temp 2-component vector of float)
-0:149        max (global 2-component vector of float)
-0:149          'inF0' (in 2-component vector of float)
-0:149          'inF1' (in 2-component vector of float)
-0:150      move second child to first child (temp 2-component vector of float)
-0:150        'r047' (temp 2-component vector of float)
-0:150        min (global 2-component vector of float)
-0:150          'inF0' (in 2-component vector of float)
-0:150          'inF1' (in 2-component vector of float)
-0:151      move second child to first child (temp 2-component vector of float)
-0:151        'r048' (temp 2-component vector of float)
-0:151        normalize (global 2-component vector of float)
-0:151          'inF0' (in 2-component vector of float)
-0:152      move second child to first child (temp 2-component vector of float)
-0:152        'r049' (temp 2-component vector of float)
-0:152        pow (global 2-component vector of float)
-0:152          'inF0' (in 2-component vector of float)
-0:152          'inF1' (in 2-component vector of float)
-0:153      move second child to first child (temp 2-component vector of float)
-0:153        'r050' (temp 2-component vector of float)
-0:153        radians (global 2-component vector of float)
-0:153          'inF0' (in 2-component vector of float)
-0:154      move second child to first child (temp 2-component vector of float)
-0:154        'r051' (temp 2-component vector of float)
-0:154        divide (temp 2-component vector of float)
-0:154          Constant:
-0:154            1.000000
-0:154          'inF0' (in 2-component vector of float)
-0:155      move second child to first child (temp 2-component vector of float)
-0:155        'r052' (temp 2-component vector of float)
-0:155        reflect (global 2-component vector of float)
-0:155          'inF0' (in 2-component vector of float)
-0:155          'inF1' (in 2-component vector of float)
-0:156      move second child to first child (temp 2-component vector of float)
-0:156        'r053' (temp 2-component vector of float)
-0:156        refract (global 2-component vector of float)
-0:156          'inF0' (in 2-component vector of float)
-0:156          'inF1' (in 2-component vector of float)
-0:156          Constant:
-0:156            2.000000
-0:157      move second child to first child (temp 2-component vector of uint)
-0:157        'r054' (temp 2-component vector of uint)
-0:?         bitFieldReverse (global 2-component vector of uint)
-0:?           Constant:
-0:?             1 (const uint)
-0:?             2 (const uint)
-0:158      move second child to first child (temp 2-component vector of float)
-0:158        'r055' (temp 2-component vector of float)
-0:158        roundEven (global 2-component vector of float)
-0:158          'inF0' (in 2-component vector of float)
-0:159      move second child to first child (temp 2-component vector of float)
-0:159        'r056' (temp 2-component vector of float)
-0:159        inverse sqrt (global 2-component vector of float)
-0:159          'inF0' (in 2-component vector of float)
-0:160      move second child to first child (temp 2-component vector of float)
-0:160        'r057' (temp 2-component vector of float)
-0:160        clamp (temp 2-component vector of float)
-0:160          'inF0' (in 2-component vector of float)
-0:160          Constant:
-0:160            0.000000
-0:160          Constant:
-0:160            1.000000
-0:161      move second child to first child (temp 2-component vector of float)
-0:161        'r058' (temp 2-component vector of float)
-0:161        Sign (global 2-component vector of float)
-0:161          'inF0' (in 2-component vector of float)
-0:162      move second child to first child (temp 2-component vector of float)
-0:162        'r059' (temp 2-component vector of float)
-0:162        sine (global 2-component vector of float)
-0:162          'inF0' (in 2-component vector of float)
+0:112      Sequence
+0:112        move second child to first child (temp 2-component vector of float)
+0:112          'r013' (temp 2-component vector of float)
+0:112          cosine (global 2-component vector of float)
+0:112            'inF0' (in 2-component vector of float)
+0:113      Sequence
+0:113        move second child to first child (temp 2-component vector of float)
+0:113          'r015' (temp 2-component vector of float)
+0:113          hyp. cosine (global 2-component vector of float)
+0:113            'inF0' (in 2-component vector of float)
+0:114      Sequence
+0:114        move second child to first child (temp 2-component vector of uint)
+0:114          'r016' (temp 2-component vector of uint)
+0:?           bitCount (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               3 (const uint)
+0:115      Sequence
+0:115        move second child to first child (temp 2-component vector of float)
+0:115          'r017' (temp 2-component vector of float)
+0:115          dPdx (global 2-component vector of float)
+0:115            'inF0' (in 2-component vector of float)
+0:116      Sequence
+0:116        move second child to first child (temp 2-component vector of float)
+0:116          'r018' (temp 2-component vector of float)
+0:116          dPdxCoarse (global 2-component vector of float)
+0:116            'inF0' (in 2-component vector of float)
+0:117      Sequence
+0:117        move second child to first child (temp 2-component vector of float)
+0:117          'r019' (temp 2-component vector of float)
+0:117          dPdxFine (global 2-component vector of float)
+0:117            'inF0' (in 2-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp 2-component vector of float)
+0:118          'r020' (temp 2-component vector of float)
+0:118          dPdy (global 2-component vector of float)
+0:118            'inF0' (in 2-component vector of float)
+0:119      Sequence
+0:119        move second child to first child (temp 2-component vector of float)
+0:119          'r021' (temp 2-component vector of float)
+0:119          dPdyCoarse (global 2-component vector of float)
+0:119            'inF0' (in 2-component vector of float)
+0:120      Sequence
+0:120        move second child to first child (temp 2-component vector of float)
+0:120          'r022' (temp 2-component vector of float)
+0:120          dPdyFine (global 2-component vector of float)
+0:120            'inF0' (in 2-component vector of float)
+0:121      Sequence
+0:121        move second child to first child (temp 2-component vector of float)
+0:121          'r023' (temp 2-component vector of float)
+0:121          degrees (global 2-component vector of float)
+0:121            'inF0' (in 2-component vector of float)
+0:125      Sequence
+0:125        move second child to first child (temp float)
+0:125          'r026' (temp float)
+0:125          distance (global float)
+0:125            'inF0' (in 2-component vector of float)
+0:125            'inF1' (in 2-component vector of float)
+0:126      Sequence
+0:126        move second child to first child (temp float)
+0:126          'r027' (temp float)
+0:126          dot-product (global float)
+0:126            'inF0' (in 2-component vector of float)
+0:126            'inF1' (in 2-component vector of float)
+0:130      Sequence
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'r028' (temp 2-component vector of float)
+0:130          exp (global 2-component vector of float)
+0:130            'inF0' (in 2-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp 2-component vector of float)
+0:131          'r029' (temp 2-component vector of float)
+0:131          exp2 (global 2-component vector of float)
+0:131            'inF0' (in 2-component vector of float)
+0:132      Sequence
+0:132        move second child to first child (temp 2-component vector of float)
+0:132          'r030' (temp 2-component vector of float)
+0:132          face-forward (global 2-component vector of float)
+0:132            'inF0' (in 2-component vector of float)
+0:132            'inF1' (in 2-component vector of float)
+0:132            'inF2' (in 2-component vector of float)
+0:133      Sequence
+0:133        move second child to first child (temp 2-component vector of uint)
+0:133          'r031' (temp 2-component vector of uint)
+0:?           findMSB (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:134      Sequence
+0:134        move second child to first child (temp 2-component vector of uint)
+0:134          'r032' (temp 2-component vector of uint)
+0:?           findLSB (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:135      Sequence
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'r033' (temp 2-component vector of float)
+0:135          Floor (global 2-component vector of float)
+0:135            'inF0' (in 2-component vector of float)
+0:137      Sequence
+0:137        move second child to first child (temp 2-component vector of float)
+0:137          'r035' (temp 2-component vector of float)
+0:137          mod (global 2-component vector of float)
+0:137            'inF0' (in 2-component vector of float)
+0:137            'inF1' (in 2-component vector of float)
+0:138      Sequence
+0:138        move second child to first child (temp 2-component vector of float)
+0:138          'r036' (temp 2-component vector of float)
+0:138          Fraction (global 2-component vector of float)
+0:138            'inF0' (in 2-component vector of float)
+0:139      Sequence
+0:139        move second child to first child (temp 2-component vector of float)
+0:139          'r037' (temp 2-component vector of float)
+0:139          frexp (global 2-component vector of float)
+0:139            'inF0' (in 2-component vector of float)
+0:139            'inF1' (in 2-component vector of float)
+0:140      Sequence
+0:140        move second child to first child (temp 2-component vector of float)
+0:140          'r038' (temp 2-component vector of float)
+0:140          fwidth (global 2-component vector of float)
+0:140            'inF0' (in 2-component vector of float)
+0:141      Sequence
+0:141        move second child to first child (temp 2-component vector of bool)
+0:141          'r039' (temp 2-component vector of bool)
+0:141          isinf (global 2-component vector of bool)
+0:141            'inF0' (in 2-component vector of float)
+0:142      Sequence
+0:142        move second child to first child (temp 2-component vector of bool)
+0:142          'r040' (temp 2-component vector of bool)
+0:142          isnan (global 2-component vector of bool)
+0:142            'inF0' (in 2-component vector of float)
+0:143      Sequence
+0:143        move second child to first child (temp 2-component vector of float)
+0:143          'r041' (temp 2-component vector of float)
+0:143          ldexp (global 2-component vector of float)
+0:143            'inF0' (in 2-component vector of float)
+0:143            'inF1' (in 2-component vector of float)
+0:144      Sequence
+0:144        move second child to first child (temp 2-component vector of float)
+0:144          'r039a' (temp 2-component vector of float)
+0:144          mix (global 2-component vector of float)
+0:144            'inF0' (in 2-component vector of float)
+0:144            'inF1' (in 2-component vector of float)
+0:144            'inF2' (in 2-component vector of float)
+0:145      Sequence
+0:145        move second child to first child (temp float)
+0:145          'r042' (temp float)
+0:145          length (global float)
+0:145            'inF0' (in 2-component vector of float)
+0:146      Sequence
+0:146        move second child to first child (temp 2-component vector of float)
+0:146          'r043' (temp 2-component vector of float)
+0:146          log (global 2-component vector of float)
+0:146            'inF0' (in 2-component vector of float)
+0:147      Sequence
+0:147        move second child to first child (temp 2-component vector of float)
+0:147          'r044' (temp 2-component vector of float)
+0:147          vector-scale (temp 2-component vector of float)
+0:147            log2 (temp 2-component vector of float)
+0:147              'inF0' (in 2-component vector of float)
+0:147            Constant:
+0:147              0.301030
+0:148      Sequence
+0:148        move second child to first child (temp 2-component vector of float)
+0:148          'r045' (temp 2-component vector of float)
+0:148          log2 (global 2-component vector of float)
+0:148            'inF0' (in 2-component vector of float)
+0:149      Sequence
+0:149        move second child to first child (temp 2-component vector of float)
+0:149          'r046' (temp 2-component vector of float)
+0:149          max (global 2-component vector of float)
+0:149            'inF0' (in 2-component vector of float)
+0:149            'inF1' (in 2-component vector of float)
+0:150      Sequence
+0:150        move second child to first child (temp 2-component vector of float)
+0:150          'r047' (temp 2-component vector of float)
+0:150          min (global 2-component vector of float)
+0:150            'inF0' (in 2-component vector of float)
+0:150            'inF1' (in 2-component vector of float)
+0:151      Sequence
+0:151        move second child to first child (temp 2-component vector of float)
+0:151          'r048' (temp 2-component vector of float)
+0:151          normalize (global 2-component vector of float)
+0:151            'inF0' (in 2-component vector of float)
+0:152      Sequence
+0:152        move second child to first child (temp 2-component vector of float)
+0:152          'r049' (temp 2-component vector of float)
+0:152          pow (global 2-component vector of float)
+0:152            'inF0' (in 2-component vector of float)
+0:152            'inF1' (in 2-component vector of float)
+0:153      Sequence
+0:153        move second child to first child (temp 2-component vector of float)
+0:153          'r050' (temp 2-component vector of float)
+0:153          radians (global 2-component vector of float)
+0:153            'inF0' (in 2-component vector of float)
+0:154      Sequence
+0:154        move second child to first child (temp 2-component vector of float)
+0:154          'r051' (temp 2-component vector of float)
+0:154          divide (temp 2-component vector of float)
+0:154            Constant:
+0:154              1.000000
+0:154            'inF0' (in 2-component vector of float)
+0:155      Sequence
+0:155        move second child to first child (temp 2-component vector of float)
+0:155          'r052' (temp 2-component vector of float)
+0:155          reflect (global 2-component vector of float)
+0:155            'inF0' (in 2-component vector of float)
+0:155            'inF1' (in 2-component vector of float)
+0:156      Sequence
+0:156        move second child to first child (temp 2-component vector of float)
+0:156          'r053' (temp 2-component vector of float)
+0:156          refract (global 2-component vector of float)
+0:156            'inF0' (in 2-component vector of float)
+0:156            'inF1' (in 2-component vector of float)
+0:156            Constant:
+0:156              2.000000
+0:157      Sequence
+0:157        move second child to first child (temp 2-component vector of uint)
+0:157          'r054' (temp 2-component vector of uint)
+0:?           bitFieldReverse (global 2-component vector of uint)
+0:?             Constant:
+0:?               1 (const uint)
+0:?               2 (const uint)
+0:158      Sequence
+0:158        move second child to first child (temp 2-component vector of float)
+0:158          'r055' (temp 2-component vector of float)
+0:158          roundEven (global 2-component vector of float)
+0:158            'inF0' (in 2-component vector of float)
+0:159      Sequence
+0:159        move second child to first child (temp 2-component vector of float)
+0:159          'r056' (temp 2-component vector of float)
+0:159          inverse sqrt (global 2-component vector of float)
+0:159            'inF0' (in 2-component vector of float)
+0:160      Sequence
+0:160        move second child to first child (temp 2-component vector of float)
+0:160          'r057' (temp 2-component vector of float)
+0:160          clamp (temp 2-component vector of float)
+0:160            'inF0' (in 2-component vector of float)
+0:160            Constant:
+0:160              0.000000
+0:160            Constant:
+0:160              1.000000
+0:161      Sequence
+0:161        move second child to first child (temp 2-component vector of float)
+0:161          'r058' (temp 2-component vector of float)
+0:161          Sign (global 2-component vector of float)
+0:161            'inF0' (in 2-component vector of float)
+0:162      Sequence
+0:162        move second child to first child (temp 2-component vector of float)
+0:162          'r059' (temp 2-component vector of float)
+0:162          sine (global 2-component vector of float)
+0:162            'inF0' (in 2-component vector of float)
 0:163      Sequence
 0:163        move second child to first child (temp 2-component vector of float)
 0:163          'inF1' (in 2-component vector of float)
@@ -579,37 +691,44 @@
 0:163          'inF2' (in 2-component vector of float)
 0:163          cosine (temp 2-component vector of float)
 0:163            'inF0' (in 2-component vector of float)
-0:164      move second child to first child (temp 2-component vector of float)
-0:164        'r060' (temp 2-component vector of float)
-0:164        hyp. sine (global 2-component vector of float)
-0:164          'inF0' (in 2-component vector of float)
-0:165      move second child to first child (temp 2-component vector of float)
-0:165        'r061' (temp 2-component vector of float)
-0:165        smoothstep (global 2-component vector of float)
-0:165          'inF0' (in 2-component vector of float)
-0:165          'inF1' (in 2-component vector of float)
-0:165          'inF2' (in 2-component vector of float)
-0:166      move second child to first child (temp 2-component vector of float)
-0:166        'r062' (temp 2-component vector of float)
-0:166        sqrt (global 2-component vector of float)
-0:166          'inF0' (in 2-component vector of float)
-0:167      move second child to first child (temp 2-component vector of float)
-0:167        'r063' (temp 2-component vector of float)
-0:167        step (global 2-component vector of float)
-0:167          'inF0' (in 2-component vector of float)
-0:167          'inF1' (in 2-component vector of float)
-0:168      move second child to first child (temp 2-component vector of float)
-0:168        'r064' (temp 2-component vector of float)
-0:168        tangent (global 2-component vector of float)
-0:168          'inF0' (in 2-component vector of float)
-0:169      move second child to first child (temp 2-component vector of float)
-0:169        'r065' (temp 2-component vector of float)
-0:169        hyp. tangent (global 2-component vector of float)
-0:169          'inF0' (in 2-component vector of float)
-0:171      move second child to first child (temp 2-component vector of float)
-0:171        'r066' (temp 2-component vector of float)
-0:171        trunc (global 2-component vector of float)
-0:171          'inF0' (in 2-component vector of float)
+0:164      Sequence
+0:164        move second child to first child (temp 2-component vector of float)
+0:164          'r060' (temp 2-component vector of float)
+0:164          hyp. sine (global 2-component vector of float)
+0:164            'inF0' (in 2-component vector of float)
+0:165      Sequence
+0:165        move second child to first child (temp 2-component vector of float)
+0:165          'r061' (temp 2-component vector of float)
+0:165          smoothstep (global 2-component vector of float)
+0:165            'inF0' (in 2-component vector of float)
+0:165            'inF1' (in 2-component vector of float)
+0:165            'inF2' (in 2-component vector of float)
+0:166      Sequence
+0:166        move second child to first child (temp 2-component vector of float)
+0:166          'r062' (temp 2-component vector of float)
+0:166          sqrt (global 2-component vector of float)
+0:166            'inF0' (in 2-component vector of float)
+0:167      Sequence
+0:167        move second child to first child (temp 2-component vector of float)
+0:167          'r063' (temp 2-component vector of float)
+0:167          step (global 2-component vector of float)
+0:167            'inF0' (in 2-component vector of float)
+0:167            'inF1' (in 2-component vector of float)
+0:168      Sequence
+0:168        move second child to first child (temp 2-component vector of float)
+0:168          'r064' (temp 2-component vector of float)
+0:168          tangent (global 2-component vector of float)
+0:168            'inF0' (in 2-component vector of float)
+0:169      Sequence
+0:169        move second child to first child (temp 2-component vector of float)
+0:169          'r065' (temp 2-component vector of float)
+0:169          hyp. tangent (global 2-component vector of float)
+0:169            'inF0' (in 2-component vector of float)
+0:171      Sequence
+0:171        move second child to first child (temp 2-component vector of float)
+0:171          'r066' (temp 2-component vector of float)
+0:171          trunc (global 2-component vector of float)
+0:171            'inF0' (in 2-component vector of float)
 0:174      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -622,57 +741,69 @@
 0:178      'inU0' (in 3-component vector of uint)
 0:178      'inU1' (in 3-component vector of uint)
 0:?     Sequence
-0:181      move second child to first child (temp bool)
-0:181        'r000' (temp bool)
-0:181        all (global bool)
-0:181          'inF0' (in 3-component vector of float)
-0:182      move second child to first child (temp 3-component vector of float)
-0:182        'r001' (temp 3-component vector of float)
-0:182        Absolute value (global 3-component vector of float)
-0:182          'inF0' (in 3-component vector of float)
-0:183      move second child to first child (temp 3-component vector of float)
-0:183        'r002' (temp 3-component vector of float)
-0:183        arc cosine (global 3-component vector of float)
-0:183          'inF0' (in 3-component vector of float)
-0:184      move second child to first child (temp bool)
-0:184        'r003' (temp bool)
-0:184        any (global bool)
-0:184          'inF0' (in 3-component vector of float)
-0:185      move second child to first child (temp 3-component vector of float)
-0:185        'r004' (temp 3-component vector of float)
-0:185        arc sine (global 3-component vector of float)
-0:185          'inF0' (in 3-component vector of float)
-0:186      move second child to first child (temp 3-component vector of int)
-0:186        'r005' (temp 3-component vector of int)
-0:186        floatBitsToInt (global 3-component vector of int)
-0:186          'inF0' (in 3-component vector of float)
-0:187      move second child to first child (temp 3-component vector of uint)
-0:187        'r006' (temp 3-component vector of uint)
-0:187        floatBitsToUint (global 3-component vector of uint)
-0:187          'inF0' (in 3-component vector of float)
-0:188      move second child to first child (temp 3-component vector of float)
-0:188        'r007' (temp 3-component vector of float)
-0:188        intBitsToFloat (global 3-component vector of float)
-0:188          'inU0' (in 3-component vector of uint)
-0:190      move second child to first child (temp 3-component vector of float)
-0:190        'r009' (temp 3-component vector of float)
-0:190        arc tangent (global 3-component vector of float)
-0:190          'inF0' (in 3-component vector of float)
-0:191      move second child to first child (temp 3-component vector of float)
-0:191        'r010' (temp 3-component vector of float)
-0:191        arc tangent (global 3-component vector of float)
-0:191          'inF0' (in 3-component vector of float)
-0:191          'inF1' (in 3-component vector of float)
-0:192      move second child to first child (temp 3-component vector of float)
-0:192        'r011' (temp 3-component vector of float)
-0:192        Ceiling (global 3-component vector of float)
-0:192          'inF0' (in 3-component vector of float)
-0:193      move second child to first child (temp 3-component vector of float)
-0:193        'r012' (temp 3-component vector of float)
-0:193        clamp (global 3-component vector of float)
-0:193          'inF0' (in 3-component vector of float)
-0:193          'inF1' (in 3-component vector of float)
-0:193          'inF2' (in 3-component vector of float)
+0:181      Sequence
+0:181        move second child to first child (temp bool)
+0:181          'r000' (temp bool)
+0:181          all (global bool)
+0:181            'inF0' (in 3-component vector of float)
+0:182      Sequence
+0:182        move second child to first child (temp 3-component vector of float)
+0:182          'r001' (temp 3-component vector of float)
+0:182          Absolute value (global 3-component vector of float)
+0:182            'inF0' (in 3-component vector of float)
+0:183      Sequence
+0:183        move second child to first child (temp 3-component vector of float)
+0:183          'r002' (temp 3-component vector of float)
+0:183          arc cosine (global 3-component vector of float)
+0:183            'inF0' (in 3-component vector of float)
+0:184      Sequence
+0:184        move second child to first child (temp bool)
+0:184          'r003' (temp bool)
+0:184          any (global bool)
+0:184            'inF0' (in 3-component vector of float)
+0:185      Sequence
+0:185        move second child to first child (temp 3-component vector of float)
+0:185          'r004' (temp 3-component vector of float)
+0:185          arc sine (global 3-component vector of float)
+0:185            'inF0' (in 3-component vector of float)
+0:186      Sequence
+0:186        move second child to first child (temp 3-component vector of int)
+0:186          'r005' (temp 3-component vector of int)
+0:186          floatBitsToInt (global 3-component vector of int)
+0:186            'inF0' (in 3-component vector of float)
+0:187      Sequence
+0:187        move second child to first child (temp 3-component vector of uint)
+0:187          'r006' (temp 3-component vector of uint)
+0:187          floatBitsToUint (global 3-component vector of uint)
+0:187            'inF0' (in 3-component vector of float)
+0:188      Sequence
+0:188        move second child to first child (temp 3-component vector of float)
+0:188          'r007' (temp 3-component vector of float)
+0:188          intBitsToFloat (global 3-component vector of float)
+0:188            'inU0' (in 3-component vector of uint)
+0:190      Sequence
+0:190        move second child to first child (temp 3-component vector of float)
+0:190          'r009' (temp 3-component vector of float)
+0:190          arc tangent (global 3-component vector of float)
+0:190            'inF0' (in 3-component vector of float)
+0:191      Sequence
+0:191        move second child to first child (temp 3-component vector of float)
+0:191          'r010' (temp 3-component vector of float)
+0:191          arc tangent (global 3-component vector of float)
+0:191            'inF0' (in 3-component vector of float)
+0:191            'inF1' (in 3-component vector of float)
+0:192      Sequence
+0:192        move second child to first child (temp 3-component vector of float)
+0:192          'r011' (temp 3-component vector of float)
+0:192          Ceiling (global 3-component vector of float)
+0:192            'inF0' (in 3-component vector of float)
+0:193      Sequence
+0:193        move second child to first child (temp 3-component vector of float)
+0:193          'r012' (temp 3-component vector of float)
+0:193          clamp (global 3-component vector of float)
+0:193            'inF0' (in 3-component vector of float)
+0:193            'inF1' (in 3-component vector of float)
+0:193            'inF2' (in 3-component vector of float)
 0:194      Test condition and select (temp void)
 0:194        Condition
 0:194        any (temp bool)
@@ -684,224 +815,269 @@
 0:194              0.000000
 0:194        true case
 0:194        Branch: Kill
-0:195      move second child to first child (temp 3-component vector of float)
-0:195        'r013' (temp 3-component vector of float)
-0:195        cosine (global 3-component vector of float)
-0:195          'inF0' (in 3-component vector of float)
-0:196      move second child to first child (temp 3-component vector of float)
-0:196        'r014' (temp 3-component vector of float)
-0:196        hyp. cosine (global 3-component vector of float)
-0:196          'inF0' (in 3-component vector of float)
-0:197      move second child to first child (temp 3-component vector of uint)
-0:197        'r015' (temp 3-component vector of uint)
-0:?         bitCount (global 3-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             3 (const uint)
-0:?             5 (const uint)
-0:198      move second child to first child (temp 3-component vector of float)
-0:198        'r016' (temp 3-component vector of float)
-0:198        cross-product (global 3-component vector of float)
-0:198          'inF0' (in 3-component vector of float)
-0:198          'inF1' (in 3-component vector of float)
-0:199      move second child to first child (temp 3-component vector of float)
-0:199        'r017' (temp 3-component vector of float)
-0:199        dPdx (global 3-component vector of float)
-0:199          'inF0' (in 3-component vector of float)
-0:200      move second child to first child (temp 3-component vector of float)
-0:200        'r018' (temp 3-component vector of float)
-0:200        dPdxCoarse (global 3-component vector of float)
-0:200          'inF0' (in 3-component vector of float)
-0:201      move second child to first child (temp 3-component vector of float)
-0:201        'r019' (temp 3-component vector of float)
-0:201        dPdxFine (global 3-component vector of float)
-0:201          'inF0' (in 3-component vector of float)
-0:202      move second child to first child (temp 3-component vector of float)
-0:202        'r020' (temp 3-component vector of float)
-0:202        dPdy (global 3-component vector of float)
-0:202          'inF0' (in 3-component vector of float)
-0:203      move second child to first child (temp 3-component vector of float)
-0:203        'r021' (temp 3-component vector of float)
-0:203        dPdyCoarse (global 3-component vector of float)
-0:203          'inF0' (in 3-component vector of float)
-0:204      move second child to first child (temp 3-component vector of float)
-0:204        'r022' (temp 3-component vector of float)
-0:204        dPdyFine (global 3-component vector of float)
-0:204          'inF0' (in 3-component vector of float)
-0:205      move second child to first child (temp 3-component vector of float)
-0:205        'r023' (temp 3-component vector of float)
-0:205        degrees (global 3-component vector of float)
-0:205          'inF0' (in 3-component vector of float)
-0:206      move second child to first child (temp float)
-0:206        'r024' (temp float)
-0:206        distance (global float)
-0:206          'inF0' (in 3-component vector of float)
-0:206          'inF1' (in 3-component vector of float)
-0:207      move second child to first child (temp float)
-0:207        'r025' (temp float)
-0:207        dot-product (global float)
-0:207          'inF0' (in 3-component vector of float)
-0:207          'inF1' (in 3-component vector of float)
-0:211      move second child to first child (temp 3-component vector of float)
-0:211        'r029' (temp 3-component vector of float)
-0:211        exp (global 3-component vector of float)
-0:211          'inF0' (in 3-component vector of float)
-0:212      move second child to first child (temp 3-component vector of float)
-0:212        'r030' (temp 3-component vector of float)
-0:212        exp2 (global 3-component vector of float)
-0:212          'inF0' (in 3-component vector of float)
-0:213      move second child to first child (temp 3-component vector of float)
-0:213        'r031' (temp 3-component vector of float)
-0:213        face-forward (global 3-component vector of float)
-0:213          'inF0' (in 3-component vector of float)
-0:213          'inF1' (in 3-component vector of float)
-0:213          'inF2' (in 3-component vector of float)
-0:214      move second child to first child (temp 3-component vector of uint)
-0:214        'r032' (temp 3-component vector of uint)
-0:?         findMSB (global 3-component vector of uint)
-0:?           Constant:
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:?             4 (const uint)
-0:215      move second child to first child (temp 3-component vector of uint)
-0:215        'r033' (temp 3-component vector of uint)
-0:?         findLSB (global 3-component vector of uint)
-0:?           Constant:
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:?             4 (const uint)
-0:216      move second child to first child (temp 3-component vector of float)
-0:216        'r034' (temp 3-component vector of float)
-0:216        Floor (global 3-component vector of float)
-0:216          'inF0' (in 3-component vector of float)
-0:218      move second child to first child (temp 3-component vector of float)
-0:218        'r036' (temp 3-component vector of float)
-0:218        mod (global 3-component vector of float)
-0:218          'inF0' (in 3-component vector of float)
-0:218          'inF1' (in 3-component vector of float)
-0:219      move second child to first child (temp 3-component vector of float)
-0:219        'r037' (temp 3-component vector of float)
-0:219        Fraction (global 3-component vector of float)
-0:219          'inF0' (in 3-component vector of float)
-0:220      move second child to first child (temp 3-component vector of float)
-0:220        'r038' (temp 3-component vector of float)
-0:220        frexp (global 3-component vector of float)
-0:220          'inF0' (in 3-component vector of float)
-0:220          'inF1' (in 3-component vector of float)
-0:221      move second child to first child (temp 3-component vector of float)
-0:221        'r039' (temp 3-component vector of float)
-0:221        fwidth (global 3-component vector of float)
-0:221          'inF0' (in 3-component vector of float)
-0:222      move second child to first child (temp 3-component vector of bool)
-0:222        'r040' (temp 3-component vector of bool)
-0:222        isinf (global 3-component vector of bool)
-0:222          'inF0' (in 3-component vector of float)
-0:223      move second child to first child (temp 3-component vector of bool)
-0:223        'r041' (temp 3-component vector of bool)
-0:223        isnan (global 3-component vector of bool)
-0:223          'inF0' (in 3-component vector of float)
-0:224      move second child to first child (temp 3-component vector of float)
-0:224        'r042' (temp 3-component vector of float)
-0:224        ldexp (global 3-component vector of float)
-0:224          'inF0' (in 3-component vector of float)
-0:224          'inF1' (in 3-component vector of float)
-0:225      move second child to first child (temp 3-component vector of float)
-0:225        'r039a' (temp 3-component vector of float)
-0:225        mix (global 3-component vector of float)
-0:225          'inF0' (in 3-component vector of float)
-0:225          'inF1' (in 3-component vector of float)
-0:225          'inF2' (in 3-component vector of float)
-0:226      move second child to first child (temp float)
-0:226        'r043' (temp float)
-0:226        length (global float)
-0:226          'inF0' (in 3-component vector of float)
-0:227      move second child to first child (temp 3-component vector of float)
-0:227        'r044' (temp 3-component vector of float)
-0:227        log (global 3-component vector of float)
-0:227          'inF0' (in 3-component vector of float)
-0:228      move second child to first child (temp 3-component vector of float)
-0:228        'r045' (temp 3-component vector of float)
-0:228        vector-scale (temp 3-component vector of float)
-0:228          log2 (temp 3-component vector of float)
-0:228            'inF0' (in 3-component vector of float)
-0:228          Constant:
-0:228            0.301030
-0:229      move second child to first child (temp 3-component vector of float)
-0:229        'r046' (temp 3-component vector of float)
-0:229        log2 (global 3-component vector of float)
-0:229          'inF0' (in 3-component vector of float)
-0:230      move second child to first child (temp 3-component vector of float)
-0:230        'r047' (temp 3-component vector of float)
-0:230        max (global 3-component vector of float)
-0:230          'inF0' (in 3-component vector of float)
-0:230          'inF1' (in 3-component vector of float)
-0:231      move second child to first child (temp 3-component vector of float)
-0:231        'r048' (temp 3-component vector of float)
-0:231        min (global 3-component vector of float)
-0:231          'inF0' (in 3-component vector of float)
-0:231          'inF1' (in 3-component vector of float)
-0:232      move second child to first child (temp 3-component vector of float)
-0:232        'r049' (temp 3-component vector of float)
-0:232        normalize (global 3-component vector of float)
-0:232          'inF0' (in 3-component vector of float)
-0:233      move second child to first child (temp 3-component vector of float)
-0:233        'r050' (temp 3-component vector of float)
-0:233        pow (global 3-component vector of float)
-0:233          'inF0' (in 3-component vector of float)
-0:233          'inF1' (in 3-component vector of float)
-0:234      move second child to first child (temp 3-component vector of float)
-0:234        'r051' (temp 3-component vector of float)
-0:234        radians (global 3-component vector of float)
-0:234          'inF0' (in 3-component vector of float)
-0:235      move second child to first child (temp 3-component vector of float)
-0:235        'r052' (temp 3-component vector of float)
-0:235        divide (temp 3-component vector of float)
-0:235          Constant:
-0:235            1.000000
-0:235          'inF0' (in 3-component vector of float)
-0:236      move second child to first child (temp 3-component vector of float)
-0:236        'r053' (temp 3-component vector of float)
-0:236        reflect (global 3-component vector of float)
-0:236          'inF0' (in 3-component vector of float)
-0:236          'inF1' (in 3-component vector of float)
-0:237      move second child to first child (temp 3-component vector of float)
-0:237        'r054' (temp 3-component vector of float)
-0:237        refract (global 3-component vector of float)
-0:237          'inF0' (in 3-component vector of float)
-0:237          'inF1' (in 3-component vector of float)
-0:237          Constant:
-0:237            2.000000
-0:238      move second child to first child (temp 3-component vector of uint)
-0:238        'r055' (temp 3-component vector of uint)
-0:?         bitFieldReverse (global 3-component vector of uint)
-0:?           Constant:
-0:?             1 (const uint)
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:239      move second child to first child (temp 3-component vector of float)
-0:239        'r056' (temp 3-component vector of float)
-0:239        roundEven (global 3-component vector of float)
-0:239          'inF0' (in 3-component vector of float)
-0:240      move second child to first child (temp 3-component vector of float)
-0:240        'r057' (temp 3-component vector of float)
-0:240        inverse sqrt (global 3-component vector of float)
-0:240          'inF0' (in 3-component vector of float)
-0:241      move second child to first child (temp 3-component vector of float)
-0:241        'r058' (temp 3-component vector of float)
-0:241        clamp (temp 3-component vector of float)
-0:241          'inF0' (in 3-component vector of float)
-0:241          Constant:
-0:241            0.000000
-0:241          Constant:
-0:241            1.000000
-0:242      move second child to first child (temp 3-component vector of float)
-0:242        'r059' (temp 3-component vector of float)
-0:242        Sign (global 3-component vector of float)
-0:242          'inF0' (in 3-component vector of float)
-0:243      move second child to first child (temp 3-component vector of float)
-0:243        'r060' (temp 3-component vector of float)
-0:243        sine (global 3-component vector of float)
-0:243          'inF0' (in 3-component vector of float)
+0:195      Sequence
+0:195        move second child to first child (temp 3-component vector of float)
+0:195          'r013' (temp 3-component vector of float)
+0:195          cosine (global 3-component vector of float)
+0:195            'inF0' (in 3-component vector of float)
+0:196      Sequence
+0:196        move second child to first child (temp 3-component vector of float)
+0:196          'r014' (temp 3-component vector of float)
+0:196          hyp. cosine (global 3-component vector of float)
+0:196            'inF0' (in 3-component vector of float)
+0:197      Sequence
+0:197        move second child to first child (temp 3-component vector of uint)
+0:197          'r015' (temp 3-component vector of uint)
+0:?           bitCount (global 3-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               3 (const uint)
+0:?               5 (const uint)
+0:198      Sequence
+0:198        move second child to first child (temp 3-component vector of float)
+0:198          'r016' (temp 3-component vector of float)
+0:198          cross-product (global 3-component vector of float)
+0:198            'inF0' (in 3-component vector of float)
+0:198            'inF1' (in 3-component vector of float)
+0:199      Sequence
+0:199        move second child to first child (temp 3-component vector of float)
+0:199          'r017' (temp 3-component vector of float)
+0:199          dPdx (global 3-component vector of float)
+0:199            'inF0' (in 3-component vector of float)
+0:200      Sequence
+0:200        move second child to first child (temp 3-component vector of float)
+0:200          'r018' (temp 3-component vector of float)
+0:200          dPdxCoarse (global 3-component vector of float)
+0:200            'inF0' (in 3-component vector of float)
+0:201      Sequence
+0:201        move second child to first child (temp 3-component vector of float)
+0:201          'r019' (temp 3-component vector of float)
+0:201          dPdxFine (global 3-component vector of float)
+0:201            'inF0' (in 3-component vector of float)
+0:202      Sequence
+0:202        move second child to first child (temp 3-component vector of float)
+0:202          'r020' (temp 3-component vector of float)
+0:202          dPdy (global 3-component vector of float)
+0:202            'inF0' (in 3-component vector of float)
+0:203      Sequence
+0:203        move second child to first child (temp 3-component vector of float)
+0:203          'r021' (temp 3-component vector of float)
+0:203          dPdyCoarse (global 3-component vector of float)
+0:203            'inF0' (in 3-component vector of float)
+0:204      Sequence
+0:204        move second child to first child (temp 3-component vector of float)
+0:204          'r022' (temp 3-component vector of float)
+0:204          dPdyFine (global 3-component vector of float)
+0:204            'inF0' (in 3-component vector of float)
+0:205      Sequence
+0:205        move second child to first child (temp 3-component vector of float)
+0:205          'r023' (temp 3-component vector of float)
+0:205          degrees (global 3-component vector of float)
+0:205            'inF0' (in 3-component vector of float)
+0:206      Sequence
+0:206        move second child to first child (temp float)
+0:206          'r024' (temp float)
+0:206          distance (global float)
+0:206            'inF0' (in 3-component vector of float)
+0:206            'inF1' (in 3-component vector of float)
+0:207      Sequence
+0:207        move second child to first child (temp float)
+0:207          'r025' (temp float)
+0:207          dot-product (global float)
+0:207            'inF0' (in 3-component vector of float)
+0:207            'inF1' (in 3-component vector of float)
+0:211      Sequence
+0:211        move second child to first child (temp 3-component vector of float)
+0:211          'r029' (temp 3-component vector of float)
+0:211          exp (global 3-component vector of float)
+0:211            'inF0' (in 3-component vector of float)
+0:212      Sequence
+0:212        move second child to first child (temp 3-component vector of float)
+0:212          'r030' (temp 3-component vector of float)
+0:212          exp2 (global 3-component vector of float)
+0:212            'inF0' (in 3-component vector of float)
+0:213      Sequence
+0:213        move second child to first child (temp 3-component vector of float)
+0:213          'r031' (temp 3-component vector of float)
+0:213          face-forward (global 3-component vector of float)
+0:213            'inF0' (in 3-component vector of float)
+0:213            'inF1' (in 3-component vector of float)
+0:213            'inF2' (in 3-component vector of float)
+0:214      Sequence
+0:214        move second child to first child (temp 3-component vector of uint)
+0:214          'r032' (temp 3-component vector of uint)
+0:?           findMSB (global 3-component vector of uint)
+0:?             Constant:
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:?               4 (const uint)
+0:215      Sequence
+0:215        move second child to first child (temp 3-component vector of uint)
+0:215          'r033' (temp 3-component vector of uint)
+0:?           findLSB (global 3-component vector of uint)
+0:?             Constant:
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:?               4 (const uint)
+0:216      Sequence
+0:216        move second child to first child (temp 3-component vector of float)
+0:216          'r034' (temp 3-component vector of float)
+0:216          Floor (global 3-component vector of float)
+0:216            'inF0' (in 3-component vector of float)
+0:218      Sequence
+0:218        move second child to first child (temp 3-component vector of float)
+0:218          'r036' (temp 3-component vector of float)
+0:218          mod (global 3-component vector of float)
+0:218            'inF0' (in 3-component vector of float)
+0:218            'inF1' (in 3-component vector of float)
+0:219      Sequence
+0:219        move second child to first child (temp 3-component vector of float)
+0:219          'r037' (temp 3-component vector of float)
+0:219          Fraction (global 3-component vector of float)
+0:219            'inF0' (in 3-component vector of float)
+0:220      Sequence
+0:220        move second child to first child (temp 3-component vector of float)
+0:220          'r038' (temp 3-component vector of float)
+0:220          frexp (global 3-component vector of float)
+0:220            'inF0' (in 3-component vector of float)
+0:220            'inF1' (in 3-component vector of float)
+0:221      Sequence
+0:221        move second child to first child (temp 3-component vector of float)
+0:221          'r039' (temp 3-component vector of float)
+0:221          fwidth (global 3-component vector of float)
+0:221            'inF0' (in 3-component vector of float)
+0:222      Sequence
+0:222        move second child to first child (temp 3-component vector of bool)
+0:222          'r040' (temp 3-component vector of bool)
+0:222          isinf (global 3-component vector of bool)
+0:222            'inF0' (in 3-component vector of float)
+0:223      Sequence
+0:223        move second child to first child (temp 3-component vector of bool)
+0:223          'r041' (temp 3-component vector of bool)
+0:223          isnan (global 3-component vector of bool)
+0:223            'inF0' (in 3-component vector of float)
+0:224      Sequence
+0:224        move second child to first child (temp 3-component vector of float)
+0:224          'r042' (temp 3-component vector of float)
+0:224          ldexp (global 3-component vector of float)
+0:224            'inF0' (in 3-component vector of float)
+0:224            'inF1' (in 3-component vector of float)
+0:225      Sequence
+0:225        move second child to first child (temp 3-component vector of float)
+0:225          'r039a' (temp 3-component vector of float)
+0:225          mix (global 3-component vector of float)
+0:225            'inF0' (in 3-component vector of float)
+0:225            'inF1' (in 3-component vector of float)
+0:225            'inF2' (in 3-component vector of float)
+0:226      Sequence
+0:226        move second child to first child (temp float)
+0:226          'r043' (temp float)
+0:226          length (global float)
+0:226            'inF0' (in 3-component vector of float)
+0:227      Sequence
+0:227        move second child to first child (temp 3-component vector of float)
+0:227          'r044' (temp 3-component vector of float)
+0:227          log (global 3-component vector of float)
+0:227            'inF0' (in 3-component vector of float)
+0:228      Sequence
+0:228        move second child to first child (temp 3-component vector of float)
+0:228          'r045' (temp 3-component vector of float)
+0:228          vector-scale (temp 3-component vector of float)
+0:228            log2 (temp 3-component vector of float)
+0:228              'inF0' (in 3-component vector of float)
+0:228            Constant:
+0:228              0.301030
+0:229      Sequence
+0:229        move second child to first child (temp 3-component vector of float)
+0:229          'r046' (temp 3-component vector of float)
+0:229          log2 (global 3-component vector of float)
+0:229            'inF0' (in 3-component vector of float)
+0:230      Sequence
+0:230        move second child to first child (temp 3-component vector of float)
+0:230          'r047' (temp 3-component vector of float)
+0:230          max (global 3-component vector of float)
+0:230            'inF0' (in 3-component vector of float)
+0:230            'inF1' (in 3-component vector of float)
+0:231      Sequence
+0:231        move second child to first child (temp 3-component vector of float)
+0:231          'r048' (temp 3-component vector of float)
+0:231          min (global 3-component vector of float)
+0:231            'inF0' (in 3-component vector of float)
+0:231            'inF1' (in 3-component vector of float)
+0:232      Sequence
+0:232        move second child to first child (temp 3-component vector of float)
+0:232          'r049' (temp 3-component vector of float)
+0:232          normalize (global 3-component vector of float)
+0:232            'inF0' (in 3-component vector of float)
+0:233      Sequence
+0:233        move second child to first child (temp 3-component vector of float)
+0:233          'r050' (temp 3-component vector of float)
+0:233          pow (global 3-component vector of float)
+0:233            'inF0' (in 3-component vector of float)
+0:233            'inF1' (in 3-component vector of float)
+0:234      Sequence
+0:234        move second child to first child (temp 3-component vector of float)
+0:234          'r051' (temp 3-component vector of float)
+0:234          radians (global 3-component vector of float)
+0:234            'inF0' (in 3-component vector of float)
+0:235      Sequence
+0:235        move second child to first child (temp 3-component vector of float)
+0:235          'r052' (temp 3-component vector of float)
+0:235          divide (temp 3-component vector of float)
+0:235            Constant:
+0:235              1.000000
+0:235            'inF0' (in 3-component vector of float)
+0:236      Sequence
+0:236        move second child to first child (temp 3-component vector of float)
+0:236          'r053' (temp 3-component vector of float)
+0:236          reflect (global 3-component vector of float)
+0:236            'inF0' (in 3-component vector of float)
+0:236            'inF1' (in 3-component vector of float)
+0:237      Sequence
+0:237        move second child to first child (temp 3-component vector of float)
+0:237          'r054' (temp 3-component vector of float)
+0:237          refract (global 3-component vector of float)
+0:237            'inF0' (in 3-component vector of float)
+0:237            'inF1' (in 3-component vector of float)
+0:237            Constant:
+0:237              2.000000
+0:238      Sequence
+0:238        move second child to first child (temp 3-component vector of uint)
+0:238          'r055' (temp 3-component vector of uint)
+0:?           bitFieldReverse (global 3-component vector of uint)
+0:?             Constant:
+0:?               1 (const uint)
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:239      Sequence
+0:239        move second child to first child (temp 3-component vector of float)
+0:239          'r056' (temp 3-component vector of float)
+0:239          roundEven (global 3-component vector of float)
+0:239            'inF0' (in 3-component vector of float)
+0:240      Sequence
+0:240        move second child to first child (temp 3-component vector of float)
+0:240          'r057' (temp 3-component vector of float)
+0:240          inverse sqrt (global 3-component vector of float)
+0:240            'inF0' (in 3-component vector of float)
+0:241      Sequence
+0:241        move second child to first child (temp 3-component vector of float)
+0:241          'r058' (temp 3-component vector of float)
+0:241          clamp (temp 3-component vector of float)
+0:241            'inF0' (in 3-component vector of float)
+0:241            Constant:
+0:241              0.000000
+0:241            Constant:
+0:241              1.000000
+0:242      Sequence
+0:242        move second child to first child (temp 3-component vector of float)
+0:242          'r059' (temp 3-component vector of float)
+0:242          Sign (global 3-component vector of float)
+0:242            'inF0' (in 3-component vector of float)
+0:243      Sequence
+0:243        move second child to first child (temp 3-component vector of float)
+0:243          'r060' (temp 3-component vector of float)
+0:243          sine (global 3-component vector of float)
+0:243            'inF0' (in 3-component vector of float)
 0:244      Sequence
 0:244        move second child to first child (temp 3-component vector of float)
 0:244          'inF1' (in 3-component vector of float)
@@ -911,37 +1087,44 @@
 0:244          'inF2' (in 3-component vector of float)
 0:244          cosine (temp 3-component vector of float)
 0:244            'inF0' (in 3-component vector of float)
-0:245      move second child to first child (temp 3-component vector of float)
-0:245        'r061' (temp 3-component vector of float)
-0:245        hyp. sine (global 3-component vector of float)
-0:245          'inF0' (in 3-component vector of float)
-0:246      move second child to first child (temp 3-component vector of float)
-0:246        'r062' (temp 3-component vector of float)
-0:246        smoothstep (global 3-component vector of float)
-0:246          'inF0' (in 3-component vector of float)
-0:246          'inF1' (in 3-component vector of float)
-0:246          'inF2' (in 3-component vector of float)
-0:247      move second child to first child (temp 3-component vector of float)
-0:247        'r063' (temp 3-component vector of float)
-0:247        sqrt (global 3-component vector of float)
-0:247          'inF0' (in 3-component vector of float)
-0:248      move second child to first child (temp 3-component vector of float)
-0:248        'r064' (temp 3-component vector of float)
-0:248        step (global 3-component vector of float)
-0:248          'inF0' (in 3-component vector of float)
-0:248          'inF1' (in 3-component vector of float)
-0:249      move second child to first child (temp 3-component vector of float)
-0:249        'r065' (temp 3-component vector of float)
-0:249        tangent (global 3-component vector of float)
-0:249          'inF0' (in 3-component vector of float)
-0:250      move second child to first child (temp 3-component vector of float)
-0:250        'r066' (temp 3-component vector of float)
-0:250        hyp. tangent (global 3-component vector of float)
-0:250          'inF0' (in 3-component vector of float)
-0:252      move second child to first child (temp 3-component vector of float)
-0:252        'r067' (temp 3-component vector of float)
-0:252        trunc (global 3-component vector of float)
-0:252          'inF0' (in 3-component vector of float)
+0:245      Sequence
+0:245        move second child to first child (temp 3-component vector of float)
+0:245          'r061' (temp 3-component vector of float)
+0:245          hyp. sine (global 3-component vector of float)
+0:245            'inF0' (in 3-component vector of float)
+0:246      Sequence
+0:246        move second child to first child (temp 3-component vector of float)
+0:246          'r062' (temp 3-component vector of float)
+0:246          smoothstep (global 3-component vector of float)
+0:246            'inF0' (in 3-component vector of float)
+0:246            'inF1' (in 3-component vector of float)
+0:246            'inF2' (in 3-component vector of float)
+0:247      Sequence
+0:247        move second child to first child (temp 3-component vector of float)
+0:247          'r063' (temp 3-component vector of float)
+0:247          sqrt (global 3-component vector of float)
+0:247            'inF0' (in 3-component vector of float)
+0:248      Sequence
+0:248        move second child to first child (temp 3-component vector of float)
+0:248          'r064' (temp 3-component vector of float)
+0:248          step (global 3-component vector of float)
+0:248            'inF0' (in 3-component vector of float)
+0:248            'inF1' (in 3-component vector of float)
+0:249      Sequence
+0:249        move second child to first child (temp 3-component vector of float)
+0:249          'r065' (temp 3-component vector of float)
+0:249          tangent (global 3-component vector of float)
+0:249            'inF0' (in 3-component vector of float)
+0:250      Sequence
+0:250        move second child to first child (temp 3-component vector of float)
+0:250          'r066' (temp 3-component vector of float)
+0:250          hyp. tangent (global 3-component vector of float)
+0:250            'inF0' (in 3-component vector of float)
+0:252      Sequence
+0:252        move second child to first child (temp 3-component vector of float)
+0:252          'r067' (temp 3-component vector of float)
+0:252          trunc (global 3-component vector of float)
+0:252            'inF0' (in 3-component vector of float)
 0:255      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -955,57 +1138,69 @@
 0:259      'inU0' (in 4-component vector of uint)
 0:259      'inU1' (in 4-component vector of uint)
 0:?     Sequence
-0:262      move second child to first child (temp bool)
-0:262        'r000' (temp bool)
-0:262        all (global bool)
-0:262          'inF0' (in 4-component vector of float)
-0:263      move second child to first child (temp 4-component vector of float)
-0:263        'r001' (temp 4-component vector of float)
-0:263        Absolute value (global 4-component vector of float)
-0:263          'inF0' (in 4-component vector of float)
-0:264      move second child to first child (temp 4-component vector of float)
-0:264        'r002' (temp 4-component vector of float)
-0:264        arc cosine (global 4-component vector of float)
-0:264          'inF0' (in 4-component vector of float)
-0:265      move second child to first child (temp bool)
-0:265        'r003' (temp bool)
-0:265        any (global bool)
-0:265          'inF0' (in 4-component vector of float)
-0:266      move second child to first child (temp 4-component vector of float)
-0:266        'r004' (temp 4-component vector of float)
-0:266        arc sine (global 4-component vector of float)
-0:266          'inF0' (in 4-component vector of float)
-0:267      move second child to first child (temp 4-component vector of int)
-0:267        'r005' (temp 4-component vector of int)
-0:267        floatBitsToInt (global 4-component vector of int)
-0:267          'inF0' (in 4-component vector of float)
-0:268      move second child to first child (temp 4-component vector of uint)
-0:268        'r006' (temp 4-component vector of uint)
-0:268        floatBitsToUint (global 4-component vector of uint)
-0:268          'inF0' (in 4-component vector of float)
-0:269      move second child to first child (temp 4-component vector of float)
-0:269        'r007' (temp 4-component vector of float)
-0:269        intBitsToFloat (global 4-component vector of float)
-0:269          'inU0' (in 4-component vector of uint)
-0:271      move second child to first child (temp 4-component vector of float)
-0:271        'r009' (temp 4-component vector of float)
-0:271        arc tangent (global 4-component vector of float)
-0:271          'inF0' (in 4-component vector of float)
-0:272      move second child to first child (temp 4-component vector of float)
-0:272        'r010' (temp 4-component vector of float)
-0:272        arc tangent (global 4-component vector of float)
-0:272          'inF0' (in 4-component vector of float)
-0:272          'inF1' (in 4-component vector of float)
-0:273      move second child to first child (temp 4-component vector of float)
-0:273        'r011' (temp 4-component vector of float)
-0:273        Ceiling (global 4-component vector of float)
-0:273          'inF0' (in 4-component vector of float)
-0:274      move second child to first child (temp 4-component vector of float)
-0:274        'r012' (temp 4-component vector of float)
-0:274        clamp (global 4-component vector of float)
-0:274          'inF0' (in 4-component vector of float)
-0:274          'inF1' (in 4-component vector of float)
-0:274          'inF2' (in 4-component vector of float)
+0:262      Sequence
+0:262        move second child to first child (temp bool)
+0:262          'r000' (temp bool)
+0:262          all (global bool)
+0:262            'inF0' (in 4-component vector of float)
+0:263      Sequence
+0:263        move second child to first child (temp 4-component vector of float)
+0:263          'r001' (temp 4-component vector of float)
+0:263          Absolute value (global 4-component vector of float)
+0:263            'inF0' (in 4-component vector of float)
+0:264      Sequence
+0:264        move second child to first child (temp 4-component vector of float)
+0:264          'r002' (temp 4-component vector of float)
+0:264          arc cosine (global 4-component vector of float)
+0:264            'inF0' (in 4-component vector of float)
+0:265      Sequence
+0:265        move second child to first child (temp bool)
+0:265          'r003' (temp bool)
+0:265          any (global bool)
+0:265            'inF0' (in 4-component vector of float)
+0:266      Sequence
+0:266        move second child to first child (temp 4-component vector of float)
+0:266          'r004' (temp 4-component vector of float)
+0:266          arc sine (global 4-component vector of float)
+0:266            'inF0' (in 4-component vector of float)
+0:267      Sequence
+0:267        move second child to first child (temp 4-component vector of int)
+0:267          'r005' (temp 4-component vector of int)
+0:267          floatBitsToInt (global 4-component vector of int)
+0:267            'inF0' (in 4-component vector of float)
+0:268      Sequence
+0:268        move second child to first child (temp 4-component vector of uint)
+0:268          'r006' (temp 4-component vector of uint)
+0:268          floatBitsToUint (global 4-component vector of uint)
+0:268            'inF0' (in 4-component vector of float)
+0:269      Sequence
+0:269        move second child to first child (temp 4-component vector of float)
+0:269          'r007' (temp 4-component vector of float)
+0:269          intBitsToFloat (global 4-component vector of float)
+0:269            'inU0' (in 4-component vector of uint)
+0:271      Sequence
+0:271        move second child to first child (temp 4-component vector of float)
+0:271          'r009' (temp 4-component vector of float)
+0:271          arc tangent (global 4-component vector of float)
+0:271            'inF0' (in 4-component vector of float)
+0:272      Sequence
+0:272        move second child to first child (temp 4-component vector of float)
+0:272          'r010' (temp 4-component vector of float)
+0:272          arc tangent (global 4-component vector of float)
+0:272            'inF0' (in 4-component vector of float)
+0:272            'inF1' (in 4-component vector of float)
+0:273      Sequence
+0:273        move second child to first child (temp 4-component vector of float)
+0:273          'r011' (temp 4-component vector of float)
+0:273          Ceiling (global 4-component vector of float)
+0:273            'inF0' (in 4-component vector of float)
+0:274      Sequence
+0:274        move second child to first child (temp 4-component vector of float)
+0:274          'r012' (temp 4-component vector of float)
+0:274          clamp (global 4-component vector of float)
+0:274            'inF0' (in 4-component vector of float)
+0:274            'inF1' (in 4-component vector of float)
+0:274            'inF2' (in 4-component vector of float)
 0:275      Test condition and select (temp void)
 0:275        Condition
 0:275        any (temp bool)
@@ -1018,245 +1213,290 @@
 0:275              0.000000
 0:275        true case
 0:275        Branch: Kill
-0:276      move second child to first child (temp 4-component vector of float)
-0:276        'r013' (temp 4-component vector of float)
-0:276        cosine (global 4-component vector of float)
-0:276          'inF0' (in 4-component vector of float)
-0:277      move second child to first child (temp 4-component vector of float)
-0:277        'r014' (temp 4-component vector of float)
-0:277        hyp. cosine (global 4-component vector of float)
-0:277          'inF0' (in 4-component vector of float)
-0:278      move second child to first child (temp 4-component vector of uint)
-0:278        'r015' (temp 4-component vector of uint)
-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:279      move second child to first child (temp 4-component vector of float)
-0:279        'r016' (temp 4-component vector of float)
-0:279        dPdx (global 4-component vector of float)
-0:279          'inF0' (in 4-component vector of float)
-0:280      move second child to first child (temp 4-component vector of float)
-0:280        'r017' (temp 4-component vector of float)
-0:280        dPdxCoarse (global 4-component vector of float)
-0:280          'inF0' (in 4-component vector of float)
-0:281      move second child to first child (temp 4-component vector of float)
-0:281        'r018' (temp 4-component vector of float)
-0:281        dPdxFine (global 4-component vector of float)
-0:281          'inF0' (in 4-component vector of float)
-0:282      move second child to first child (temp 4-component vector of float)
-0:282        'r019' (temp 4-component vector of float)
-0:282        dPdy (global 4-component vector of float)
-0:282          'inF0' (in 4-component vector of float)
-0:283      move second child to first child (temp 4-component vector of float)
-0:283        'r020' (temp 4-component vector of float)
-0:283        dPdyCoarse (global 4-component vector of float)
-0:283          'inF0' (in 4-component vector of float)
-0:284      move second child to first child (temp 4-component vector of float)
-0:284        'r021' (temp 4-component vector of float)
-0:284        dPdyFine (global 4-component vector of float)
-0:284          'inF0' (in 4-component vector of float)
-0:285      move second child to first child (temp 4-component vector of float)
-0:285        'r022' (temp 4-component vector of float)
-0:285        degrees (global 4-component vector of float)
-0:285          'inF0' (in 4-component vector of float)
-0:286      move second child to first child (temp float)
-0:286        'r023' (temp float)
-0:286        distance (global float)
-0:286          'inF0' (in 4-component vector of float)
-0:286          'inF1' (in 4-component vector of float)
-0:287      move second child to first child (temp float)
-0:287        'r024' (temp float)
-0:287        dot-product (global float)
-0:287          'inF0' (in 4-component vector of float)
-0:287          'inF1' (in 4-component vector of float)
-0:288      move second child to first child (temp 4-component vector of float)
-0:288        'r025' (temp 4-component vector of float)
-0:288        Construct vec4 (temp 4-component vector of float)
-0:288          Constant:
-0:288            1.000000
-0:288          component-wise multiply (temp float)
+0:276      Sequence
+0:276        move second child to first child (temp 4-component vector of float)
+0:276          'r013' (temp 4-component vector of float)
+0:276          cosine (global 4-component vector of float)
+0:276            'inF0' (in 4-component vector of float)
+0:277      Sequence
+0:277        move second child to first child (temp 4-component vector of float)
+0:277          'r014' (temp 4-component vector of float)
+0:277          hyp. cosine (global 4-component vector of float)
+0:277            'inF0' (in 4-component vector of float)
+0:278      Sequence
+0:278        move second child to first child (temp 4-component vector of uint)
+0:278          'r015' (temp 4-component vector of uint)
+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:279      Sequence
+0:279        move second child to first child (temp 4-component vector of float)
+0:279          'r016' (temp 4-component vector of float)
+0:279          dPdx (global 4-component vector of float)
+0:279            'inF0' (in 4-component vector of float)
+0:280      Sequence
+0:280        move second child to first child (temp 4-component vector of float)
+0:280          'r017' (temp 4-component vector of float)
+0:280          dPdxCoarse (global 4-component vector of float)
+0:280            'inF0' (in 4-component vector of float)
+0:281      Sequence
+0:281        move second child to first child (temp 4-component vector of float)
+0:281          'r018' (temp 4-component vector of float)
+0:281          dPdxFine (global 4-component vector of float)
+0:281            'inF0' (in 4-component vector of float)
+0:282      Sequence
+0:282        move second child to first child (temp 4-component vector of float)
+0:282          'r019' (temp 4-component vector of float)
+0:282          dPdy (global 4-component vector of float)
+0:282            'inF0' (in 4-component vector of float)
+0:283      Sequence
+0:283        move second child to first child (temp 4-component vector of float)
+0:283          'r020' (temp 4-component vector of float)
+0:283          dPdyCoarse (global 4-component vector of float)
+0:283            'inF0' (in 4-component vector of float)
+0:284      Sequence
+0:284        move second child to first child (temp 4-component vector of float)
+0:284          'r021' (temp 4-component vector of float)
+0:284          dPdyFine (global 4-component vector of float)
+0:284            'inF0' (in 4-component vector of float)
+0:285      Sequence
+0:285        move second child to first child (temp 4-component vector of float)
+0:285          'r022' (temp 4-component vector of float)
+0:285          degrees (global 4-component vector of float)
+0:285            'inF0' (in 4-component vector of float)
+0:286      Sequence
+0:286        move second child to first child (temp float)
+0:286          'r023' (temp float)
+0:286          distance (global float)
+0:286            'inF0' (in 4-component vector of float)
+0:286            'inF1' (in 4-component vector of float)
+0:287      Sequence
+0:287        move second child to first child (temp float)
+0:287          'r024' (temp float)
+0:287          dot-product (global float)
+0:287            'inF0' (in 4-component vector of float)
+0:287            'inF1' (in 4-component vector of float)
+0:288      Sequence
+0:288        move second child to first child (temp 4-component vector of float)
+0:288          'r025' (temp 4-component vector of float)
+0:288          Construct vec4 (temp 4-component vector of float)
+0:288            Constant:
+0:288              1.000000
+0:288            component-wise multiply (temp float)
+0:288              direct index (temp float)
+0:288                'inF0' (in 4-component vector of float)
+0:288                Constant:
+0:288                  1 (const int)
+0:288              direct index (temp float)
+0:288                'inF1' (in 4-component vector of float)
+0:288                Constant:
+0:288                  1 (const int)
 0:288            direct index (temp float)
 0:288              'inF0' (in 4-component vector of float)
 0:288              Constant:
-0:288                1 (const int)
+0:288                2 (const int)
 0:288            direct index (temp float)
 0:288              'inF1' (in 4-component vector of float)
 0:288              Constant:
-0:288                1 (const int)
-0:288          direct index (temp float)
-0:288            'inF0' (in 4-component vector of float)
-0:288            Constant:
-0:288              2 (const int)
-0:288          direct index (temp float)
-0:288            'inF1' (in 4-component vector of float)
-0:288            Constant:
-0:288              3 (const int)
-0:292      move second child to first child (temp 4-component vector of float)
-0:292        'r029' (temp 4-component vector of float)
-0:292        exp (global 4-component vector of float)
-0:292          'inF0' (in 4-component vector of float)
-0:293      move second child to first child (temp 4-component vector of float)
-0:293        'r030' (temp 4-component vector of float)
-0:293        exp2 (global 4-component vector of float)
-0:293          'inF0' (in 4-component vector of float)
-0:294      move second child to first child (temp 4-component vector of float)
-0:294        'r031' (temp 4-component vector of float)
-0:294        face-forward (global 4-component vector of float)
-0:294          'inF0' (in 4-component vector of float)
-0:294          'inF1' (in 4-component vector of float)
-0:294          'inF2' (in 4-component vector of float)
-0:295      move second child to first child (temp 4-component vector of uint)
-0:295        'r032' (temp 4-component vector of uint)
-0:?         findMSB (global 4-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:?             9 (const uint)
-0:?             10 (const uint)
-0:296      move second child to first child (temp 4-component vector of uint)
-0:296        'r033' (temp 4-component vector of uint)
-0:?         findLSB (global 4-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:?             9 (const uint)
-0:?             10 (const uint)
-0:297      move second child to first child (temp 4-component vector of float)
-0:297        'r034' (temp 4-component vector of float)
-0:297        Floor (global 4-component vector of float)
-0:297          'inF0' (in 4-component vector of float)
-0:299      move second child to first child (temp 4-component vector of float)
-0:299        'r036' (temp 4-component vector of float)
-0:299        mod (global 4-component vector of float)
-0:299          'inF0' (in 4-component vector of float)
-0:299          'inF1' (in 4-component vector of float)
-0:300      move second child to first child (temp 4-component vector of float)
-0:300        'r037' (temp 4-component vector of float)
-0:300        Fraction (global 4-component vector of float)
-0:300          'inF0' (in 4-component vector of float)
-0:301      move second child to first child (temp 4-component vector of float)
-0:301        'r038' (temp 4-component vector of float)
-0:301        frexp (global 4-component vector of float)
-0:301          'inF0' (in 4-component vector of float)
-0:301          'inF1' (in 4-component vector of float)
-0:302      move second child to first child (temp 4-component vector of float)
-0:302        'r039' (temp 4-component vector of float)
-0:302        fwidth (global 4-component vector of float)
-0:302          'inF0' (in 4-component vector of float)
-0:303      move second child to first child (temp 4-component vector of bool)
-0:303        'r040' (temp 4-component vector of bool)
-0:303        isinf (global 4-component vector of bool)
-0:303          'inF0' (in 4-component vector of float)
-0:304      move second child to first child (temp 4-component vector of bool)
-0:304        'r041' (temp 4-component vector of bool)
-0:304        isnan (global 4-component vector of bool)
-0:304          'inF0' (in 4-component vector of float)
-0:305      move second child to first child (temp 4-component vector of float)
-0:305        'r042' (temp 4-component vector of float)
-0:305        ldexp (global 4-component vector of float)
-0:305          'inF0' (in 4-component vector of float)
-0:305          'inF1' (in 4-component vector of float)
-0:306      move second child to first child (temp 4-component vector of float)
-0:306        'r039a' (temp 4-component vector of float)
-0:306        mix (global 4-component vector of float)
-0:306          'inF0' (in 4-component vector of float)
-0:306          'inF1' (in 4-component vector of float)
-0:306          'inF2' (in 4-component vector of float)
-0:307      move second child to first child (temp float)
-0:307        'r043' (temp float)
-0:307        length (global float)
-0:307          'inF0' (in 4-component vector of float)
-0:308      move second child to first child (temp 4-component vector of float)
-0:308        'r044' (temp 4-component vector of float)
-0:308        log (global 4-component vector of float)
-0:308          'inF0' (in 4-component vector of float)
-0:309      move second child to first child (temp 4-component vector of float)
-0:309        'r045' (temp 4-component vector of float)
-0:309        vector-scale (temp 4-component vector of float)
-0:309          log2 (temp 4-component vector of float)
-0:309            'inF0' (in 4-component vector of float)
-0:309          Constant:
-0:309            0.301030
-0:310      move second child to first child (temp 4-component vector of float)
-0:310        'r046' (temp 4-component vector of float)
-0:310        log2 (global 4-component vector of float)
-0:310          'inF0' (in 4-component vector of float)
-0:311      move second child to first child (temp 4-component vector of float)
-0:311        'r047' (temp 4-component vector of float)
-0:311        max (global 4-component vector of float)
-0:311          'inF0' (in 4-component vector of float)
-0:311          'inF1' (in 4-component vector of float)
-0:312      move second child to first child (temp 4-component vector of float)
-0:312        'r048' (temp 4-component vector of float)
-0:312        min (global 4-component vector of float)
-0:312          'inF0' (in 4-component vector of float)
-0:312          'inF1' (in 4-component vector of float)
-0:313      move second child to first child (temp 4-component vector of float)
-0:313        'r049' (temp 4-component vector of float)
-0:313        normalize (global 4-component vector of float)
-0:313          'inF0' (in 4-component vector of float)
-0:314      move second child to first child (temp 4-component vector of float)
-0:314        'r050' (temp 4-component vector of float)
-0:314        pow (global 4-component vector of float)
-0:314          'inF0' (in 4-component vector of float)
-0:314          'inF1' (in 4-component vector of float)
-0:315      move second child to first child (temp 4-component vector of float)
-0:315        'r051' (temp 4-component vector of float)
-0:315        radians (global 4-component vector of float)
-0:315          'inF0' (in 4-component vector of float)
-0:316      move second child to first child (temp 4-component vector of float)
-0:316        'r052' (temp 4-component vector of float)
-0:316        divide (temp 4-component vector of float)
-0:316          Constant:
-0:316            1.000000
-0:316          'inF0' (in 4-component vector of float)
-0:317      move second child to first child (temp 4-component vector of float)
-0:317        'r053' (temp 4-component vector of float)
-0:317        reflect (global 4-component vector of float)
-0:317          'inF0' (in 4-component vector of float)
-0:317          'inF1' (in 4-component vector of float)
-0:318      move second child to first child (temp 4-component vector of float)
-0:318        'r054' (temp 4-component vector of float)
-0:318        refract (global 4-component vector of float)
-0:318          'inF0' (in 4-component vector of float)
-0:318          'inF1' (in 4-component vector of float)
-0:318          Constant:
-0:318            2.000000
-0:319      move second child to first child (temp 4-component vector of uint)
-0:319        'r055' (temp 4-component vector of uint)
-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:320      move second child to first child (temp 4-component vector of float)
-0:320        'r056' (temp 4-component vector of float)
-0:320        roundEven (global 4-component vector of float)
-0:320          'inF0' (in 4-component vector of float)
-0:321      move second child to first child (temp 4-component vector of float)
-0:321        'r057' (temp 4-component vector of float)
-0:321        inverse sqrt (global 4-component vector of float)
-0:321          'inF0' (in 4-component vector of float)
-0:322      move second child to first child (temp 4-component vector of float)
-0:322        'r058' (temp 4-component vector of float)
-0:322        clamp (temp 4-component vector of float)
-0:322          'inF0' (in 4-component vector of float)
-0:322          Constant:
-0:322            0.000000
-0:322          Constant:
-0:322            1.000000
-0:323      move second child to first child (temp 4-component vector of float)
-0:323        'r059' (temp 4-component vector of float)
-0:323        Sign (global 4-component vector of float)
-0:323          'inF0' (in 4-component vector of float)
-0:324      move second child to first child (temp 4-component vector of float)
-0:324        'r060' (temp 4-component vector of float)
-0:324        sine (global 4-component vector of float)
-0:324          'inF0' (in 4-component vector of float)
+0:288                3 (const int)
+0:292      Sequence
+0:292        move second child to first child (temp 4-component vector of float)
+0:292          'r029' (temp 4-component vector of float)
+0:292          exp (global 4-component vector of float)
+0:292            'inF0' (in 4-component vector of float)
+0:293      Sequence
+0:293        move second child to first child (temp 4-component vector of float)
+0:293          'r030' (temp 4-component vector of float)
+0:293          exp2 (global 4-component vector of float)
+0:293            'inF0' (in 4-component vector of float)
+0:294      Sequence
+0:294        move second child to first child (temp 4-component vector of float)
+0:294          'r031' (temp 4-component vector of float)
+0:294          face-forward (global 4-component vector of float)
+0:294            'inF0' (in 4-component vector of float)
+0:294            'inF1' (in 4-component vector of float)
+0:294            'inF2' (in 4-component vector of float)
+0:295      Sequence
+0:295        move second child to first child (temp 4-component vector of uint)
+0:295          'r032' (temp 4-component vector of uint)
+0:?           findMSB (global 4-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:?               9 (const uint)
+0:?               10 (const uint)
+0:296      Sequence
+0:296        move second child to first child (temp 4-component vector of uint)
+0:296          'r033' (temp 4-component vector of uint)
+0:?           findLSB (global 4-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:?               9 (const uint)
+0:?               10 (const uint)
+0:297      Sequence
+0:297        move second child to first child (temp 4-component vector of float)
+0:297          'r034' (temp 4-component vector of float)
+0:297          Floor (global 4-component vector of float)
+0:297            'inF0' (in 4-component vector of float)
+0:299      Sequence
+0:299        move second child to first child (temp 4-component vector of float)
+0:299          'r036' (temp 4-component vector of float)
+0:299          mod (global 4-component vector of float)
+0:299            'inF0' (in 4-component vector of float)
+0:299            'inF1' (in 4-component vector of float)
+0:300      Sequence
+0:300        move second child to first child (temp 4-component vector of float)
+0:300          'r037' (temp 4-component vector of float)
+0:300          Fraction (global 4-component vector of float)
+0:300            'inF0' (in 4-component vector of float)
+0:301      Sequence
+0:301        move second child to first child (temp 4-component vector of float)
+0:301          'r038' (temp 4-component vector of float)
+0:301          frexp (global 4-component vector of float)
+0:301            'inF0' (in 4-component vector of float)
+0:301            'inF1' (in 4-component vector of float)
+0:302      Sequence
+0:302        move second child to first child (temp 4-component vector of float)
+0:302          'r039' (temp 4-component vector of float)
+0:302          fwidth (global 4-component vector of float)
+0:302            'inF0' (in 4-component vector of float)
+0:303      Sequence
+0:303        move second child to first child (temp 4-component vector of bool)
+0:303          'r040' (temp 4-component vector of bool)
+0:303          isinf (global 4-component vector of bool)
+0:303            'inF0' (in 4-component vector of float)
+0:304      Sequence
+0:304        move second child to first child (temp 4-component vector of bool)
+0:304          'r041' (temp 4-component vector of bool)
+0:304          isnan (global 4-component vector of bool)
+0:304            'inF0' (in 4-component vector of float)
+0:305      Sequence
+0:305        move second child to first child (temp 4-component vector of float)
+0:305          'r042' (temp 4-component vector of float)
+0:305          ldexp (global 4-component vector of float)
+0:305            'inF0' (in 4-component vector of float)
+0:305            'inF1' (in 4-component vector of float)
+0:306      Sequence
+0:306        move second child to first child (temp 4-component vector of float)
+0:306          'r039a' (temp 4-component vector of float)
+0:306          mix (global 4-component vector of float)
+0:306            'inF0' (in 4-component vector of float)
+0:306            'inF1' (in 4-component vector of float)
+0:306            'inF2' (in 4-component vector of float)
+0:307      Sequence
+0:307        move second child to first child (temp float)
+0:307          'r043' (temp float)
+0:307          length (global float)
+0:307            'inF0' (in 4-component vector of float)
+0:308      Sequence
+0:308        move second child to first child (temp 4-component vector of float)
+0:308          'r044' (temp 4-component vector of float)
+0:308          log (global 4-component vector of float)
+0:308            'inF0' (in 4-component vector of float)
+0:309      Sequence
+0:309        move second child to first child (temp 4-component vector of float)
+0:309          'r045' (temp 4-component vector of float)
+0:309          vector-scale (temp 4-component vector of float)
+0:309            log2 (temp 4-component vector of float)
+0:309              'inF0' (in 4-component vector of float)
+0:309            Constant:
+0:309              0.301030
+0:310      Sequence
+0:310        move second child to first child (temp 4-component vector of float)
+0:310          'r046' (temp 4-component vector of float)
+0:310          log2 (global 4-component vector of float)
+0:310            'inF0' (in 4-component vector of float)
+0:311      Sequence
+0:311        move second child to first child (temp 4-component vector of float)
+0:311          'r047' (temp 4-component vector of float)
+0:311          max (global 4-component vector of float)
+0:311            'inF0' (in 4-component vector of float)
+0:311            'inF1' (in 4-component vector of float)
+0:312      Sequence
+0:312        move second child to first child (temp 4-component vector of float)
+0:312          'r048' (temp 4-component vector of float)
+0:312          min (global 4-component vector of float)
+0:312            'inF0' (in 4-component vector of float)
+0:312            'inF1' (in 4-component vector of float)
+0:313      Sequence
+0:313        move second child to first child (temp 4-component vector of float)
+0:313          'r049' (temp 4-component vector of float)
+0:313          normalize (global 4-component vector of float)
+0:313            'inF0' (in 4-component vector of float)
+0:314      Sequence
+0:314        move second child to first child (temp 4-component vector of float)
+0:314          'r050' (temp 4-component vector of float)
+0:314          pow (global 4-component vector of float)
+0:314            'inF0' (in 4-component vector of float)
+0:314            'inF1' (in 4-component vector of float)
+0:315      Sequence
+0:315        move second child to first child (temp 4-component vector of float)
+0:315          'r051' (temp 4-component vector of float)
+0:315          radians (global 4-component vector of float)
+0:315            'inF0' (in 4-component vector of float)
+0:316      Sequence
+0:316        move second child to first child (temp 4-component vector of float)
+0:316          'r052' (temp 4-component vector of float)
+0:316          divide (temp 4-component vector of float)
+0:316            Constant:
+0:316              1.000000
+0:316            'inF0' (in 4-component vector of float)
+0:317      Sequence
+0:317        move second child to first child (temp 4-component vector of float)
+0:317          'r053' (temp 4-component vector of float)
+0:317          reflect (global 4-component vector of float)
+0:317            'inF0' (in 4-component vector of float)
+0:317            'inF1' (in 4-component vector of float)
+0:318      Sequence
+0:318        move second child to first child (temp 4-component vector of float)
+0:318          'r054' (temp 4-component vector of float)
+0:318          refract (global 4-component vector of float)
+0:318            'inF0' (in 4-component vector of float)
+0:318            'inF1' (in 4-component vector of float)
+0:318            Constant:
+0:318              2.000000
+0:319      Sequence
+0:319        move second child to first child (temp 4-component vector of uint)
+0:319          'r055' (temp 4-component vector of uint)
+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:320      Sequence
+0:320        move second child to first child (temp 4-component vector of float)
+0:320          'r056' (temp 4-component vector of float)
+0:320          roundEven (global 4-component vector of float)
+0:320            'inF0' (in 4-component vector of float)
+0:321      Sequence
+0:321        move second child to first child (temp 4-component vector of float)
+0:321          'r057' (temp 4-component vector of float)
+0:321          inverse sqrt (global 4-component vector of float)
+0:321            'inF0' (in 4-component vector of float)
+0:322      Sequence
+0:322        move second child to first child (temp 4-component vector of float)
+0:322          'r058' (temp 4-component vector of float)
+0:322          clamp (temp 4-component vector of float)
+0:322            'inF0' (in 4-component vector of float)
+0:322            Constant:
+0:322              0.000000
+0:322            Constant:
+0:322              1.000000
+0:323      Sequence
+0:323        move second child to first child (temp 4-component vector of float)
+0:323          'r059' (temp 4-component vector of float)
+0:323          Sign (global 4-component vector of float)
+0:323            'inF0' (in 4-component vector of float)
+0:324      Sequence
+0:324        move second child to first child (temp 4-component vector of float)
+0:324          'r060' (temp 4-component vector of float)
+0:324          sine (global 4-component vector of float)
+0:324            'inF0' (in 4-component vector of float)
 0:325      Sequence
 0:325        move second child to first child (temp 4-component vector of float)
 0:325          'inF1' (in 4-component vector of float)
@@ -1266,37 +1506,44 @@
 0:325          'inF2' (in 4-component vector of float)
 0:325          cosine (temp 4-component vector of float)
 0:325            'inF0' (in 4-component vector of float)
-0:326      move second child to first child (temp 4-component vector of float)
-0:326        'r061' (temp 4-component vector of float)
-0:326        hyp. sine (global 4-component vector of float)
-0:326          'inF0' (in 4-component vector of float)
-0:327      move second child to first child (temp 4-component vector of float)
-0:327        'r062' (temp 4-component vector of float)
-0:327        smoothstep (global 4-component vector of float)
-0:327          'inF0' (in 4-component vector of float)
-0:327          'inF1' (in 4-component vector of float)
-0:327          'inF2' (in 4-component vector of float)
-0:328      move second child to first child (temp 4-component vector of float)
-0:328        'r063' (temp 4-component vector of float)
-0:328        sqrt (global 4-component vector of float)
-0:328          'inF0' (in 4-component vector of float)
-0:329      move second child to first child (temp 4-component vector of float)
-0:329        'r064' (temp 4-component vector of float)
-0:329        step (global 4-component vector of float)
-0:329          'inF0' (in 4-component vector of float)
-0:329          'inF1' (in 4-component vector of float)
-0:330      move second child to first child (temp 4-component vector of float)
-0:330        'r065' (temp 4-component vector of float)
-0:330        tangent (global 4-component vector of float)
-0:330          'inF0' (in 4-component vector of float)
-0:331      move second child to first child (temp 4-component vector of float)
-0:331        'r066' (temp 4-component vector of float)
-0:331        hyp. tangent (global 4-component vector of float)
-0:331          'inF0' (in 4-component vector of float)
-0:333      move second child to first child (temp 4-component vector of float)
-0:333        'r067' (temp 4-component vector of float)
-0:333        trunc (global 4-component vector of float)
-0:333          'inF0' (in 4-component vector of float)
+0:326      Sequence
+0:326        move second child to first child (temp 4-component vector of float)
+0:326          'r061' (temp 4-component vector of float)
+0:326          hyp. sine (global 4-component vector of float)
+0:326            'inF0' (in 4-component vector of float)
+0:327      Sequence
+0:327        move second child to first child (temp 4-component vector of float)
+0:327          'r062' (temp 4-component vector of float)
+0:327          smoothstep (global 4-component vector of float)
+0:327            'inF0' (in 4-component vector of float)
+0:327            'inF1' (in 4-component vector of float)
+0:327            'inF2' (in 4-component vector of float)
+0:328      Sequence
+0:328        move second child to first child (temp 4-component vector of float)
+0:328          'r063' (temp 4-component vector of float)
+0:328          sqrt (global 4-component vector of float)
+0:328            'inF0' (in 4-component vector of float)
+0:329      Sequence
+0:329        move second child to first child (temp 4-component vector of float)
+0:329          'r064' (temp 4-component vector of float)
+0:329          step (global 4-component vector of float)
+0:329            'inF0' (in 4-component vector of float)
+0:329            'inF1' (in 4-component vector of float)
+0:330      Sequence
+0:330        move second child to first child (temp 4-component vector of float)
+0:330          'r065' (temp 4-component vector of float)
+0:330          tangent (global 4-component vector of float)
+0:330            'inF0' (in 4-component vector of float)
+0:331      Sequence
+0:331        move second child to first child (temp 4-component vector of float)
+0:331          'r066' (temp 4-component vector of float)
+0:331          hyp. tangent (global 4-component vector of float)
+0:331            'inF0' (in 4-component vector of float)
+0:333      Sequence
+0:333        move second child to first child (temp 4-component vector of float)
+0:333          'r067' (temp 4-component vector of float)
+0:333          trunc (global 4-component vector of float)
+0:333            'inF0' (in 4-component vector of float)
 0:336      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -1309,37 +1556,44 @@
 0:400      'inF1' (in 2X2 matrix of float)
 0:400      'inF2' (in 2X2 matrix of float)
 0:?     Sequence
-0:402      move second child to first child (temp bool)
-0:402        'r000' (temp bool)
-0:402        all (global bool)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r001' (temp 2X2 matrix of float)
-0:402        Absolute value (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp bool)
+0:402          'r000' (temp bool)
+0:402          all (global bool)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r001' (temp 2X2 matrix of float)
+0:402          Absolute value (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      arc cosine (global 2X2 matrix of float)
 0:402        'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp bool)
-0:402        'r003' (temp bool)
-0:402        any (global bool)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r004' (temp 2X2 matrix of float)
-0:402        arc sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r005' (temp 2X2 matrix of float)
-0:402        arc tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r006' (temp 2X2 matrix of float)
-0:402        arc tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r007' (temp 2X2 matrix of float)
-0:402        Ceiling (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp bool)
+0:402          'r003' (temp bool)
+0:402          any (global bool)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r004' (temp 2X2 matrix of float)
+0:402          arc sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r005' (temp 2X2 matrix of float)
+0:402          arc tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r006' (temp 2X2 matrix of float)
+0:402          arc tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r007' (temp 2X2 matrix of float)
+0:402          Ceiling (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      Test condition and select (temp void)
 0:402        Condition
 0:402        any (temp bool)
@@ -1352,151 +1606,183 @@
 0:402              0.000000
 0:402        true case
 0:402        Branch: Kill
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r008' (temp 2X2 matrix of float)
-0:402        clamp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r009' (temp 2X2 matrix of float)
-0:402        cosine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r010' (temp 2X2 matrix of float)
-0:402        hyp. cosine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r011' (temp 2X2 matrix of float)
-0:402        dPdx (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r012' (temp 2X2 matrix of float)
-0:402        dPdxCoarse (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r013' (temp 2X2 matrix of float)
-0:402        dPdxFine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r014' (temp 2X2 matrix of float)
-0:402        dPdy (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r015' (temp 2X2 matrix of float)
-0:402        dPdyCoarse (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r016' (temp 2X2 matrix of float)
-0:402        dPdyFine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r017' (temp 2X2 matrix of float)
-0:402        degrees (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp float)
-0:402        'r018' (temp float)
-0:402        determinant (global float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r019' (temp 2X2 matrix of float)
-0:402        exp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'R020' (temp 2X2 matrix of float)
-0:402        exp2 (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r021' (temp 2X2 matrix of float)
-0:402        Floor (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r022' (temp 2X2 matrix of float)
-0:402        mod (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r023' (temp 2X2 matrix of float)
-0:402        Fraction (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r024' (temp 2X2 matrix of float)
-0:402        frexp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r025' (temp 2X2 matrix of float)
-0:402        fwidth (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r026' (temp 2X2 matrix of float)
-0:402        ldexp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r026a' (temp 2X2 matrix of float)
-0:402        mix (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r027' (temp 2X2 matrix of float)
-0:402        log (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r028' (temp 2X2 matrix of float)
-0:402        matrix-scale (temp 2X2 matrix of float)
-0:402          log2 (temp 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r008' (temp 2X2 matrix of float)
+0:402          clamp (global 2X2 matrix of float)
 0:402            'inF0' (in 2X2 matrix of float)
-0:402          Constant:
-0:402            0.301030
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r029' (temp 2X2 matrix of float)
-0:402        log2 (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r030' (temp 2X2 matrix of float)
-0:402        max (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r031' (temp 2X2 matrix of float)
-0:402        min (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r032' (temp 2X2 matrix of float)
-0:402        pow (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r033' (temp 2X2 matrix of float)
-0:402        radians (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r034' (temp 2X2 matrix of float)
-0:402        roundEven (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r035' (temp 2X2 matrix of float)
-0:402        inverse sqrt (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r036' (temp 2X2 matrix of float)
-0:402        clamp (temp 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          Constant:
-0:402            0.000000
-0:402          Constant:
-0:402            1.000000
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r037' (temp 2X2 matrix of float)
-0:402        Sign (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r038' (temp 2X2 matrix of float)
-0:402        sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r009' (temp 2X2 matrix of float)
+0:402          cosine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r010' (temp 2X2 matrix of float)
+0:402          hyp. cosine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r011' (temp 2X2 matrix of float)
+0:402          dPdx (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r012' (temp 2X2 matrix of float)
+0:402          dPdxCoarse (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r013' (temp 2X2 matrix of float)
+0:402          dPdxFine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r014' (temp 2X2 matrix of float)
+0:402          dPdy (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r015' (temp 2X2 matrix of float)
+0:402          dPdyCoarse (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r016' (temp 2X2 matrix of float)
+0:402          dPdyFine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r017' (temp 2X2 matrix of float)
+0:402          degrees (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp float)
+0:402          'r018' (temp float)
+0:402          determinant (global float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r019' (temp 2X2 matrix of float)
+0:402          exp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'R020' (temp 2X2 matrix of float)
+0:402          exp2 (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r021' (temp 2X2 matrix of float)
+0:402          Floor (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r022' (temp 2X2 matrix of float)
+0:402          mod (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r023' (temp 2X2 matrix of float)
+0:402          Fraction (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r024' (temp 2X2 matrix of float)
+0:402          frexp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r025' (temp 2X2 matrix of float)
+0:402          fwidth (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r026' (temp 2X2 matrix of float)
+0:402          ldexp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r026a' (temp 2X2 matrix of float)
+0:402          mix (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r027' (temp 2X2 matrix of float)
+0:402          log (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r028' (temp 2X2 matrix of float)
+0:402          matrix-scale (temp 2X2 matrix of float)
+0:402            log2 (temp 2X2 matrix of float)
+0:402              'inF0' (in 2X2 matrix of float)
+0:402            Constant:
+0:402              0.301030
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r029' (temp 2X2 matrix of float)
+0:402          log2 (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r030' (temp 2X2 matrix of float)
+0:402          max (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r031' (temp 2X2 matrix of float)
+0:402          min (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r032' (temp 2X2 matrix of float)
+0:402          pow (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r033' (temp 2X2 matrix of float)
+0:402          radians (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r034' (temp 2X2 matrix of float)
+0:402          roundEven (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r035' (temp 2X2 matrix of float)
+0:402          inverse sqrt (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r036' (temp 2X2 matrix of float)
+0:402          clamp (temp 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            Constant:
+0:402              0.000000
+0:402            Constant:
+0:402              1.000000
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r037' (temp 2X2 matrix of float)
+0:402          Sign (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r038' (temp 2X2 matrix of float)
+0:402          sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      Sequence
 0:402        move second child to first child (temp 2X2 matrix of float)
 0:402          'inF1' (in 2X2 matrix of float)
@@ -1506,39 +1792,46 @@
 0:402          'inF2' (in 2X2 matrix of float)
 0:402          cosine (temp 2X2 matrix of float)
 0:402            'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r039' (temp 2X2 matrix of float)
-0:402        hyp. sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r049' (temp 2X2 matrix of float)
-0:402        smoothstep (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r041' (temp 2X2 matrix of float)
-0:402        sqrt (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r042' (temp 2X2 matrix of float)
-0:402        step (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r043' (temp 2X2 matrix of float)
-0:402        tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r044' (temp 2X2 matrix of float)
-0:402        hyp. tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r039' (temp 2X2 matrix of float)
+0:402          hyp. sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r049' (temp 2X2 matrix of float)
+0:402          smoothstep (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r041' (temp 2X2 matrix of float)
+0:402          sqrt (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r042' (temp 2X2 matrix of float)
+0:402          step (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r043' (temp 2X2 matrix of float)
+0:402          tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r044' (temp 2X2 matrix of float)
+0:402          hyp. tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      transpose (global 2X2 matrix of float)
 0:402        'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r046' (temp 2X2 matrix of float)
-0:402        trunc (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r046' (temp 2X2 matrix of float)
+0:402          trunc (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:405      Branch: Return with expression
 0:?         Constant:
 0:?           2.000000
@@ -1551,37 +1844,44 @@
 0:409      'inF1' (in 3X3 matrix of float)
 0:409      'inF2' (in 3X3 matrix of float)
 0:?     Sequence
-0:411      move second child to first child (temp bool)
-0:411        'r000' (temp bool)
-0:411        all (global bool)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r001' (temp 3X3 matrix of float)
-0:411        Absolute value (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp bool)
+0:411          'r000' (temp bool)
+0:411          all (global bool)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r001' (temp 3X3 matrix of float)
+0:411          Absolute value (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      arc cosine (global 3X3 matrix of float)
 0:411        'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp bool)
-0:411        'r003' (temp bool)
-0:411        any (global bool)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r004' (temp 3X3 matrix of float)
-0:411        arc sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r005' (temp 3X3 matrix of float)
-0:411        arc tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r006' (temp 3X3 matrix of float)
-0:411        arc tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r007' (temp 3X3 matrix of float)
-0:411        Ceiling (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp bool)
+0:411          'r003' (temp bool)
+0:411          any (global bool)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r004' (temp 3X3 matrix of float)
+0:411          arc sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r005' (temp 3X3 matrix of float)
+0:411          arc tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r006' (temp 3X3 matrix of float)
+0:411          arc tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r007' (temp 3X3 matrix of float)
+0:411          Ceiling (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      Test condition and select (temp void)
 0:411        Condition
 0:411        any (temp bool)
@@ -1599,151 +1899,183 @@
 0:411              0.000000
 0:411        true case
 0:411        Branch: Kill
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r008' (temp 3X3 matrix of float)
-0:411        clamp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r009' (temp 3X3 matrix of float)
-0:411        cosine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r010' (temp 3X3 matrix of float)
-0:411        hyp. cosine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r011' (temp 3X3 matrix of float)
-0:411        dPdx (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r012' (temp 3X3 matrix of float)
-0:411        dPdxCoarse (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r013' (temp 3X3 matrix of float)
-0:411        dPdxFine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r014' (temp 3X3 matrix of float)
-0:411        dPdy (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r015' (temp 3X3 matrix of float)
-0:411        dPdyCoarse (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r016' (temp 3X3 matrix of float)
-0:411        dPdyFine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r017' (temp 3X3 matrix of float)
-0:411        degrees (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp float)
-0:411        'r018' (temp float)
-0:411        determinant (global float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r019' (temp 3X3 matrix of float)
-0:411        exp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'R020' (temp 3X3 matrix of float)
-0:411        exp2 (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r021' (temp 3X3 matrix of float)
-0:411        Floor (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r022' (temp 3X3 matrix of float)
-0:411        mod (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r023' (temp 3X3 matrix of float)
-0:411        Fraction (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r024' (temp 3X3 matrix of float)
-0:411        frexp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r025' (temp 3X3 matrix of float)
-0:411        fwidth (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r026' (temp 3X3 matrix of float)
-0:411        ldexp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r026a' (temp 3X3 matrix of float)
-0:411        mix (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r027' (temp 3X3 matrix of float)
-0:411        log (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r028' (temp 3X3 matrix of float)
-0:411        matrix-scale (temp 3X3 matrix of float)
-0:411          log2 (temp 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r008' (temp 3X3 matrix of float)
+0:411          clamp (global 3X3 matrix of float)
 0:411            'inF0' (in 3X3 matrix of float)
-0:411          Constant:
-0:411            0.301030
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r029' (temp 3X3 matrix of float)
-0:411        log2 (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r030' (temp 3X3 matrix of float)
-0:411        max (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r031' (temp 3X3 matrix of float)
-0:411        min (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r032' (temp 3X3 matrix of float)
-0:411        pow (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r033' (temp 3X3 matrix of float)
-0:411        radians (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r034' (temp 3X3 matrix of float)
-0:411        roundEven (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r035' (temp 3X3 matrix of float)
-0:411        inverse sqrt (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r036' (temp 3X3 matrix of float)
-0:411        clamp (temp 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          Constant:
-0:411            0.000000
-0:411          Constant:
-0:411            1.000000
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r037' (temp 3X3 matrix of float)
-0:411        Sign (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r038' (temp 3X3 matrix of float)
-0:411        sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r009' (temp 3X3 matrix of float)
+0:411          cosine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r010' (temp 3X3 matrix of float)
+0:411          hyp. cosine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r011' (temp 3X3 matrix of float)
+0:411          dPdx (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r012' (temp 3X3 matrix of float)
+0:411          dPdxCoarse (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r013' (temp 3X3 matrix of float)
+0:411          dPdxFine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r014' (temp 3X3 matrix of float)
+0:411          dPdy (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r015' (temp 3X3 matrix of float)
+0:411          dPdyCoarse (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r016' (temp 3X3 matrix of float)
+0:411          dPdyFine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r017' (temp 3X3 matrix of float)
+0:411          degrees (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp float)
+0:411          'r018' (temp float)
+0:411          determinant (global float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r019' (temp 3X3 matrix of float)
+0:411          exp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'R020' (temp 3X3 matrix of float)
+0:411          exp2 (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r021' (temp 3X3 matrix of float)
+0:411          Floor (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r022' (temp 3X3 matrix of float)
+0:411          mod (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r023' (temp 3X3 matrix of float)
+0:411          Fraction (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r024' (temp 3X3 matrix of float)
+0:411          frexp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r025' (temp 3X3 matrix of float)
+0:411          fwidth (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r026' (temp 3X3 matrix of float)
+0:411          ldexp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r026a' (temp 3X3 matrix of float)
+0:411          mix (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r027' (temp 3X3 matrix of float)
+0:411          log (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r028' (temp 3X3 matrix of float)
+0:411          matrix-scale (temp 3X3 matrix of float)
+0:411            log2 (temp 3X3 matrix of float)
+0:411              'inF0' (in 3X3 matrix of float)
+0:411            Constant:
+0:411              0.301030
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r029' (temp 3X3 matrix of float)
+0:411          log2 (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r030' (temp 3X3 matrix of float)
+0:411          max (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r031' (temp 3X3 matrix of float)
+0:411          min (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r032' (temp 3X3 matrix of float)
+0:411          pow (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r033' (temp 3X3 matrix of float)
+0:411          radians (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r034' (temp 3X3 matrix of float)
+0:411          roundEven (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r035' (temp 3X3 matrix of float)
+0:411          inverse sqrt (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r036' (temp 3X3 matrix of float)
+0:411          clamp (temp 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            Constant:
+0:411              0.000000
+0:411            Constant:
+0:411              1.000000
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r037' (temp 3X3 matrix of float)
+0:411          Sign (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r038' (temp 3X3 matrix of float)
+0:411          sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      Sequence
 0:411        move second child to first child (temp 3X3 matrix of float)
 0:411          'inF1' (in 3X3 matrix of float)
@@ -1753,39 +2085,46 @@
 0:411          'inF2' (in 3X3 matrix of float)
 0:411          cosine (temp 3X3 matrix of float)
 0:411            'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r039' (temp 3X3 matrix of float)
-0:411        hyp. sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r049' (temp 3X3 matrix of float)
-0:411        smoothstep (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r041' (temp 3X3 matrix of float)
-0:411        sqrt (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r042' (temp 3X3 matrix of float)
-0:411        step (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r043' (temp 3X3 matrix of float)
-0:411        tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r044' (temp 3X3 matrix of float)
-0:411        hyp. tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r039' (temp 3X3 matrix of float)
+0:411          hyp. sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r049' (temp 3X3 matrix of float)
+0:411          smoothstep (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r041' (temp 3X3 matrix of float)
+0:411          sqrt (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r042' (temp 3X3 matrix of float)
+0:411          step (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r043' (temp 3X3 matrix of float)
+0:411          tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r044' (temp 3X3 matrix of float)
+0:411          hyp. tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      transpose (global 3X3 matrix of float)
 0:411        'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r046' (temp 3X3 matrix of float)
-0:411        trunc (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r046' (temp 3X3 matrix of float)
+0:411          trunc (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:414      Branch: Return with expression
 0:?         Constant:
 0:?           3.000000
@@ -1803,37 +2142,44 @@
 0:418      'inF1' (in 4X4 matrix of float)
 0:418      'inF2' (in 4X4 matrix of float)
 0:?     Sequence
-0:420      move second child to first child (temp bool)
-0:420        'r000' (temp bool)
-0:420        all (global bool)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r001' (temp 4X4 matrix of float)
-0:420        Absolute value (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp bool)
+0:420          'r000' (temp bool)
+0:420          all (global bool)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r001' (temp 4X4 matrix of float)
+0:420          Absolute value (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      arc cosine (global 4X4 matrix of float)
 0:420        'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp bool)
-0:420        'r003' (temp bool)
-0:420        any (global bool)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r004' (temp 4X4 matrix of float)
-0:420        arc sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r005' (temp 4X4 matrix of float)
-0:420        arc tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r006' (temp 4X4 matrix of float)
-0:420        arc tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r007' (temp 4X4 matrix of float)
-0:420        Ceiling (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp bool)
+0:420          'r003' (temp bool)
+0:420          any (global bool)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r004' (temp 4X4 matrix of float)
+0:420          arc sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r005' (temp 4X4 matrix of float)
+0:420          arc tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r006' (temp 4X4 matrix of float)
+0:420          arc tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r007' (temp 4X4 matrix of float)
+0:420          Ceiling (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      Test condition and select (temp void)
 0:420        Condition
 0:420        any (temp bool)
@@ -1858,151 +2204,183 @@
 0:420              0.000000
 0:420        true case
 0:420        Branch: Kill
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r008' (temp 4X4 matrix of float)
-0:420        clamp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r009' (temp 4X4 matrix of float)
-0:420        cosine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r010' (temp 4X4 matrix of float)
-0:420        hyp. cosine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r011' (temp 4X4 matrix of float)
-0:420        dPdx (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r012' (temp 4X4 matrix of float)
-0:420        dPdxCoarse (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r013' (temp 4X4 matrix of float)
-0:420        dPdxFine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r014' (temp 4X4 matrix of float)
-0:420        dPdy (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r015' (temp 4X4 matrix of float)
-0:420        dPdyCoarse (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r016' (temp 4X4 matrix of float)
-0:420        dPdyFine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r017' (temp 4X4 matrix of float)
-0:420        degrees (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp float)
-0:420        'r018' (temp float)
-0:420        determinant (global float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r019' (temp 4X4 matrix of float)
-0:420        exp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'R020' (temp 4X4 matrix of float)
-0:420        exp2 (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r021' (temp 4X4 matrix of float)
-0:420        Floor (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r022' (temp 4X4 matrix of float)
-0:420        mod (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r023' (temp 4X4 matrix of float)
-0:420        Fraction (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r024' (temp 4X4 matrix of float)
-0:420        frexp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r025' (temp 4X4 matrix of float)
-0:420        fwidth (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r026' (temp 4X4 matrix of float)
-0:420        ldexp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r026a' (temp 4X4 matrix of float)
-0:420        mix (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r027' (temp 4X4 matrix of float)
-0:420        log (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r028' (temp 4X4 matrix of float)
-0:420        matrix-scale (temp 4X4 matrix of float)
-0:420          log2 (temp 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r008' (temp 4X4 matrix of float)
+0:420          clamp (global 4X4 matrix of float)
 0:420            'inF0' (in 4X4 matrix of float)
-0:420          Constant:
-0:420            0.301030
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r029' (temp 4X4 matrix of float)
-0:420        log2 (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r030' (temp 4X4 matrix of float)
-0:420        max (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r031' (temp 4X4 matrix of float)
-0:420        min (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r032' (temp 4X4 matrix of float)
-0:420        pow (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r033' (temp 4X4 matrix of float)
-0:420        radians (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r034' (temp 4X4 matrix of float)
-0:420        roundEven (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r035' (temp 4X4 matrix of float)
-0:420        inverse sqrt (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r036' (temp 4X4 matrix of float)
-0:420        clamp (temp 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          Constant:
-0:420            0.000000
-0:420          Constant:
-0:420            1.000000
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r037' (temp 4X4 matrix of float)
-0:420        Sign (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r038' (temp 4X4 matrix of float)
-0:420        sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r009' (temp 4X4 matrix of float)
+0:420          cosine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r010' (temp 4X4 matrix of float)
+0:420          hyp. cosine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r011' (temp 4X4 matrix of float)
+0:420          dPdx (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r012' (temp 4X4 matrix of float)
+0:420          dPdxCoarse (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r013' (temp 4X4 matrix of float)
+0:420          dPdxFine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r014' (temp 4X4 matrix of float)
+0:420          dPdy (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r015' (temp 4X4 matrix of float)
+0:420          dPdyCoarse (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r016' (temp 4X4 matrix of float)
+0:420          dPdyFine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r017' (temp 4X4 matrix of float)
+0:420          degrees (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp float)
+0:420          'r018' (temp float)
+0:420          determinant (global float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r019' (temp 4X4 matrix of float)
+0:420          exp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'R020' (temp 4X4 matrix of float)
+0:420          exp2 (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r021' (temp 4X4 matrix of float)
+0:420          Floor (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r022' (temp 4X4 matrix of float)
+0:420          mod (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r023' (temp 4X4 matrix of float)
+0:420          Fraction (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r024' (temp 4X4 matrix of float)
+0:420          frexp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r025' (temp 4X4 matrix of float)
+0:420          fwidth (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r026' (temp 4X4 matrix of float)
+0:420          ldexp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r026a' (temp 4X4 matrix of float)
+0:420          mix (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r027' (temp 4X4 matrix of float)
+0:420          log (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r028' (temp 4X4 matrix of float)
+0:420          matrix-scale (temp 4X4 matrix of float)
+0:420            log2 (temp 4X4 matrix of float)
+0:420              'inF0' (in 4X4 matrix of float)
+0:420            Constant:
+0:420              0.301030
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r029' (temp 4X4 matrix of float)
+0:420          log2 (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r030' (temp 4X4 matrix of float)
+0:420          max (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r031' (temp 4X4 matrix of float)
+0:420          min (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r032' (temp 4X4 matrix of float)
+0:420          pow (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r033' (temp 4X4 matrix of float)
+0:420          radians (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r034' (temp 4X4 matrix of float)
+0:420          roundEven (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r035' (temp 4X4 matrix of float)
+0:420          inverse sqrt (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r036' (temp 4X4 matrix of float)
+0:420          clamp (temp 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            Constant:
+0:420              0.000000
+0:420            Constant:
+0:420              1.000000
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r037' (temp 4X4 matrix of float)
+0:420          Sign (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r038' (temp 4X4 matrix of float)
+0:420          sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      Sequence
 0:420        move second child to first child (temp 4X4 matrix of float)
 0:420          'inF1' (in 4X4 matrix of float)
@@ -2012,39 +2390,46 @@
 0:420          'inF2' (in 4X4 matrix of float)
 0:420          cosine (temp 4X4 matrix of float)
 0:420            'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r039' (temp 4X4 matrix of float)
-0:420        hyp. sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r049' (temp 4X4 matrix of float)
-0:420        smoothstep (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r041' (temp 4X4 matrix of float)
-0:420        sqrt (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r042' (temp 4X4 matrix of float)
-0:420        step (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r043' (temp 4X4 matrix of float)
-0:420        tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r044' (temp 4X4 matrix of float)
-0:420        hyp. tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r039' (temp 4X4 matrix of float)
+0:420          hyp. sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r049' (temp 4X4 matrix of float)
+0:420          smoothstep (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r041' (temp 4X4 matrix of float)
+0:420          sqrt (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r042' (temp 4X4 matrix of float)
+0:420          step (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r043' (temp 4X4 matrix of float)
+0:420          tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r044' (temp 4X4 matrix of float)
+0:420          hyp. tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      transpose (global 4X4 matrix of float)
 0:420        'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r046' (temp 4X4 matrix of float)
-0:420        trunc (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r046' (temp 4X4 matrix of float)
+0:420          trunc (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:423      Branch: Return with expression
 0:?         Constant:
 0:?           4.000000
@@ -2072,51 +2457,60 @@
 0:441      'inFM0' (in 2X2 matrix of float)
 0:441      'inFM1' (in 2X2 matrix of float)
 0:?     Sequence
-0:442      move second child to first child (temp float)
-0:442        'r0' (temp float)
-0:442        component-wise multiply (temp float)
-0:442          'inF0' (in float)
-0:442          'inF1' (in float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r1' (temp 2-component vector of float)
-0:442        vector-scale (temp 2-component vector of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inF0' (in float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r2' (temp 2-component vector of float)
-0:442        vector-scale (temp 2-component vector of float)
-0:442          'inF0' (in float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442      move second child to first child (temp float)
-0:442        'r3' (temp float)
-0:442        dot-product (global float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inFV1' (in 2-component vector of float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r4' (temp 2-component vector of float)
-0:442        matrix-times-vector (temp 2-component vector of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r5' (temp 2-component vector of float)
-0:442        vector-times-matrix (temp 2-component vector of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r6' (temp 2X2 matrix of float)
-0:442        matrix-scale (temp 2X2 matrix of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inF0' (in float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r7' (temp 2X2 matrix of float)
-0:442        matrix-scale (temp 2X2 matrix of float)
-0:442          'inF0' (in float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r8' (temp 2X2 matrix of float)
-0:442        matrix-multiply (temp 2X2 matrix of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inFM1' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp float)
+0:442          'r0' (temp float)
+0:442          component-wise multiply (temp float)
+0:442            'inF0' (in float)
+0:442            'inF1' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r1' (temp 2-component vector of float)
+0:442          vector-scale (temp 2-component vector of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inF0' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r2' (temp 2-component vector of float)
+0:442          vector-scale (temp 2-component vector of float)
+0:442            'inF0' (in float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp float)
+0:442          'r3' (temp float)
+0:442          dot-product (global float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inFV1' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r4' (temp 2-component vector of float)
+0:442          matrix-times-vector (temp 2-component vector of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r5' (temp 2-component vector of float)
+0:442          vector-times-matrix (temp 2-component vector of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r6' (temp 2X2 matrix of float)
+0:442          matrix-scale (temp 2X2 matrix of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inF0' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r7' (temp 2X2 matrix of float)
+0:442          matrix-scale (temp 2X2 matrix of float)
+0:442            'inF0' (in float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r8' (temp 2X2 matrix of float)
+0:442          matrix-multiply (temp 2X2 matrix of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inFM1' (in 2X2 matrix of float)
 0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
 0:448    Function Parameters: 
 0:448      'inF0' (in float)
@@ -2126,51 +2520,60 @@
 0:448      'inFM0' (in 3X3 matrix of float)
 0:448      'inFM1' (in 3X3 matrix of float)
 0:?     Sequence
-0:449      move second child to first child (temp float)
-0:449        'r0' (temp float)
-0:449        component-wise multiply (temp float)
-0:449          'inF0' (in float)
-0:449          'inF1' (in float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r1' (temp 3-component vector of float)
-0:449        vector-scale (temp 3-component vector of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inF0' (in float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r2' (temp 3-component vector of float)
-0:449        vector-scale (temp 3-component vector of float)
-0:449          'inF0' (in float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449      move second child to first child (temp float)
-0:449        'r3' (temp float)
-0:449        dot-product (global float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inFV1' (in 3-component vector of float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r4' (temp 3-component vector of float)
-0:449        matrix-times-vector (temp 3-component vector of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r5' (temp 3-component vector of float)
-0:449        vector-times-matrix (temp 3-component vector of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r6' (temp 3X3 matrix of float)
-0:449        matrix-scale (temp 3X3 matrix of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inF0' (in float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r7' (temp 3X3 matrix of float)
-0:449        matrix-scale (temp 3X3 matrix of float)
-0:449          'inF0' (in float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r8' (temp 3X3 matrix of float)
-0:449        matrix-multiply (temp 3X3 matrix of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inFM1' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp float)
+0:449          'r0' (temp float)
+0:449          component-wise multiply (temp float)
+0:449            'inF0' (in float)
+0:449            'inF1' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r1' (temp 3-component vector of float)
+0:449          vector-scale (temp 3-component vector of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inF0' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r2' (temp 3-component vector of float)
+0:449          vector-scale (temp 3-component vector of float)
+0:449            'inF0' (in float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp float)
+0:449          'r3' (temp float)
+0:449          dot-product (global float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inFV1' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r4' (temp 3-component vector of float)
+0:449          matrix-times-vector (temp 3-component vector of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r5' (temp 3-component vector of float)
+0:449          vector-times-matrix (temp 3-component vector of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r6' (temp 3X3 matrix of float)
+0:449          matrix-scale (temp 3X3 matrix of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inF0' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r7' (temp 3X3 matrix of float)
+0:449          matrix-scale (temp 3X3 matrix of float)
+0:449            'inF0' (in float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r8' (temp 3X3 matrix of float)
+0:449          matrix-multiply (temp 3X3 matrix of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inFM1' (in 3X3 matrix of float)
 0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
 0:455    Function Parameters: 
 0:455      'inF0' (in float)
@@ -2180,51 +2583,60 @@
 0:455      'inFM0' (in 4X4 matrix of float)
 0:455      'inFM1' (in 4X4 matrix of float)
 0:?     Sequence
-0:456      move second child to first child (temp float)
-0:456        'r0' (temp float)
-0:456        component-wise multiply (temp float)
-0:456          'inF0' (in float)
-0:456          'inF1' (in float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r1' (temp 4-component vector of float)
-0:456        vector-scale (temp 4-component vector of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inF0' (in float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r2' (temp 4-component vector of float)
-0:456        vector-scale (temp 4-component vector of float)
-0:456          'inF0' (in float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456      move second child to first child (temp float)
-0:456        'r3' (temp float)
-0:456        dot-product (global float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inFV1' (in 4-component vector of float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r4' (temp 4-component vector of float)
-0:456        matrix-times-vector (temp 4-component vector of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r5' (temp 4-component vector of float)
-0:456        vector-times-matrix (temp 4-component vector of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r6' (temp 4X4 matrix of float)
-0:456        matrix-scale (temp 4X4 matrix of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inF0' (in float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r7' (temp 4X4 matrix of float)
-0:456        matrix-scale (temp 4X4 matrix of float)
-0:456          'inF0' (in float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r8' (temp 4X4 matrix of float)
-0:456        matrix-multiply (temp 4X4 matrix of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inFM1' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp float)
+0:456          'r0' (temp float)
+0:456          component-wise multiply (temp float)
+0:456            'inF0' (in float)
+0:456            'inF1' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r1' (temp 4-component vector of float)
+0:456          vector-scale (temp 4-component vector of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inF0' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r2' (temp 4-component vector of float)
+0:456          vector-scale (temp 4-component vector of float)
+0:456            'inF0' (in float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp float)
+0:456          'r3' (temp float)
+0:456          dot-product (global float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inFV1' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r4' (temp 4-component vector of float)
+0:456          matrix-times-vector (temp 4-component vector of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r5' (temp 4-component vector of float)
+0:456          vector-times-matrix (temp 4-component vector of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r6' (temp 4X4 matrix of float)
+0:456          matrix-scale (temp 4X4 matrix of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inF0' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r7' (temp 4X4 matrix of float)
+0:456          matrix-scale (temp 4X4 matrix of float)
+0:456            'inF0' (in float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r8' (temp 4X4 matrix of float)
+0:456          matrix-multiply (temp 4X4 matrix of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inFM1' (in 4X4 matrix of float)
 0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
 0:465    Function Parameters: 
 0:465      'inF0' (in float)
@@ -2237,91 +2649,108 @@
 0:465      'inFM3x4' (in 4X3 matrix of float)
 0:465      'inFM2x4' (in 4X2 matrix of float)
 0:?     Sequence
-0:466      move second child to first child (temp float)
-0:466        'r00' (temp float)
-0:466        component-wise multiply (temp float)
-0:466          'inF0' (in float)
-0:466          'inF1' (in float)
-0:467      move second child to first child (temp 2-component vector of float)
-0:467        'r01' (temp 2-component vector of float)
-0:467        vector-scale (temp 2-component vector of float)
-0:467          'inFV2' (in 2-component vector of float)
-0:467          'inF0' (in float)
-0:468      move second child to first child (temp 3-component vector of float)
-0:468        'r02' (temp 3-component vector of float)
-0:468        vector-scale (temp 3-component vector of float)
-0:468          'inFV3' (in 3-component vector of float)
-0:468          'inF0' (in float)
-0:469      move second child to first child (temp 2-component vector of float)
-0:469        'r03' (temp 2-component vector of float)
-0:469        vector-scale (temp 2-component vector of float)
-0:469          'inF0' (in float)
-0:469          'inFV2' (in 2-component vector of float)
-0:470      move second child to first child (temp 3-component vector of float)
-0:470        'r04' (temp 3-component vector of float)
-0:470        vector-scale (temp 3-component vector of float)
-0:470          'inF0' (in float)
-0:470          'inFV3' (in 3-component vector of float)
-0:471      move second child to first child (temp float)
-0:471        'r05' (temp float)
-0:471        dot-product (global float)
-0:471          'inFV2' (in 2-component vector of float)
-0:471          'inFV2' (in 2-component vector of float)
-0:472      move second child to first child (temp float)
-0:472        'r06' (temp float)
-0:472        dot-product (global float)
-0:472          'inFV3' (in 3-component vector of float)
-0:472          'inFV3' (in 3-component vector of float)
-0:473      move second child to first child (temp 3-component vector of float)
-0:473        'r07' (temp 3-component vector of float)
-0:473        vector-times-matrix (temp 3-component vector of float)
-0:473          'inFV2' (in 2-component vector of float)
-0:473          'inFM2x3' (in 3X2 matrix of float)
-0:474      move second child to first child (temp 2-component vector of float)
-0:474        'r08' (temp 2-component vector of float)
-0:474        vector-times-matrix (temp 2-component vector of float)
-0:474          'inFV3' (in 3-component vector of float)
-0:474          'inFM3x2' (in 2X3 matrix of float)
-0:475      move second child to first child (temp 2-component vector of float)
-0:475        'r09' (temp 2-component vector of float)
-0:475        matrix-times-vector (temp 2-component vector of float)
-0:475          'inFM2x3' (in 3X2 matrix of float)
-0:475          'inFV3' (in 3-component vector of float)
-0:476      move second child to first child (temp 3-component vector of float)
-0:476        'r10' (temp 3-component vector of float)
-0:476        matrix-times-vector (temp 3-component vector of float)
-0:476          'inFM3x2' (in 2X3 matrix of float)
-0:476          'inFV2' (in 2-component vector of float)
-0:477      move second child to first child (temp 3X2 matrix of float)
-0:477        'r11' (temp 3X2 matrix of float)
-0:477        matrix-scale (temp 3X2 matrix of float)
-0:477          'inFM2x3' (in 3X2 matrix of float)
-0:477          'inF0' (in float)
-0:478      move second child to first child (temp 2X3 matrix of float)
-0:478        'r12' (temp 2X3 matrix of float)
-0:478        matrix-scale (temp 2X3 matrix of float)
-0:478          'inFM3x2' (in 2X3 matrix of float)
-0:478          'inF0' (in float)
-0:479      move second child to first child (temp 2X2 matrix of float)
-0:479        'r13' (temp 2X2 matrix of float)
-0:479        matrix-multiply (temp 2X2 matrix of float)
-0:479          'inFM2x3' (in 3X2 matrix of float)
-0:479          'inFM3x2' (in 2X3 matrix of float)
-0:480      move second child to first child (temp 3X2 matrix of float)
-0:480        'r14' (temp 3X2 matrix of float)
-0:480        matrix-multiply (temp 3X2 matrix of float)
-0:480          'inFM2x3' (in 3X2 matrix of float)
-0:480          'inFM3x3' (in 3X3 matrix of float)
-0:481      move second child to first child (temp 4X2 matrix of float)
-0:481        'r15' (temp 4X2 matrix of float)
-0:481        matrix-multiply (temp 4X2 matrix of float)
-0:481          'inFM2x3' (in 3X2 matrix of float)
-0:481          'inFM3x4' (in 4X3 matrix of float)
-0:482      move second child to first child (temp 4X3 matrix of float)
-0:482        'r16' (temp 4X3 matrix of float)
-0:482        matrix-multiply (temp 4X3 matrix of float)
-0:482          'inFM3x2' (in 2X3 matrix of float)
-0:482          'inFM2x4' (in 4X2 matrix of float)
+0:466      Sequence
+0:466        move second child to first child (temp float)
+0:466          'r00' (temp float)
+0:466          component-wise multiply (temp float)
+0:466            'inF0' (in float)
+0:466            'inF1' (in float)
+0:467      Sequence
+0:467        move second child to first child (temp 2-component vector of float)
+0:467          'r01' (temp 2-component vector of float)
+0:467          vector-scale (temp 2-component vector of float)
+0:467            'inFV2' (in 2-component vector of float)
+0:467            'inF0' (in float)
+0:468      Sequence
+0:468        move second child to first child (temp 3-component vector of float)
+0:468          'r02' (temp 3-component vector of float)
+0:468          vector-scale (temp 3-component vector of float)
+0:468            'inFV3' (in 3-component vector of float)
+0:468            'inF0' (in float)
+0:469      Sequence
+0:469        move second child to first child (temp 2-component vector of float)
+0:469          'r03' (temp 2-component vector of float)
+0:469          vector-scale (temp 2-component vector of float)
+0:469            'inF0' (in float)
+0:469            'inFV2' (in 2-component vector of float)
+0:470      Sequence
+0:470        move second child to first child (temp 3-component vector of float)
+0:470          'r04' (temp 3-component vector of float)
+0:470          vector-scale (temp 3-component vector of float)
+0:470            'inF0' (in float)
+0:470            'inFV3' (in 3-component vector of float)
+0:471      Sequence
+0:471        move second child to first child (temp float)
+0:471          'r05' (temp float)
+0:471          dot-product (global float)
+0:471            'inFV2' (in 2-component vector of float)
+0:471            'inFV2' (in 2-component vector of float)
+0:472      Sequence
+0:472        move second child to first child (temp float)
+0:472          'r06' (temp float)
+0:472          dot-product (global float)
+0:472            'inFV3' (in 3-component vector of float)
+0:472            'inFV3' (in 3-component vector of float)
+0:473      Sequence
+0:473        move second child to first child (temp 3-component vector of float)
+0:473          'r07' (temp 3-component vector of float)
+0:473          vector-times-matrix (temp 3-component vector of float)
+0:473            'inFV2' (in 2-component vector of float)
+0:473            'inFM2x3' (in 3X2 matrix of float)
+0:474      Sequence
+0:474        move second child to first child (temp 2-component vector of float)
+0:474          'r08' (temp 2-component vector of float)
+0:474          vector-times-matrix (temp 2-component vector of float)
+0:474            'inFV3' (in 3-component vector of float)
+0:474            'inFM3x2' (in 2X3 matrix of float)
+0:475      Sequence
+0:475        move second child to first child (temp 2-component vector of float)
+0:475          'r09' (temp 2-component vector of float)
+0:475          matrix-times-vector (temp 2-component vector of float)
+0:475            'inFM2x3' (in 3X2 matrix of float)
+0:475            'inFV3' (in 3-component vector of float)
+0:476      Sequence
+0:476        move second child to first child (temp 3-component vector of float)
+0:476          'r10' (temp 3-component vector of float)
+0:476          matrix-times-vector (temp 3-component vector of float)
+0:476            'inFM3x2' (in 2X3 matrix of float)
+0:476            'inFV2' (in 2-component vector of float)
+0:477      Sequence
+0:477        move second child to first child (temp 3X2 matrix of float)
+0:477          'r11' (temp 3X2 matrix of float)
+0:477          matrix-scale (temp 3X2 matrix of float)
+0:477            'inFM2x3' (in 3X2 matrix of float)
+0:477            'inF0' (in float)
+0:478      Sequence
+0:478        move second child to first child (temp 2X3 matrix of float)
+0:478          'r12' (temp 2X3 matrix of float)
+0:478          matrix-scale (temp 2X3 matrix of float)
+0:478            'inFM3x2' (in 2X3 matrix of float)
+0:478            'inF0' (in float)
+0:479      Sequence
+0:479        move second child to first child (temp 2X2 matrix of float)
+0:479          'r13' (temp 2X2 matrix of float)
+0:479          matrix-multiply (temp 2X2 matrix of float)
+0:479            'inFM2x3' (in 3X2 matrix of float)
+0:479            'inFM3x2' (in 2X3 matrix of float)
+0:480      Sequence
+0:480        move second child to first child (temp 3X2 matrix of float)
+0:480          'r14' (temp 3X2 matrix of float)
+0:480          matrix-multiply (temp 3X2 matrix of float)
+0:480            'inFM2x3' (in 3X2 matrix of float)
+0:480            'inFM3x3' (in 3X3 matrix of float)
+0:481      Sequence
+0:481        move second child to first child (temp 4X2 matrix of float)
+0:481          'r15' (temp 4X2 matrix of float)
+0:481          matrix-multiply (temp 4X2 matrix of float)
+0:481            'inFM2x3' (in 3X2 matrix of float)
+0:481            'inFM3x4' (in 4X3 matrix of float)
+0:482      Sequence
+0:482        move second child to first child (temp 4X3 matrix of float)
+0:482          'r16' (temp 4X3 matrix of float)
+0:482          matrix-multiply (temp 4X3 matrix of float)
+0:482            'inFM3x2' (in 2X3 matrix of float)
+0:482            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
 0:?     'gs_ua' (temp uint)
 0:?     'gs_ub' (temp uint)
@@ -2351,57 +2780,69 @@
 0:17      'inU0' (in uint)
 0:17      'inU1' (in uint)
 0:?     Sequence
-0:20      move second child to first child (temp bool)
-0:20        'r000' (temp bool)
-0:20        all (global bool)
-0:20          'inF0' (in float)
-0:21      move second child to first child (temp float)
-0:21        'r001' (temp float)
-0:21        Absolute value (global float)
-0:21          'inF0' (in float)
-0:22      move second child to first child (temp float)
-0:22        'r002' (temp float)
-0:22        arc cosine (global float)
-0:22          'inF0' (in float)
-0:23      move second child to first child (temp bool)
-0:23        'r003' (temp bool)
-0:23        any (global bool)
-0:23          'inF0' (in float)
-0:24      move second child to first child (temp float)
-0:24        'r004' (temp float)
-0:24        arc sine (global float)
-0:24          'inF0' (in float)
-0:25      move second child to first child (temp int)
-0:25        'r005' (temp int)
-0:25        floatBitsToInt (global int)
-0:25          'inF0' (in float)
-0:26      move second child to first child (temp uint)
-0:26        'r006' (temp uint)
-0:26        floatBitsToUint (global uint)
-0:26          'inF0' (in float)
-0:27      move second child to first child (temp float)
-0:27        'r007' (temp float)
-0:27        intBitsToFloat (global float)
-0:27          'inU0' (in uint)
-0:29      move second child to first child (temp float)
-0:29        'r009' (temp float)
-0:29        arc tangent (global float)
-0:29          'inF0' (in float)
-0:30      move second child to first child (temp float)
-0:30        'r010' (temp float)
-0:30        arc tangent (global float)
-0:30          'inF0' (in float)
-0:30          'inF1' (in float)
-0:31      move second child to first child (temp float)
-0:31        'r011' (temp float)
-0:31        Ceiling (global float)
-0:31          'inF0' (in float)
-0:32      move second child to first child (temp float)
-0:32        'r012' (temp float)
-0:32        clamp (global float)
-0:32          'inF0' (in float)
-0:32          'inF1' (in float)
-0:32          'inF2' (in float)
+0:20      Sequence
+0:20        move second child to first child (temp bool)
+0:20          'r000' (temp bool)
+0:20          all (global bool)
+0:20            'inF0' (in float)
+0:21      Sequence
+0:21        move second child to first child (temp float)
+0:21          'r001' (temp float)
+0:21          Absolute value (global float)
+0:21            'inF0' (in float)
+0:22      Sequence
+0:22        move second child to first child (temp float)
+0:22          'r002' (temp float)
+0:22          arc cosine (global float)
+0:22            'inF0' (in float)
+0:23      Sequence
+0:23        move second child to first child (temp bool)
+0:23          'r003' (temp bool)
+0:23          any (global bool)
+0:23            'inF0' (in float)
+0:24      Sequence
+0:24        move second child to first child (temp float)
+0:24          'r004' (temp float)
+0:24          arc sine (global float)
+0:24            'inF0' (in float)
+0:25      Sequence
+0:25        move second child to first child (temp int)
+0:25          'r005' (temp int)
+0:25          floatBitsToInt (global int)
+0:25            'inF0' (in float)
+0:26      Sequence
+0:26        move second child to first child (temp uint)
+0:26          'r006' (temp uint)
+0:26          floatBitsToUint (global uint)
+0:26            'inF0' (in float)
+0:27      Sequence
+0:27        move second child to first child (temp float)
+0:27          'r007' (temp float)
+0:27          intBitsToFloat (global float)
+0:27            'inU0' (in uint)
+0:29      Sequence
+0:29        move second child to first child (temp float)
+0:29          'r009' (temp float)
+0:29          arc tangent (global float)
+0:29            'inF0' (in float)
+0:30      Sequence
+0:30        move second child to first child (temp float)
+0:30          'r010' (temp float)
+0:30          arc tangent (global float)
+0:30            'inF0' (in float)
+0:30            'inF1' (in float)
+0:31      Sequence
+0:31        move second child to first child (temp float)
+0:31          'r011' (temp float)
+0:31          Ceiling (global float)
+0:31            'inF0' (in float)
+0:32      Sequence
+0:32        move second child to first child (temp float)
+0:32          'r012' (temp float)
+0:32          clamp (global float)
+0:32            'inF0' (in float)
+0:32            'inF1' (in float)
+0:32            'inF2' (in float)
 0:33      Test condition and select (temp void)
 0:33        Condition
 0:33        Compare Less Than (temp bool)
@@ -2410,177 +2851,214 @@
 0:33            0.000000
 0:33        true case
 0:33        Branch: Kill
-0:34      move second child to first child (temp float)
-0:34        'r014' (temp float)
-0:34        cosine (global float)
-0:34          'inF0' (in float)
-0:35      move second child to first child (temp float)
-0:35        'r015' (temp float)
-0:35        hyp. cosine (global float)
-0:35          'inF0' (in float)
-0:36      move second child to first child (temp uint)
-0:36        'r016' (temp uint)
-0:36        bitCount (global uint)
-0:36          Constant:
-0:36            7 (const uint)
-0:37      move second child to first child (temp float)
-0:37        'r017' (temp float)
-0:37        dPdx (global float)
-0:37          'inF0' (in float)
-0:38      move second child to first child (temp float)
-0:38        'r018' (temp float)
-0:38        dPdxCoarse (global float)
-0:38          'inF0' (in float)
-0:39      move second child to first child (temp float)
-0:39        'r019' (temp float)
-0:39        dPdxFine (global float)
-0:39          'inF0' (in float)
-0:40      move second child to first child (temp float)
-0:40        'r020' (temp float)
-0:40        dPdy (global float)
-0:40          'inF0' (in float)
-0:41      move second child to first child (temp float)
-0:41        'r021' (temp float)
-0:41        dPdyCoarse (global float)
-0:41          'inF0' (in float)
-0:42      move second child to first child (temp float)
-0:42        'r022' (temp float)
-0:42        dPdyFine (global float)
-0:42          'inF0' (in float)
-0:43      move second child to first child (temp float)
-0:43        'r023' (temp float)
-0:43        degrees (global float)
-0:43          'inF0' (in float)
-0:47      move second child to first child (temp float)
-0:47        'r027' (temp float)
-0:47        exp (global float)
-0:47          'inF0' (in float)
-0:48      move second child to first child (temp float)
-0:48        'r028' (temp float)
-0:48        exp2 (global float)
-0:48          'inF0' (in float)
-0:49      move second child to first child (temp uint)
-0:49        'r029' (temp uint)
-0:49        Convert int to uint (temp uint)
-0:49          findMSB (global int)
-0:49            Constant:
-0:49              7 (const int)
-0:50      move second child to first child (temp uint)
-0:50        'r030' (temp uint)
-0:50        Convert int to uint (temp uint)
-0:50          findLSB (global int)
-0:50            Constant:
-0:50              7 (const int)
-0:51      move second child to first child (temp float)
-0:51        'r031' (temp float)
-0:51        Floor (global float)
-0:51          'inF0' (in float)
-0:53      move second child to first child (temp float)
-0:53        'r033' (temp float)
-0:53        mod (global float)
-0:53          'inF0' (in float)
-0:53          'inF1' (in float)
-0:54      move second child to first child (temp float)
-0:54        'r034' (temp float)
-0:54        Fraction (global float)
-0:54          'inF0' (in float)
-0:55      move second child to first child (temp float)
-0:55        'r035' (temp float)
-0:55        frexp (global float)
-0:55          'inF0' (in float)
-0:55          'inF1' (in float)
-0:56      move second child to first child (temp float)
-0:56        'r036' (temp float)
-0:56        fwidth (global float)
-0:56          'inF0' (in float)
-0:57      move second child to first child (temp bool)
-0:57        'r037' (temp bool)
-0:57        isinf (global bool)
-0:57          'inF0' (in float)
-0:58      move second child to first child (temp bool)
-0:58        'r038' (temp bool)
-0:58        isnan (global bool)
-0:58          'inF0' (in float)
-0:59      move second child to first child (temp float)
-0:59        'r039' (temp float)
-0:59        ldexp (global float)
-0:59          'inF0' (in float)
-0:59          'inF1' (in float)
-0:60      move second child to first child (temp float)
-0:60        'r039a' (temp float)
-0:60        mix (global float)
-0:60          'inF0' (in float)
-0:60          'inF1' (in float)
-0:60          'inF2' (in float)
-0:61      move second child to first child (temp float)
-0:61        'r040' (temp float)
-0:61        log (global float)
-0:61          'inF0' (in float)
-0:62      move second child to first child (temp float)
-0:62        'r041' (temp float)
-0:62        component-wise multiply (temp float)
-0:62          log2 (temp float)
-0:62            'inF0' (in float)
-0:62          Constant:
-0:62            0.301030
-0:63      move second child to first child (temp float)
-0:63        'r042' (temp float)
-0:63        log2 (global float)
-0:63          'inF0' (in float)
-0:64      move second child to first child (temp float)
-0:64        'r043' (temp float)
-0:64        max (global float)
-0:64          'inF0' (in float)
-0:64          'inF1' (in float)
-0:65      move second child to first child (temp float)
-0:65        'r044' (temp float)
-0:65        min (global float)
-0:65          'inF0' (in float)
-0:65          'inF1' (in float)
-0:66      move second child to first child (temp float)
-0:66        'r045' (temp float)
-0:66        pow (global float)
-0:66          'inF0' (in float)
-0:66          'inF1' (in float)
-0:67      move second child to first child (temp float)
-0:67        'r046' (temp float)
-0:67        radians (global float)
-0:67          'inF0' (in float)
-0:68      move second child to first child (temp float)
-0:68        'r047' (temp float)
-0:68        divide (temp float)
-0:68          Constant:
-0:68            1.000000
-0:68          'inF0' (in float)
-0:69      move second child to first child (temp uint)
-0:69        'r048' (temp uint)
-0:69        bitFieldReverse (global uint)
-0:69          Constant:
-0:69            2 (const uint)
-0:70      move second child to first child (temp float)
-0:70        'r049' (temp float)
-0:70        roundEven (global float)
-0:70          'inF0' (in float)
-0:71      move second child to first child (temp float)
-0:71        'r050' (temp float)
-0:71        inverse sqrt (global float)
-0:71          'inF0' (in float)
-0:72      move second child to first child (temp float)
-0:72        'r051' (temp float)
-0:72        clamp (temp float)
-0:72          'inF0' (in float)
-0:72          Constant:
-0:72            0.000000
-0:72          Constant:
-0:72            1.000000
-0:73      move second child to first child (temp float)
-0:73        'r052' (temp float)
-0:73        Sign (global float)
-0:73          'inF0' (in float)
-0:74      move second child to first child (temp float)
-0:74        'r053' (temp float)
-0:74        sine (global float)
-0:74          'inF0' (in float)
+0:34      Sequence
+0:34        move second child to first child (temp float)
+0:34          'r014' (temp float)
+0:34          cosine (global float)
+0:34            'inF0' (in float)
+0:35      Sequence
+0:35        move second child to first child (temp float)
+0:35          'r015' (temp float)
+0:35          hyp. cosine (global float)
+0:35            'inF0' (in float)
+0:36      Sequence
+0:36        move second child to first child (temp uint)
+0:36          'r016' (temp uint)
+0:36          bitCount (global uint)
+0:36            Constant:
+0:36              7 (const uint)
+0:37      Sequence
+0:37        move second child to first child (temp float)
+0:37          'r017' (temp float)
+0:37          dPdx (global float)
+0:37            'inF0' (in float)
+0:38      Sequence
+0:38        move second child to first child (temp float)
+0:38          'r018' (temp float)
+0:38          dPdxCoarse (global float)
+0:38            'inF0' (in float)
+0:39      Sequence
+0:39        move second child to first child (temp float)
+0:39          'r019' (temp float)
+0:39          dPdxFine (global float)
+0:39            'inF0' (in float)
+0:40      Sequence
+0:40        move second child to first child (temp float)
+0:40          'r020' (temp float)
+0:40          dPdy (global float)
+0:40            'inF0' (in float)
+0:41      Sequence
+0:41        move second child to first child (temp float)
+0:41          'r021' (temp float)
+0:41          dPdyCoarse (global float)
+0:41            'inF0' (in float)
+0:42      Sequence
+0:42        move second child to first child (temp float)
+0:42          'r022' (temp float)
+0:42          dPdyFine (global float)
+0:42            'inF0' (in float)
+0:43      Sequence
+0:43        move second child to first child (temp float)
+0:43          'r023' (temp float)
+0:43          degrees (global float)
+0:43            'inF0' (in float)
+0:47      Sequence
+0:47        move second child to first child (temp float)
+0:47          'r027' (temp float)
+0:47          exp (global float)
+0:47            'inF0' (in float)
+0:48      Sequence
+0:48        move second child to first child (temp float)
+0:48          'r028' (temp float)
+0:48          exp2 (global float)
+0:48            'inF0' (in float)
+0:49      Sequence
+0:49        move second child to first child (temp uint)
+0:49          'r029' (temp uint)
+0:49          Convert int to uint (temp uint)
+0:49            findMSB (global int)
+0:49              Constant:
+0:49                7 (const int)
+0:50      Sequence
+0:50        move second child to first child (temp uint)
+0:50          'r030' (temp uint)
+0:50          Convert int to uint (temp uint)
+0:50            findLSB (global int)
+0:50              Constant:
+0:50                7 (const int)
+0:51      Sequence
+0:51        move second child to first child (temp float)
+0:51          'r031' (temp float)
+0:51          Floor (global float)
+0:51            'inF0' (in float)
+0:53      Sequence
+0:53        move second child to first child (temp float)
+0:53          'r033' (temp float)
+0:53          mod (global float)
+0:53            'inF0' (in float)
+0:53            'inF1' (in float)
+0:54      Sequence
+0:54        move second child to first child (temp float)
+0:54          'r034' (temp float)
+0:54          Fraction (global float)
+0:54            'inF0' (in float)
+0:55      Sequence
+0:55        move second child to first child (temp float)
+0:55          'r035' (temp float)
+0:55          frexp (global float)
+0:55            'inF0' (in float)
+0:55            'inF1' (in float)
+0:56      Sequence
+0:56        move second child to first child (temp float)
+0:56          'r036' (temp float)
+0:56          fwidth (global float)
+0:56            'inF0' (in float)
+0:57      Sequence
+0:57        move second child to first child (temp bool)
+0:57          'r037' (temp bool)
+0:57          isinf (global bool)
+0:57            'inF0' (in float)
+0:58      Sequence
+0:58        move second child to first child (temp bool)
+0:58          'r038' (temp bool)
+0:58          isnan (global bool)
+0:58            'inF0' (in float)
+0:59      Sequence
+0:59        move second child to first child (temp float)
+0:59          'r039' (temp float)
+0:59          ldexp (global float)
+0:59            'inF0' (in float)
+0:59            'inF1' (in float)
+0:60      Sequence
+0:60        move second child to first child (temp float)
+0:60          'r039a' (temp float)
+0:60          mix (global float)
+0:60            'inF0' (in float)
+0:60            'inF1' (in float)
+0:60            'inF2' (in float)
+0:61      Sequence
+0:61        move second child to first child (temp float)
+0:61          'r040' (temp float)
+0:61          log (global float)
+0:61            'inF0' (in float)
+0:62      Sequence
+0:62        move second child to first child (temp float)
+0:62          'r041' (temp float)
+0:62          component-wise multiply (temp float)
+0:62            log2 (temp float)
+0:62              'inF0' (in float)
+0:62            Constant:
+0:62              0.301030
+0:63      Sequence
+0:63        move second child to first child (temp float)
+0:63          'r042' (temp float)
+0:63          log2 (global float)
+0:63            'inF0' (in float)
+0:64      Sequence
+0:64        move second child to first child (temp float)
+0:64          'r043' (temp float)
+0:64          max (global float)
+0:64            'inF0' (in float)
+0:64            'inF1' (in float)
+0:65      Sequence
+0:65        move second child to first child (temp float)
+0:65          'r044' (temp float)
+0:65          min (global float)
+0:65            'inF0' (in float)
+0:65            'inF1' (in float)
+0:66      Sequence
+0:66        move second child to first child (temp float)
+0:66          'r045' (temp float)
+0:66          pow (global float)
+0:66            'inF0' (in float)
+0:66            'inF1' (in float)
+0:67      Sequence
+0:67        move second child to first child (temp float)
+0:67          'r046' (temp float)
+0:67          radians (global float)
+0:67            'inF0' (in float)
+0:68      Sequence
+0:68        move second child to first child (temp float)
+0:68          'r047' (temp float)
+0:68          divide (temp float)
+0:68            Constant:
+0:68              1.000000
+0:68            'inF0' (in float)
+0:69      Sequence
+0:69        move second child to first child (temp uint)
+0:69          'r048' (temp uint)
+0:69          bitFieldReverse (global uint)
+0:69            Constant:
+0:69              2 (const uint)
+0:70      Sequence
+0:70        move second child to first child (temp float)
+0:70          'r049' (temp float)
+0:70          roundEven (global float)
+0:70            'inF0' (in float)
+0:71      Sequence
+0:71        move second child to first child (temp float)
+0:71          'r050' (temp float)
+0:71          inverse sqrt (global float)
+0:71            'inF0' (in float)
+0:72      Sequence
+0:72        move second child to first child (temp float)
+0:72          'r051' (temp float)
+0:72          clamp (temp float)
+0:72            'inF0' (in float)
+0:72            Constant:
+0:72              0.000000
+0:72            Constant:
+0:72              1.000000
+0:73      Sequence
+0:73        move second child to first child (temp float)
+0:73          'r052' (temp float)
+0:73          Sign (global float)
+0:73            'inF0' (in float)
+0:74      Sequence
+0:74        move second child to first child (temp float)
+0:74          'r053' (temp float)
+0:74          sine (global float)
+0:74            'inF0' (in float)
 0:75      Sequence
 0:75        move second child to first child (temp float)
 0:75          'inF1' (in float)
@@ -2590,37 +3068,44 @@
 0:75          'inF2' (in float)
 0:75          cosine (temp float)
 0:75            'inF0' (in float)
-0:76      move second child to first child (temp float)
-0:76        'r055' (temp float)
-0:76        hyp. sine (global float)
-0:76          'inF0' (in float)
-0:77      move second child to first child (temp float)
-0:77        'r056' (temp float)
-0:77        smoothstep (global float)
-0:77          'inF0' (in float)
-0:77          'inF1' (in float)
-0:77          'inF2' (in float)
-0:78      move second child to first child (temp float)
-0:78        'r057' (temp float)
-0:78        sqrt (global float)
-0:78          'inF0' (in float)
-0:79      move second child to first child (temp float)
-0:79        'r058' (temp float)
-0:79        step (global float)
-0:79          'inF0' (in float)
-0:79          'inF1' (in float)
-0:80      move second child to first child (temp float)
-0:80        'r059' (temp float)
-0:80        tangent (global float)
-0:80          'inF0' (in float)
-0:81      move second child to first child (temp float)
-0:81        'r060' (temp float)
-0:81        hyp. tangent (global float)
-0:81          'inF0' (in float)
-0:83      move second child to first child (temp float)
-0:83        'r061' (temp float)
-0:83        trunc (global float)
-0:83          'inF0' (in float)
+0:76      Sequence
+0:76        move second child to first child (temp float)
+0:76          'r055' (temp float)
+0:76          hyp. sine (global float)
+0:76            'inF0' (in float)
+0:77      Sequence
+0:77        move second child to first child (temp float)
+0:77          'r056' (temp float)
+0:77          smoothstep (global float)
+0:77            'inF0' (in float)
+0:77            'inF1' (in float)
+0:77            'inF2' (in float)
+0:78      Sequence
+0:78        move second child to first child (temp float)
+0:78          'r057' (temp float)
+0:78          sqrt (global float)
+0:78            'inF0' (in float)
+0:79      Sequence
+0:79        move second child to first child (temp float)
+0:79          'r058' (temp float)
+0:79          step (global float)
+0:79            'inF0' (in float)
+0:79            'inF1' (in float)
+0:80      Sequence
+0:80        move second child to first child (temp float)
+0:80          'r059' (temp float)
+0:80          tangent (global float)
+0:80            'inF0' (in float)
+0:81      Sequence
+0:81        move second child to first child (temp float)
+0:81          'r060' (temp float)
+0:81          hyp. tangent (global float)
+0:81            'inF0' (in float)
+0:83      Sequence
+0:83        move second child to first child (temp float)
+0:83          'r061' (temp float)
+0:83          trunc (global float)
+0:83            'inF0' (in float)
 0:85      Branch: Return with expression
 0:85        Constant:
 0:85          0.000000
@@ -2641,57 +3126,69 @@
 0:95      'inU0' (in 2-component vector of uint)
 0:95      'inU1' (in 2-component vector of uint)
 0:?     Sequence
-0:98      move second child to first child (temp bool)
-0:98        'r000' (temp bool)
-0:98        all (global bool)
-0:98          'inF0' (in 2-component vector of float)
-0:99      move second child to first child (temp 2-component vector of float)
-0:99        'r001' (temp 2-component vector of float)
-0:99        Absolute value (global 2-component vector of float)
-0:99          'inF0' (in 2-component vector of float)
-0:100      move second child to first child (temp 2-component vector of float)
-0:100        'r002' (temp 2-component vector of float)
-0:100        arc cosine (global 2-component vector of float)
-0:100          'inF0' (in 2-component vector of float)
-0:101      move second child to first child (temp bool)
-0:101        'r003' (temp bool)
-0:101        any (global bool)
-0:101          'inF0' (in 2-component vector of float)
-0:102      move second child to first child (temp 2-component vector of float)
-0:102        'r004' (temp 2-component vector of float)
-0:102        arc sine (global 2-component vector of float)
-0:102          'inF0' (in 2-component vector of float)
-0:103      move second child to first child (temp 2-component vector of int)
-0:103        'r005' (temp 2-component vector of int)
-0:103        floatBitsToInt (global 2-component vector of int)
-0:103          'inF0' (in 2-component vector of float)
-0:104      move second child to first child (temp 2-component vector of uint)
-0:104        'r006' (temp 2-component vector of uint)
-0:104        floatBitsToUint (global 2-component vector of uint)
-0:104          'inF0' (in 2-component vector of float)
-0:105      move second child to first child (temp 2-component vector of float)
-0:105        'r007' (temp 2-component vector of float)
-0:105        intBitsToFloat (global 2-component vector of float)
-0:105          'inU0' (in 2-component vector of uint)
-0:107      move second child to first child (temp 2-component vector of float)
-0:107        'r009' (temp 2-component vector of float)
-0:107        arc tangent (global 2-component vector of float)
-0:107          'inF0' (in 2-component vector of float)
-0:108      move second child to first child (temp 2-component vector of float)
-0:108        'r010' (temp 2-component vector of float)
-0:108        arc tangent (global 2-component vector of float)
-0:108          'inF0' (in 2-component vector of float)
-0:108          'inF1' (in 2-component vector of float)
-0:109      move second child to first child (temp 2-component vector of float)
-0:109        'r011' (temp 2-component vector of float)
-0:109        Ceiling (global 2-component vector of float)
-0:109          'inF0' (in 2-component vector of float)
-0:110      move second child to first child (temp 2-component vector of float)
-0:110        'r012' (temp 2-component vector of float)
-0:110        clamp (global 2-component vector of float)
-0:110          'inF0' (in 2-component vector of float)
-0:110          'inF1' (in 2-component vector of float)
-0:110          'inF2' (in 2-component vector of float)
+0:98      Sequence
+0:98        move second child to first child (temp bool)
+0:98          'r000' (temp bool)
+0:98          all (global bool)
+0:98            'inF0' (in 2-component vector of float)
+0:99      Sequence
+0:99        move second child to first child (temp 2-component vector of float)
+0:99          'r001' (temp 2-component vector of float)
+0:99          Absolute value (global 2-component vector of float)
+0:99            'inF0' (in 2-component vector of float)
+0:100      Sequence
+0:100        move second child to first child (temp 2-component vector of float)
+0:100          'r002' (temp 2-component vector of float)
+0:100          arc cosine (global 2-component vector of float)
+0:100            'inF0' (in 2-component vector of float)
+0:101      Sequence
+0:101        move second child to first child (temp bool)
+0:101          'r003' (temp bool)
+0:101          any (global bool)
+0:101            'inF0' (in 2-component vector of float)
+0:102      Sequence
+0:102        move second child to first child (temp 2-component vector of float)
+0:102          'r004' (temp 2-component vector of float)
+0:102          arc sine (global 2-component vector of float)
+0:102            'inF0' (in 2-component vector of float)
+0:103      Sequence
+0:103        move second child to first child (temp 2-component vector of int)
+0:103          'r005' (temp 2-component vector of int)
+0:103          floatBitsToInt (global 2-component vector of int)
+0:103            'inF0' (in 2-component vector of float)
+0:104      Sequence
+0:104        move second child to first child (temp 2-component vector of uint)
+0:104          'r006' (temp 2-component vector of uint)
+0:104          floatBitsToUint (global 2-component vector of uint)
+0:104            'inF0' (in 2-component vector of float)
+0:105      Sequence
+0:105        move second child to first child (temp 2-component vector of float)
+0:105          'r007' (temp 2-component vector of float)
+0:105          intBitsToFloat (global 2-component vector of float)
+0:105            'inU0' (in 2-component vector of uint)
+0:107      Sequence
+0:107        move second child to first child (temp 2-component vector of float)
+0:107          'r009' (temp 2-component vector of float)
+0:107          arc tangent (global 2-component vector of float)
+0:107            'inF0' (in 2-component vector of float)
+0:108      Sequence
+0:108        move second child to first child (temp 2-component vector of float)
+0:108          'r010' (temp 2-component vector of float)
+0:108          arc tangent (global 2-component vector of float)
+0:108            'inF0' (in 2-component vector of float)
+0:108            'inF1' (in 2-component vector of float)
+0:109      Sequence
+0:109        move second child to first child (temp 2-component vector of float)
+0:109          'r011' (temp 2-component vector of float)
+0:109          Ceiling (global 2-component vector of float)
+0:109            'inF0' (in 2-component vector of float)
+0:110      Sequence
+0:110        move second child to first child (temp 2-component vector of float)
+0:110          'r012' (temp 2-component vector of float)
+0:110          clamp (global 2-component vector of float)
+0:110            'inF0' (in 2-component vector of float)
+0:110            'inF1' (in 2-component vector of float)
+0:110            'inF2' (in 2-component vector of float)
 0:111      Test condition and select (temp void)
 0:111        Condition
 0:111        any (temp bool)
@@ -2702,215 +3199,259 @@
 0:111              0.000000
 0:111        true case
 0:111        Branch: Kill
-0:112      move second child to first child (temp 2-component vector of float)
-0:112        'r013' (temp 2-component vector of float)
-0:112        cosine (global 2-component vector of float)
-0:112          'inF0' (in 2-component vector of float)
-0:113      move second child to first child (temp 2-component vector of float)
-0:113        'r015' (temp 2-component vector of float)
-0:113        hyp. cosine (global 2-component vector of float)
-0:113          'inF0' (in 2-component vector of float)
-0:114      move second child to first child (temp 2-component vector of uint)
-0:114        'r016' (temp 2-component vector of uint)
-0:?         bitCount (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             3 (const uint)
-0:115      move second child to first child (temp 2-component vector of float)
-0:115        'r017' (temp 2-component vector of float)
-0:115        dPdx (global 2-component vector of float)
-0:115          'inF0' (in 2-component vector of float)
-0:116      move second child to first child (temp 2-component vector of float)
-0:116        'r018' (temp 2-component vector of float)
-0:116        dPdxCoarse (global 2-component vector of float)
-0:116          'inF0' (in 2-component vector of float)
-0:117      move second child to first child (temp 2-component vector of float)
-0:117        'r019' (temp 2-component vector of float)
-0:117        dPdxFine (global 2-component vector of float)
-0:117          'inF0' (in 2-component vector of float)
-0:118      move second child to first child (temp 2-component vector of float)
-0:118        'r020' (temp 2-component vector of float)
-0:118        dPdy (global 2-component vector of float)
-0:118          'inF0' (in 2-component vector of float)
-0:119      move second child to first child (temp 2-component vector of float)
-0:119        'r021' (temp 2-component vector of float)
-0:119        dPdyCoarse (global 2-component vector of float)
-0:119          'inF0' (in 2-component vector of float)
-0:120      move second child to first child (temp 2-component vector of float)
-0:120        'r022' (temp 2-component vector of float)
-0:120        dPdyFine (global 2-component vector of float)
-0:120          'inF0' (in 2-component vector of float)
-0:121      move second child to first child (temp 2-component vector of float)
-0:121        'r023' (temp 2-component vector of float)
-0:121        degrees (global 2-component vector of float)
-0:121          'inF0' (in 2-component vector of float)
-0:125      move second child to first child (temp float)
-0:125        'r026' (temp float)
-0:125        distance (global float)
-0:125          'inF0' (in 2-component vector of float)
-0:125          'inF1' (in 2-component vector of float)
-0:126      move second child to first child (temp float)
-0:126        'r027' (temp float)
-0:126        dot-product (global float)
-0:126          'inF0' (in 2-component vector of float)
-0:126          'inF1' (in 2-component vector of float)
-0:130      move second child to first child (temp 2-component vector of float)
-0:130        'r028' (temp 2-component vector of float)
-0:130        exp (global 2-component vector of float)
-0:130          'inF0' (in 2-component vector of float)
-0:131      move second child to first child (temp 2-component vector of float)
-0:131        'r029' (temp 2-component vector of float)
-0:131        exp2 (global 2-component vector of float)
-0:131          'inF0' (in 2-component vector of float)
-0:132      move second child to first child (temp 2-component vector of float)
-0:132        'r030' (temp 2-component vector of float)
-0:132        face-forward (global 2-component vector of float)
-0:132          'inF0' (in 2-component vector of float)
-0:132          'inF1' (in 2-component vector of float)
-0:132          'inF2' (in 2-component vector of float)
-0:133      move second child to first child (temp 2-component vector of uint)
-0:133        'r031' (temp 2-component vector of uint)
-0:?         findMSB (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:134      move second child to first child (temp 2-component vector of uint)
-0:134        'r032' (temp 2-component vector of uint)
-0:?         findLSB (global 2-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:135      move second child to first child (temp 2-component vector of float)
-0:135        'r033' (temp 2-component vector of float)
-0:135        Floor (global 2-component vector of float)
-0:135          'inF0' (in 2-component vector of float)
-0:137      move second child to first child (temp 2-component vector of float)
-0:137        'r035' (temp 2-component vector of float)
-0:137        mod (global 2-component vector of float)
-0:137          'inF0' (in 2-component vector of float)
-0:137          'inF1' (in 2-component vector of float)
-0:138      move second child to first child (temp 2-component vector of float)
-0:138        'r036' (temp 2-component vector of float)
-0:138        Fraction (global 2-component vector of float)
-0:138          'inF0' (in 2-component vector of float)
-0:139      move second child to first child (temp 2-component vector of float)
-0:139        'r037' (temp 2-component vector of float)
-0:139        frexp (global 2-component vector of float)
-0:139          'inF0' (in 2-component vector of float)
-0:139          'inF1' (in 2-component vector of float)
-0:140      move second child to first child (temp 2-component vector of float)
-0:140        'r038' (temp 2-component vector of float)
-0:140        fwidth (global 2-component vector of float)
-0:140          'inF0' (in 2-component vector of float)
-0:141      move second child to first child (temp 2-component vector of bool)
-0:141        'r039' (temp 2-component vector of bool)
-0:141        isinf (global 2-component vector of bool)
-0:141          'inF0' (in 2-component vector of float)
-0:142      move second child to first child (temp 2-component vector of bool)
-0:142        'r040' (temp 2-component vector of bool)
-0:142        isnan (global 2-component vector of bool)
-0:142          'inF0' (in 2-component vector of float)
-0:143      move second child to first child (temp 2-component vector of float)
-0:143        'r041' (temp 2-component vector of float)
-0:143        ldexp (global 2-component vector of float)
-0:143          'inF0' (in 2-component vector of float)
-0:143          'inF1' (in 2-component vector of float)
-0:144      move second child to first child (temp 2-component vector of float)
-0:144        'r039a' (temp 2-component vector of float)
-0:144        mix (global 2-component vector of float)
-0:144          'inF0' (in 2-component vector of float)
-0:144          'inF1' (in 2-component vector of float)
-0:144          'inF2' (in 2-component vector of float)
-0:145      move second child to first child (temp float)
-0:145        'r042' (temp float)
-0:145        length (global float)
-0:145          'inF0' (in 2-component vector of float)
-0:146      move second child to first child (temp 2-component vector of float)
-0:146        'r043' (temp 2-component vector of float)
-0:146        log (global 2-component vector of float)
-0:146          'inF0' (in 2-component vector of float)
-0:147      move second child to first child (temp 2-component vector of float)
-0:147        'r044' (temp 2-component vector of float)
-0:147        vector-scale (temp 2-component vector of float)
-0:147          log2 (temp 2-component vector of float)
-0:147            'inF0' (in 2-component vector of float)
-0:147          Constant:
-0:147            0.301030
-0:148      move second child to first child (temp 2-component vector of float)
-0:148        'r045' (temp 2-component vector of float)
-0:148        log2 (global 2-component vector of float)
-0:148          'inF0' (in 2-component vector of float)
-0:149      move second child to first child (temp 2-component vector of float)
-0:149        'r046' (temp 2-component vector of float)
-0:149        max (global 2-component vector of float)
-0:149          'inF0' (in 2-component vector of float)
-0:149          'inF1' (in 2-component vector of float)
-0:150      move second child to first child (temp 2-component vector of float)
-0:150        'r047' (temp 2-component vector of float)
-0:150        min (global 2-component vector of float)
-0:150          'inF0' (in 2-component vector of float)
-0:150          'inF1' (in 2-component vector of float)
-0:151      move second child to first child (temp 2-component vector of float)
-0:151        'r048' (temp 2-component vector of float)
-0:151        normalize (global 2-component vector of float)
-0:151          'inF0' (in 2-component vector of float)
-0:152      move second child to first child (temp 2-component vector of float)
-0:152        'r049' (temp 2-component vector of float)
-0:152        pow (global 2-component vector of float)
-0:152          'inF0' (in 2-component vector of float)
-0:152          'inF1' (in 2-component vector of float)
-0:153      move second child to first child (temp 2-component vector of float)
-0:153        'r050' (temp 2-component vector of float)
-0:153        radians (global 2-component vector of float)
-0:153          'inF0' (in 2-component vector of float)
-0:154      move second child to first child (temp 2-component vector of float)
-0:154        'r051' (temp 2-component vector of float)
-0:154        divide (temp 2-component vector of float)
-0:154          Constant:
-0:154            1.000000
-0:154          'inF0' (in 2-component vector of float)
-0:155      move second child to first child (temp 2-component vector of float)
-0:155        'r052' (temp 2-component vector of float)
-0:155        reflect (global 2-component vector of float)
-0:155          'inF0' (in 2-component vector of float)
-0:155          'inF1' (in 2-component vector of float)
-0:156      move second child to first child (temp 2-component vector of float)
-0:156        'r053' (temp 2-component vector of float)
-0:156        refract (global 2-component vector of float)
-0:156          'inF0' (in 2-component vector of float)
-0:156          'inF1' (in 2-component vector of float)
-0:156          Constant:
-0:156            2.000000
-0:157      move second child to first child (temp 2-component vector of uint)
-0:157        'r054' (temp 2-component vector of uint)
-0:?         bitFieldReverse (global 2-component vector of uint)
-0:?           Constant:
-0:?             1 (const uint)
-0:?             2 (const uint)
-0:158      move second child to first child (temp 2-component vector of float)
-0:158        'r055' (temp 2-component vector of float)
-0:158        roundEven (global 2-component vector of float)
-0:158          'inF0' (in 2-component vector of float)
-0:159      move second child to first child (temp 2-component vector of float)
-0:159        'r056' (temp 2-component vector of float)
-0:159        inverse sqrt (global 2-component vector of float)
-0:159          'inF0' (in 2-component vector of float)
-0:160      move second child to first child (temp 2-component vector of float)
-0:160        'r057' (temp 2-component vector of float)
-0:160        clamp (temp 2-component vector of float)
-0:160          'inF0' (in 2-component vector of float)
-0:160          Constant:
-0:160            0.000000
-0:160          Constant:
-0:160            1.000000
-0:161      move second child to first child (temp 2-component vector of float)
-0:161        'r058' (temp 2-component vector of float)
-0:161        Sign (global 2-component vector of float)
-0:161          'inF0' (in 2-component vector of float)
-0:162      move second child to first child (temp 2-component vector of float)
-0:162        'r059' (temp 2-component vector of float)
-0:162        sine (global 2-component vector of float)
-0:162          'inF0' (in 2-component vector of float)
+0:112      Sequence
+0:112        move second child to first child (temp 2-component vector of float)
+0:112          'r013' (temp 2-component vector of float)
+0:112          cosine (global 2-component vector of float)
+0:112            'inF0' (in 2-component vector of float)
+0:113      Sequence
+0:113        move second child to first child (temp 2-component vector of float)
+0:113          'r015' (temp 2-component vector of float)
+0:113          hyp. cosine (global 2-component vector of float)
+0:113            'inF0' (in 2-component vector of float)
+0:114      Sequence
+0:114        move second child to first child (temp 2-component vector of uint)
+0:114          'r016' (temp 2-component vector of uint)
+0:?           bitCount (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               3 (const uint)
+0:115      Sequence
+0:115        move second child to first child (temp 2-component vector of float)
+0:115          'r017' (temp 2-component vector of float)
+0:115          dPdx (global 2-component vector of float)
+0:115            'inF0' (in 2-component vector of float)
+0:116      Sequence
+0:116        move second child to first child (temp 2-component vector of float)
+0:116          'r018' (temp 2-component vector of float)
+0:116          dPdxCoarse (global 2-component vector of float)
+0:116            'inF0' (in 2-component vector of float)
+0:117      Sequence
+0:117        move second child to first child (temp 2-component vector of float)
+0:117          'r019' (temp 2-component vector of float)
+0:117          dPdxFine (global 2-component vector of float)
+0:117            'inF0' (in 2-component vector of float)
+0:118      Sequence
+0:118        move second child to first child (temp 2-component vector of float)
+0:118          'r020' (temp 2-component vector of float)
+0:118          dPdy (global 2-component vector of float)
+0:118            'inF0' (in 2-component vector of float)
+0:119      Sequence
+0:119        move second child to first child (temp 2-component vector of float)
+0:119          'r021' (temp 2-component vector of float)
+0:119          dPdyCoarse (global 2-component vector of float)
+0:119            'inF0' (in 2-component vector of float)
+0:120      Sequence
+0:120        move second child to first child (temp 2-component vector of float)
+0:120          'r022' (temp 2-component vector of float)
+0:120          dPdyFine (global 2-component vector of float)
+0:120            'inF0' (in 2-component vector of float)
+0:121      Sequence
+0:121        move second child to first child (temp 2-component vector of float)
+0:121          'r023' (temp 2-component vector of float)
+0:121          degrees (global 2-component vector of float)
+0:121            'inF0' (in 2-component vector of float)
+0:125      Sequence
+0:125        move second child to first child (temp float)
+0:125          'r026' (temp float)
+0:125          distance (global float)
+0:125            'inF0' (in 2-component vector of float)
+0:125            'inF1' (in 2-component vector of float)
+0:126      Sequence
+0:126        move second child to first child (temp float)
+0:126          'r027' (temp float)
+0:126          dot-product (global float)
+0:126            'inF0' (in 2-component vector of float)
+0:126            'inF1' (in 2-component vector of float)
+0:130      Sequence
+0:130        move second child to first child (temp 2-component vector of float)
+0:130          'r028' (temp 2-component vector of float)
+0:130          exp (global 2-component vector of float)
+0:130            'inF0' (in 2-component vector of float)
+0:131      Sequence
+0:131        move second child to first child (temp 2-component vector of float)
+0:131          'r029' (temp 2-component vector of float)
+0:131          exp2 (global 2-component vector of float)
+0:131            'inF0' (in 2-component vector of float)
+0:132      Sequence
+0:132        move second child to first child (temp 2-component vector of float)
+0:132          'r030' (temp 2-component vector of float)
+0:132          face-forward (global 2-component vector of float)
+0:132            'inF0' (in 2-component vector of float)
+0:132            'inF1' (in 2-component vector of float)
+0:132            'inF2' (in 2-component vector of float)
+0:133      Sequence
+0:133        move second child to first child (temp 2-component vector of uint)
+0:133          'r031' (temp 2-component vector of uint)
+0:?           findMSB (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:134      Sequence
+0:134        move second child to first child (temp 2-component vector of uint)
+0:134          'r032' (temp 2-component vector of uint)
+0:?           findLSB (global 2-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:135      Sequence
+0:135        move second child to first child (temp 2-component vector of float)
+0:135          'r033' (temp 2-component vector of float)
+0:135          Floor (global 2-component vector of float)
+0:135            'inF0' (in 2-component vector of float)
+0:137      Sequence
+0:137        move second child to first child (temp 2-component vector of float)
+0:137          'r035' (temp 2-component vector of float)
+0:137          mod (global 2-component vector of float)
+0:137            'inF0' (in 2-component vector of float)
+0:137            'inF1' (in 2-component vector of float)
+0:138      Sequence
+0:138        move second child to first child (temp 2-component vector of float)
+0:138          'r036' (temp 2-component vector of float)
+0:138          Fraction (global 2-component vector of float)
+0:138            'inF0' (in 2-component vector of float)
+0:139      Sequence
+0:139        move second child to first child (temp 2-component vector of float)
+0:139          'r037' (temp 2-component vector of float)
+0:139          frexp (global 2-component vector of float)
+0:139            'inF0' (in 2-component vector of float)
+0:139            'inF1' (in 2-component vector of float)
+0:140      Sequence
+0:140        move second child to first child (temp 2-component vector of float)
+0:140          'r038' (temp 2-component vector of float)
+0:140          fwidth (global 2-component vector of float)
+0:140            'inF0' (in 2-component vector of float)
+0:141      Sequence
+0:141        move second child to first child (temp 2-component vector of bool)
+0:141          'r039' (temp 2-component vector of bool)
+0:141          isinf (global 2-component vector of bool)
+0:141            'inF0' (in 2-component vector of float)
+0:142      Sequence
+0:142        move second child to first child (temp 2-component vector of bool)
+0:142          'r040' (temp 2-component vector of bool)
+0:142          isnan (global 2-component vector of bool)
+0:142            'inF0' (in 2-component vector of float)
+0:143      Sequence
+0:143        move second child to first child (temp 2-component vector of float)
+0:143          'r041' (temp 2-component vector of float)
+0:143          ldexp (global 2-component vector of float)
+0:143            'inF0' (in 2-component vector of float)
+0:143            'inF1' (in 2-component vector of float)
+0:144      Sequence
+0:144        move second child to first child (temp 2-component vector of float)
+0:144          'r039a' (temp 2-component vector of float)
+0:144          mix (global 2-component vector of float)
+0:144            'inF0' (in 2-component vector of float)
+0:144            'inF1' (in 2-component vector of float)
+0:144            'inF2' (in 2-component vector of float)
+0:145      Sequence
+0:145        move second child to first child (temp float)
+0:145          'r042' (temp float)
+0:145          length (global float)
+0:145            'inF0' (in 2-component vector of float)
+0:146      Sequence
+0:146        move second child to first child (temp 2-component vector of float)
+0:146          'r043' (temp 2-component vector of float)
+0:146          log (global 2-component vector of float)
+0:146            'inF0' (in 2-component vector of float)
+0:147      Sequence
+0:147        move second child to first child (temp 2-component vector of float)
+0:147          'r044' (temp 2-component vector of float)
+0:147          vector-scale (temp 2-component vector of float)
+0:147            log2 (temp 2-component vector of float)
+0:147              'inF0' (in 2-component vector of float)
+0:147            Constant:
+0:147              0.301030
+0:148      Sequence
+0:148        move second child to first child (temp 2-component vector of float)
+0:148          'r045' (temp 2-component vector of float)
+0:148          log2 (global 2-component vector of float)
+0:148            'inF0' (in 2-component vector of float)
+0:149      Sequence
+0:149        move second child to first child (temp 2-component vector of float)
+0:149          'r046' (temp 2-component vector of float)
+0:149          max (global 2-component vector of float)
+0:149            'inF0' (in 2-component vector of float)
+0:149            'inF1' (in 2-component vector of float)
+0:150      Sequence
+0:150        move second child to first child (temp 2-component vector of float)
+0:150          'r047' (temp 2-component vector of float)
+0:150          min (global 2-component vector of float)
+0:150            'inF0' (in 2-component vector of float)
+0:150            'inF1' (in 2-component vector of float)
+0:151      Sequence
+0:151        move second child to first child (temp 2-component vector of float)
+0:151          'r048' (temp 2-component vector of float)
+0:151          normalize (global 2-component vector of float)
+0:151            'inF0' (in 2-component vector of float)
+0:152      Sequence
+0:152        move second child to first child (temp 2-component vector of float)
+0:152          'r049' (temp 2-component vector of float)
+0:152          pow (global 2-component vector of float)
+0:152            'inF0' (in 2-component vector of float)
+0:152            'inF1' (in 2-component vector of float)
+0:153      Sequence
+0:153        move second child to first child (temp 2-component vector of float)
+0:153          'r050' (temp 2-component vector of float)
+0:153          radians (global 2-component vector of float)
+0:153            'inF0' (in 2-component vector of float)
+0:154      Sequence
+0:154        move second child to first child (temp 2-component vector of float)
+0:154          'r051' (temp 2-component vector of float)
+0:154          divide (temp 2-component vector of float)
+0:154            Constant:
+0:154              1.000000
+0:154            'inF0' (in 2-component vector of float)
+0:155      Sequence
+0:155        move second child to first child (temp 2-component vector of float)
+0:155          'r052' (temp 2-component vector of float)
+0:155          reflect (global 2-component vector of float)
+0:155            'inF0' (in 2-component vector of float)
+0:155            'inF1' (in 2-component vector of float)
+0:156      Sequence
+0:156        move second child to first child (temp 2-component vector of float)
+0:156          'r053' (temp 2-component vector of float)
+0:156          refract (global 2-component vector of float)
+0:156            'inF0' (in 2-component vector of float)
+0:156            'inF1' (in 2-component vector of float)
+0:156            Constant:
+0:156              2.000000
+0:157      Sequence
+0:157        move second child to first child (temp 2-component vector of uint)
+0:157          'r054' (temp 2-component vector of uint)
+0:?           bitFieldReverse (global 2-component vector of uint)
+0:?             Constant:
+0:?               1 (const uint)
+0:?               2 (const uint)
+0:158      Sequence
+0:158        move second child to first child (temp 2-component vector of float)
+0:158          'r055' (temp 2-component vector of float)
+0:158          roundEven (global 2-component vector of float)
+0:158            'inF0' (in 2-component vector of float)
+0:159      Sequence
+0:159        move second child to first child (temp 2-component vector of float)
+0:159          'r056' (temp 2-component vector of float)
+0:159          inverse sqrt (global 2-component vector of float)
+0:159            'inF0' (in 2-component vector of float)
+0:160      Sequence
+0:160        move second child to first child (temp 2-component vector of float)
+0:160          'r057' (temp 2-component vector of float)
+0:160          clamp (temp 2-component vector of float)
+0:160            'inF0' (in 2-component vector of float)
+0:160            Constant:
+0:160              0.000000
+0:160            Constant:
+0:160              1.000000
+0:161      Sequence
+0:161        move second child to first child (temp 2-component vector of float)
+0:161          'r058' (temp 2-component vector of float)
+0:161          Sign (global 2-component vector of float)
+0:161            'inF0' (in 2-component vector of float)
+0:162      Sequence
+0:162        move second child to first child (temp 2-component vector of float)
+0:162          'r059' (temp 2-component vector of float)
+0:162          sine (global 2-component vector of float)
+0:162            'inF0' (in 2-component vector of float)
 0:163      Sequence
 0:163        move second child to first child (temp 2-component vector of float)
 0:163          'inF1' (in 2-component vector of float)
@@ -2920,37 +3461,44 @@
 0:163          'inF2' (in 2-component vector of float)
 0:163          cosine (temp 2-component vector of float)
 0:163            'inF0' (in 2-component vector of float)
-0:164      move second child to first child (temp 2-component vector of float)
-0:164        'r060' (temp 2-component vector of float)
-0:164        hyp. sine (global 2-component vector of float)
-0:164          'inF0' (in 2-component vector of float)
-0:165      move second child to first child (temp 2-component vector of float)
-0:165        'r061' (temp 2-component vector of float)
-0:165        smoothstep (global 2-component vector of float)
-0:165          'inF0' (in 2-component vector of float)
-0:165          'inF1' (in 2-component vector of float)
-0:165          'inF2' (in 2-component vector of float)
-0:166      move second child to first child (temp 2-component vector of float)
-0:166        'r062' (temp 2-component vector of float)
-0:166        sqrt (global 2-component vector of float)
-0:166          'inF0' (in 2-component vector of float)
-0:167      move second child to first child (temp 2-component vector of float)
-0:167        'r063' (temp 2-component vector of float)
-0:167        step (global 2-component vector of float)
-0:167          'inF0' (in 2-component vector of float)
-0:167          'inF1' (in 2-component vector of float)
-0:168      move second child to first child (temp 2-component vector of float)
-0:168        'r064' (temp 2-component vector of float)
-0:168        tangent (global 2-component vector of float)
-0:168          'inF0' (in 2-component vector of float)
-0:169      move second child to first child (temp 2-component vector of float)
-0:169        'r065' (temp 2-component vector of float)
-0:169        hyp. tangent (global 2-component vector of float)
-0:169          'inF0' (in 2-component vector of float)
-0:171      move second child to first child (temp 2-component vector of float)
-0:171        'r066' (temp 2-component vector of float)
-0:171        trunc (global 2-component vector of float)
-0:171          'inF0' (in 2-component vector of float)
+0:164      Sequence
+0:164        move second child to first child (temp 2-component vector of float)
+0:164          'r060' (temp 2-component vector of float)
+0:164          hyp. sine (global 2-component vector of float)
+0:164            'inF0' (in 2-component vector of float)
+0:165      Sequence
+0:165        move second child to first child (temp 2-component vector of float)
+0:165          'r061' (temp 2-component vector of float)
+0:165          smoothstep (global 2-component vector of float)
+0:165            'inF0' (in 2-component vector of float)
+0:165            'inF1' (in 2-component vector of float)
+0:165            'inF2' (in 2-component vector of float)
+0:166      Sequence
+0:166        move second child to first child (temp 2-component vector of float)
+0:166          'r062' (temp 2-component vector of float)
+0:166          sqrt (global 2-component vector of float)
+0:166            'inF0' (in 2-component vector of float)
+0:167      Sequence
+0:167        move second child to first child (temp 2-component vector of float)
+0:167          'r063' (temp 2-component vector of float)
+0:167          step (global 2-component vector of float)
+0:167            'inF0' (in 2-component vector of float)
+0:167            'inF1' (in 2-component vector of float)
+0:168      Sequence
+0:168        move second child to first child (temp 2-component vector of float)
+0:168          'r064' (temp 2-component vector of float)
+0:168          tangent (global 2-component vector of float)
+0:168            'inF0' (in 2-component vector of float)
+0:169      Sequence
+0:169        move second child to first child (temp 2-component vector of float)
+0:169          'r065' (temp 2-component vector of float)
+0:169          hyp. tangent (global 2-component vector of float)
+0:169            'inF0' (in 2-component vector of float)
+0:171      Sequence
+0:171        move second child to first child (temp 2-component vector of float)
+0:171          'r066' (temp 2-component vector of float)
+0:171          trunc (global 2-component vector of float)
+0:171            'inF0' (in 2-component vector of float)
 0:174      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -2963,57 +3511,69 @@
 0:178      'inU0' (in 3-component vector of uint)
 0:178      'inU1' (in 3-component vector of uint)
 0:?     Sequence
-0:181      move second child to first child (temp bool)
-0:181        'r000' (temp bool)
-0:181        all (global bool)
-0:181          'inF0' (in 3-component vector of float)
-0:182      move second child to first child (temp 3-component vector of float)
-0:182        'r001' (temp 3-component vector of float)
-0:182        Absolute value (global 3-component vector of float)
-0:182          'inF0' (in 3-component vector of float)
-0:183      move second child to first child (temp 3-component vector of float)
-0:183        'r002' (temp 3-component vector of float)
-0:183        arc cosine (global 3-component vector of float)
-0:183          'inF0' (in 3-component vector of float)
-0:184      move second child to first child (temp bool)
-0:184        'r003' (temp bool)
-0:184        any (global bool)
-0:184          'inF0' (in 3-component vector of float)
-0:185      move second child to first child (temp 3-component vector of float)
-0:185        'r004' (temp 3-component vector of float)
-0:185        arc sine (global 3-component vector of float)
-0:185          'inF0' (in 3-component vector of float)
-0:186      move second child to first child (temp 3-component vector of int)
-0:186        'r005' (temp 3-component vector of int)
-0:186        floatBitsToInt (global 3-component vector of int)
-0:186          'inF0' (in 3-component vector of float)
-0:187      move second child to first child (temp 3-component vector of uint)
-0:187        'r006' (temp 3-component vector of uint)
-0:187        floatBitsToUint (global 3-component vector of uint)
-0:187          'inF0' (in 3-component vector of float)
-0:188      move second child to first child (temp 3-component vector of float)
-0:188        'r007' (temp 3-component vector of float)
-0:188        intBitsToFloat (global 3-component vector of float)
-0:188          'inU0' (in 3-component vector of uint)
-0:190      move second child to first child (temp 3-component vector of float)
-0:190        'r009' (temp 3-component vector of float)
-0:190        arc tangent (global 3-component vector of float)
-0:190          'inF0' (in 3-component vector of float)
-0:191      move second child to first child (temp 3-component vector of float)
-0:191        'r010' (temp 3-component vector of float)
-0:191        arc tangent (global 3-component vector of float)
-0:191          'inF0' (in 3-component vector of float)
-0:191          'inF1' (in 3-component vector of float)
-0:192      move second child to first child (temp 3-component vector of float)
-0:192        'r011' (temp 3-component vector of float)
-0:192        Ceiling (global 3-component vector of float)
-0:192          'inF0' (in 3-component vector of float)
-0:193      move second child to first child (temp 3-component vector of float)
-0:193        'r012' (temp 3-component vector of float)
-0:193        clamp (global 3-component vector of float)
-0:193          'inF0' (in 3-component vector of float)
-0:193          'inF1' (in 3-component vector of float)
-0:193          'inF2' (in 3-component vector of float)
+0:181      Sequence
+0:181        move second child to first child (temp bool)
+0:181          'r000' (temp bool)
+0:181          all (global bool)
+0:181            'inF0' (in 3-component vector of float)
+0:182      Sequence
+0:182        move second child to first child (temp 3-component vector of float)
+0:182          'r001' (temp 3-component vector of float)
+0:182          Absolute value (global 3-component vector of float)
+0:182            'inF0' (in 3-component vector of float)
+0:183      Sequence
+0:183        move second child to first child (temp 3-component vector of float)
+0:183          'r002' (temp 3-component vector of float)
+0:183          arc cosine (global 3-component vector of float)
+0:183            'inF0' (in 3-component vector of float)
+0:184      Sequence
+0:184        move second child to first child (temp bool)
+0:184          'r003' (temp bool)
+0:184          any (global bool)
+0:184            'inF0' (in 3-component vector of float)
+0:185      Sequence
+0:185        move second child to first child (temp 3-component vector of float)
+0:185          'r004' (temp 3-component vector of float)
+0:185          arc sine (global 3-component vector of float)
+0:185            'inF0' (in 3-component vector of float)
+0:186      Sequence
+0:186        move second child to first child (temp 3-component vector of int)
+0:186          'r005' (temp 3-component vector of int)
+0:186          floatBitsToInt (global 3-component vector of int)
+0:186            'inF0' (in 3-component vector of float)
+0:187      Sequence
+0:187        move second child to first child (temp 3-component vector of uint)
+0:187          'r006' (temp 3-component vector of uint)
+0:187          floatBitsToUint (global 3-component vector of uint)
+0:187            'inF0' (in 3-component vector of float)
+0:188      Sequence
+0:188        move second child to first child (temp 3-component vector of float)
+0:188          'r007' (temp 3-component vector of float)
+0:188          intBitsToFloat (global 3-component vector of float)
+0:188            'inU0' (in 3-component vector of uint)
+0:190      Sequence
+0:190        move second child to first child (temp 3-component vector of float)
+0:190          'r009' (temp 3-component vector of float)
+0:190          arc tangent (global 3-component vector of float)
+0:190            'inF0' (in 3-component vector of float)
+0:191      Sequence
+0:191        move second child to first child (temp 3-component vector of float)
+0:191          'r010' (temp 3-component vector of float)
+0:191          arc tangent (global 3-component vector of float)
+0:191            'inF0' (in 3-component vector of float)
+0:191            'inF1' (in 3-component vector of float)
+0:192      Sequence
+0:192        move second child to first child (temp 3-component vector of float)
+0:192          'r011' (temp 3-component vector of float)
+0:192          Ceiling (global 3-component vector of float)
+0:192            'inF0' (in 3-component vector of float)
+0:193      Sequence
+0:193        move second child to first child (temp 3-component vector of float)
+0:193          'r012' (temp 3-component vector of float)
+0:193          clamp (global 3-component vector of float)
+0:193            'inF0' (in 3-component vector of float)
+0:193            'inF1' (in 3-component vector of float)
+0:193            'inF2' (in 3-component vector of float)
 0:194      Test condition and select (temp void)
 0:194        Condition
 0:194        any (temp bool)
@@ -3025,224 +3585,269 @@
 0:194              0.000000
 0:194        true case
 0:194        Branch: Kill
-0:195      move second child to first child (temp 3-component vector of float)
-0:195        'r013' (temp 3-component vector of float)
-0:195        cosine (global 3-component vector of float)
-0:195          'inF0' (in 3-component vector of float)
-0:196      move second child to first child (temp 3-component vector of float)
-0:196        'r014' (temp 3-component vector of float)
-0:196        hyp. cosine (global 3-component vector of float)
-0:196          'inF0' (in 3-component vector of float)
-0:197      move second child to first child (temp 3-component vector of uint)
-0:197        'r015' (temp 3-component vector of uint)
-0:?         bitCount (global 3-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             3 (const uint)
-0:?             5 (const uint)
-0:198      move second child to first child (temp 3-component vector of float)
-0:198        'r016' (temp 3-component vector of float)
-0:198        cross-product (global 3-component vector of float)
-0:198          'inF0' (in 3-component vector of float)
-0:198          'inF1' (in 3-component vector of float)
-0:199      move second child to first child (temp 3-component vector of float)
-0:199        'r017' (temp 3-component vector of float)
-0:199        dPdx (global 3-component vector of float)
-0:199          'inF0' (in 3-component vector of float)
-0:200      move second child to first child (temp 3-component vector of float)
-0:200        'r018' (temp 3-component vector of float)
-0:200        dPdxCoarse (global 3-component vector of float)
-0:200          'inF0' (in 3-component vector of float)
-0:201      move second child to first child (temp 3-component vector of float)
-0:201        'r019' (temp 3-component vector of float)
-0:201        dPdxFine (global 3-component vector of float)
-0:201          'inF0' (in 3-component vector of float)
-0:202      move second child to first child (temp 3-component vector of float)
-0:202        'r020' (temp 3-component vector of float)
-0:202        dPdy (global 3-component vector of float)
-0:202          'inF0' (in 3-component vector of float)
-0:203      move second child to first child (temp 3-component vector of float)
-0:203        'r021' (temp 3-component vector of float)
-0:203        dPdyCoarse (global 3-component vector of float)
-0:203          'inF0' (in 3-component vector of float)
-0:204      move second child to first child (temp 3-component vector of float)
-0:204        'r022' (temp 3-component vector of float)
-0:204        dPdyFine (global 3-component vector of float)
-0:204          'inF0' (in 3-component vector of float)
-0:205      move second child to first child (temp 3-component vector of float)
-0:205        'r023' (temp 3-component vector of float)
-0:205        degrees (global 3-component vector of float)
-0:205          'inF0' (in 3-component vector of float)
-0:206      move second child to first child (temp float)
-0:206        'r024' (temp float)
-0:206        distance (global float)
-0:206          'inF0' (in 3-component vector of float)
-0:206          'inF1' (in 3-component vector of float)
-0:207      move second child to first child (temp float)
-0:207        'r025' (temp float)
-0:207        dot-product (global float)
-0:207          'inF0' (in 3-component vector of float)
-0:207          'inF1' (in 3-component vector of float)
-0:211      move second child to first child (temp 3-component vector of float)
-0:211        'r029' (temp 3-component vector of float)
-0:211        exp (global 3-component vector of float)
-0:211          'inF0' (in 3-component vector of float)
-0:212      move second child to first child (temp 3-component vector of float)
-0:212        'r030' (temp 3-component vector of float)
-0:212        exp2 (global 3-component vector of float)
-0:212          'inF0' (in 3-component vector of float)
-0:213      move second child to first child (temp 3-component vector of float)
-0:213        'r031' (temp 3-component vector of float)
-0:213        face-forward (global 3-component vector of float)
-0:213          'inF0' (in 3-component vector of float)
-0:213          'inF1' (in 3-component vector of float)
-0:213          'inF2' (in 3-component vector of float)
-0:214      move second child to first child (temp 3-component vector of uint)
-0:214        'r032' (temp 3-component vector of uint)
-0:?         findMSB (global 3-component vector of uint)
-0:?           Constant:
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:?             4 (const uint)
-0:215      move second child to first child (temp 3-component vector of uint)
-0:215        'r033' (temp 3-component vector of uint)
-0:?         findLSB (global 3-component vector of uint)
-0:?           Constant:
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:?             4 (const uint)
-0:216      move second child to first child (temp 3-component vector of float)
-0:216        'r034' (temp 3-component vector of float)
-0:216        Floor (global 3-component vector of float)
-0:216          'inF0' (in 3-component vector of float)
-0:218      move second child to first child (temp 3-component vector of float)
-0:218        'r036' (temp 3-component vector of float)
-0:218        mod (global 3-component vector of float)
-0:218          'inF0' (in 3-component vector of float)
-0:218          'inF1' (in 3-component vector of float)
-0:219      move second child to first child (temp 3-component vector of float)
-0:219        'r037' (temp 3-component vector of float)
-0:219        Fraction (global 3-component vector of float)
-0:219          'inF0' (in 3-component vector of float)
-0:220      move second child to first child (temp 3-component vector of float)
-0:220        'r038' (temp 3-component vector of float)
-0:220        frexp (global 3-component vector of float)
-0:220          'inF0' (in 3-component vector of float)
-0:220          'inF1' (in 3-component vector of float)
-0:221      move second child to first child (temp 3-component vector of float)
-0:221        'r039' (temp 3-component vector of float)
-0:221        fwidth (global 3-component vector of float)
-0:221          'inF0' (in 3-component vector of float)
-0:222      move second child to first child (temp 3-component vector of bool)
-0:222        'r040' (temp 3-component vector of bool)
-0:222        isinf (global 3-component vector of bool)
-0:222          'inF0' (in 3-component vector of float)
-0:223      move second child to first child (temp 3-component vector of bool)
-0:223        'r041' (temp 3-component vector of bool)
-0:223        isnan (global 3-component vector of bool)
-0:223          'inF0' (in 3-component vector of float)
-0:224      move second child to first child (temp 3-component vector of float)
-0:224        'r042' (temp 3-component vector of float)
-0:224        ldexp (global 3-component vector of float)
-0:224          'inF0' (in 3-component vector of float)
-0:224          'inF1' (in 3-component vector of float)
-0:225      move second child to first child (temp 3-component vector of float)
-0:225        'r039a' (temp 3-component vector of float)
-0:225        mix (global 3-component vector of float)
-0:225          'inF0' (in 3-component vector of float)
-0:225          'inF1' (in 3-component vector of float)
-0:225          'inF2' (in 3-component vector of float)
-0:226      move second child to first child (temp float)
-0:226        'r043' (temp float)
-0:226        length (global float)
-0:226          'inF0' (in 3-component vector of float)
-0:227      move second child to first child (temp 3-component vector of float)
-0:227        'r044' (temp 3-component vector of float)
-0:227        log (global 3-component vector of float)
-0:227          'inF0' (in 3-component vector of float)
-0:228      move second child to first child (temp 3-component vector of float)
-0:228        'r045' (temp 3-component vector of float)
-0:228        vector-scale (temp 3-component vector of float)
-0:228          log2 (temp 3-component vector of float)
-0:228            'inF0' (in 3-component vector of float)
-0:228          Constant:
-0:228            0.301030
-0:229      move second child to first child (temp 3-component vector of float)
-0:229        'r046' (temp 3-component vector of float)
-0:229        log2 (global 3-component vector of float)
-0:229          'inF0' (in 3-component vector of float)
-0:230      move second child to first child (temp 3-component vector of float)
-0:230        'r047' (temp 3-component vector of float)
-0:230        max (global 3-component vector of float)
-0:230          'inF0' (in 3-component vector of float)
-0:230          'inF1' (in 3-component vector of float)
-0:231      move second child to first child (temp 3-component vector of float)
-0:231        'r048' (temp 3-component vector of float)
-0:231        min (global 3-component vector of float)
-0:231          'inF0' (in 3-component vector of float)
-0:231          'inF1' (in 3-component vector of float)
-0:232      move second child to first child (temp 3-component vector of float)
-0:232        'r049' (temp 3-component vector of float)
-0:232        normalize (global 3-component vector of float)
-0:232          'inF0' (in 3-component vector of float)
-0:233      move second child to first child (temp 3-component vector of float)
-0:233        'r050' (temp 3-component vector of float)
-0:233        pow (global 3-component vector of float)
-0:233          'inF0' (in 3-component vector of float)
-0:233          'inF1' (in 3-component vector of float)
-0:234      move second child to first child (temp 3-component vector of float)
-0:234        'r051' (temp 3-component vector of float)
-0:234        radians (global 3-component vector of float)
-0:234          'inF0' (in 3-component vector of float)
-0:235      move second child to first child (temp 3-component vector of float)
-0:235        'r052' (temp 3-component vector of float)
-0:235        divide (temp 3-component vector of float)
-0:235          Constant:
-0:235            1.000000
-0:235          'inF0' (in 3-component vector of float)
-0:236      move second child to first child (temp 3-component vector of float)
-0:236        'r053' (temp 3-component vector of float)
-0:236        reflect (global 3-component vector of float)
-0:236          'inF0' (in 3-component vector of float)
-0:236          'inF1' (in 3-component vector of float)
-0:237      move second child to first child (temp 3-component vector of float)
-0:237        'r054' (temp 3-component vector of float)
-0:237        refract (global 3-component vector of float)
-0:237          'inF0' (in 3-component vector of float)
-0:237          'inF1' (in 3-component vector of float)
-0:237          Constant:
-0:237            2.000000
-0:238      move second child to first child (temp 3-component vector of uint)
-0:238        'r055' (temp 3-component vector of uint)
-0:?         bitFieldReverse (global 3-component vector of uint)
-0:?           Constant:
-0:?             1 (const uint)
-0:?             2 (const uint)
-0:?             3 (const uint)
-0:239      move second child to first child (temp 3-component vector of float)
-0:239        'r056' (temp 3-component vector of float)
-0:239        roundEven (global 3-component vector of float)
-0:239          'inF0' (in 3-component vector of float)
-0:240      move second child to first child (temp 3-component vector of float)
-0:240        'r057' (temp 3-component vector of float)
-0:240        inverse sqrt (global 3-component vector of float)
-0:240          'inF0' (in 3-component vector of float)
-0:241      move second child to first child (temp 3-component vector of float)
-0:241        'r058' (temp 3-component vector of float)
-0:241        clamp (temp 3-component vector of float)
-0:241          'inF0' (in 3-component vector of float)
-0:241          Constant:
-0:241            0.000000
-0:241          Constant:
-0:241            1.000000
-0:242      move second child to first child (temp 3-component vector of float)
-0:242        'r059' (temp 3-component vector of float)
-0:242        Sign (global 3-component vector of float)
-0:242          'inF0' (in 3-component vector of float)
-0:243      move second child to first child (temp 3-component vector of float)
-0:243        'r060' (temp 3-component vector of float)
-0:243        sine (global 3-component vector of float)
-0:243          'inF0' (in 3-component vector of float)
+0:195      Sequence
+0:195        move second child to first child (temp 3-component vector of float)
+0:195          'r013' (temp 3-component vector of float)
+0:195          cosine (global 3-component vector of float)
+0:195            'inF0' (in 3-component vector of float)
+0:196      Sequence
+0:196        move second child to first child (temp 3-component vector of float)
+0:196          'r014' (temp 3-component vector of float)
+0:196          hyp. cosine (global 3-component vector of float)
+0:196            'inF0' (in 3-component vector of float)
+0:197      Sequence
+0:197        move second child to first child (temp 3-component vector of uint)
+0:197          'r015' (temp 3-component vector of uint)
+0:?           bitCount (global 3-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               3 (const uint)
+0:?               5 (const uint)
+0:198      Sequence
+0:198        move second child to first child (temp 3-component vector of float)
+0:198          'r016' (temp 3-component vector of float)
+0:198          cross-product (global 3-component vector of float)
+0:198            'inF0' (in 3-component vector of float)
+0:198            'inF1' (in 3-component vector of float)
+0:199      Sequence
+0:199        move second child to first child (temp 3-component vector of float)
+0:199          'r017' (temp 3-component vector of float)
+0:199          dPdx (global 3-component vector of float)
+0:199            'inF0' (in 3-component vector of float)
+0:200      Sequence
+0:200        move second child to first child (temp 3-component vector of float)
+0:200          'r018' (temp 3-component vector of float)
+0:200          dPdxCoarse (global 3-component vector of float)
+0:200            'inF0' (in 3-component vector of float)
+0:201      Sequence
+0:201        move second child to first child (temp 3-component vector of float)
+0:201          'r019' (temp 3-component vector of float)
+0:201          dPdxFine (global 3-component vector of float)
+0:201            'inF0' (in 3-component vector of float)
+0:202      Sequence
+0:202        move second child to first child (temp 3-component vector of float)
+0:202          'r020' (temp 3-component vector of float)
+0:202          dPdy (global 3-component vector of float)
+0:202            'inF0' (in 3-component vector of float)
+0:203      Sequence
+0:203        move second child to first child (temp 3-component vector of float)
+0:203          'r021' (temp 3-component vector of float)
+0:203          dPdyCoarse (global 3-component vector of float)
+0:203            'inF0' (in 3-component vector of float)
+0:204      Sequence
+0:204        move second child to first child (temp 3-component vector of float)
+0:204          'r022' (temp 3-component vector of float)
+0:204          dPdyFine (global 3-component vector of float)
+0:204            'inF0' (in 3-component vector of float)
+0:205      Sequence
+0:205        move second child to first child (temp 3-component vector of float)
+0:205          'r023' (temp 3-component vector of float)
+0:205          degrees (global 3-component vector of float)
+0:205            'inF0' (in 3-component vector of float)
+0:206      Sequence
+0:206        move second child to first child (temp float)
+0:206          'r024' (temp float)
+0:206          distance (global float)
+0:206            'inF0' (in 3-component vector of float)
+0:206            'inF1' (in 3-component vector of float)
+0:207      Sequence
+0:207        move second child to first child (temp float)
+0:207          'r025' (temp float)
+0:207          dot-product (global float)
+0:207            'inF0' (in 3-component vector of float)
+0:207            'inF1' (in 3-component vector of float)
+0:211      Sequence
+0:211        move second child to first child (temp 3-component vector of float)
+0:211          'r029' (temp 3-component vector of float)
+0:211          exp (global 3-component vector of float)
+0:211            'inF0' (in 3-component vector of float)
+0:212      Sequence
+0:212        move second child to first child (temp 3-component vector of float)
+0:212          'r030' (temp 3-component vector of float)
+0:212          exp2 (global 3-component vector of float)
+0:212            'inF0' (in 3-component vector of float)
+0:213      Sequence
+0:213        move second child to first child (temp 3-component vector of float)
+0:213          'r031' (temp 3-component vector of float)
+0:213          face-forward (global 3-component vector of float)
+0:213            'inF0' (in 3-component vector of float)
+0:213            'inF1' (in 3-component vector of float)
+0:213            'inF2' (in 3-component vector of float)
+0:214      Sequence
+0:214        move second child to first child (temp 3-component vector of uint)
+0:214          'r032' (temp 3-component vector of uint)
+0:?           findMSB (global 3-component vector of uint)
+0:?             Constant:
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:?               4 (const uint)
+0:215      Sequence
+0:215        move second child to first child (temp 3-component vector of uint)
+0:215          'r033' (temp 3-component vector of uint)
+0:?           findLSB (global 3-component vector of uint)
+0:?             Constant:
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:?               4 (const uint)
+0:216      Sequence
+0:216        move second child to first child (temp 3-component vector of float)
+0:216          'r034' (temp 3-component vector of float)
+0:216          Floor (global 3-component vector of float)
+0:216            'inF0' (in 3-component vector of float)
+0:218      Sequence
+0:218        move second child to first child (temp 3-component vector of float)
+0:218          'r036' (temp 3-component vector of float)
+0:218          mod (global 3-component vector of float)
+0:218            'inF0' (in 3-component vector of float)
+0:218            'inF1' (in 3-component vector of float)
+0:219      Sequence
+0:219        move second child to first child (temp 3-component vector of float)
+0:219          'r037' (temp 3-component vector of float)
+0:219          Fraction (global 3-component vector of float)
+0:219            'inF0' (in 3-component vector of float)
+0:220      Sequence
+0:220        move second child to first child (temp 3-component vector of float)
+0:220          'r038' (temp 3-component vector of float)
+0:220          frexp (global 3-component vector of float)
+0:220            'inF0' (in 3-component vector of float)
+0:220            'inF1' (in 3-component vector of float)
+0:221      Sequence
+0:221        move second child to first child (temp 3-component vector of float)
+0:221          'r039' (temp 3-component vector of float)
+0:221          fwidth (global 3-component vector of float)
+0:221            'inF0' (in 3-component vector of float)
+0:222      Sequence
+0:222        move second child to first child (temp 3-component vector of bool)
+0:222          'r040' (temp 3-component vector of bool)
+0:222          isinf (global 3-component vector of bool)
+0:222            'inF0' (in 3-component vector of float)
+0:223      Sequence
+0:223        move second child to first child (temp 3-component vector of bool)
+0:223          'r041' (temp 3-component vector of bool)
+0:223          isnan (global 3-component vector of bool)
+0:223            'inF0' (in 3-component vector of float)
+0:224      Sequence
+0:224        move second child to first child (temp 3-component vector of float)
+0:224          'r042' (temp 3-component vector of float)
+0:224          ldexp (global 3-component vector of float)
+0:224            'inF0' (in 3-component vector of float)
+0:224            'inF1' (in 3-component vector of float)
+0:225      Sequence
+0:225        move second child to first child (temp 3-component vector of float)
+0:225          'r039a' (temp 3-component vector of float)
+0:225          mix (global 3-component vector of float)
+0:225            'inF0' (in 3-component vector of float)
+0:225            'inF1' (in 3-component vector of float)
+0:225            'inF2' (in 3-component vector of float)
+0:226      Sequence
+0:226        move second child to first child (temp float)
+0:226          'r043' (temp float)
+0:226          length (global float)
+0:226            'inF0' (in 3-component vector of float)
+0:227      Sequence
+0:227        move second child to first child (temp 3-component vector of float)
+0:227          'r044' (temp 3-component vector of float)
+0:227          log (global 3-component vector of float)
+0:227            'inF0' (in 3-component vector of float)
+0:228      Sequence
+0:228        move second child to first child (temp 3-component vector of float)
+0:228          'r045' (temp 3-component vector of float)
+0:228          vector-scale (temp 3-component vector of float)
+0:228            log2 (temp 3-component vector of float)
+0:228              'inF0' (in 3-component vector of float)
+0:228            Constant:
+0:228              0.301030
+0:229      Sequence
+0:229        move second child to first child (temp 3-component vector of float)
+0:229          'r046' (temp 3-component vector of float)
+0:229          log2 (global 3-component vector of float)
+0:229            'inF0' (in 3-component vector of float)
+0:230      Sequence
+0:230        move second child to first child (temp 3-component vector of float)
+0:230          'r047' (temp 3-component vector of float)
+0:230          max (global 3-component vector of float)
+0:230            'inF0' (in 3-component vector of float)
+0:230            'inF1' (in 3-component vector of float)
+0:231      Sequence
+0:231        move second child to first child (temp 3-component vector of float)
+0:231          'r048' (temp 3-component vector of float)
+0:231          min (global 3-component vector of float)
+0:231            'inF0' (in 3-component vector of float)
+0:231            'inF1' (in 3-component vector of float)
+0:232      Sequence
+0:232        move second child to first child (temp 3-component vector of float)
+0:232          'r049' (temp 3-component vector of float)
+0:232          normalize (global 3-component vector of float)
+0:232            'inF0' (in 3-component vector of float)
+0:233      Sequence
+0:233        move second child to first child (temp 3-component vector of float)
+0:233          'r050' (temp 3-component vector of float)
+0:233          pow (global 3-component vector of float)
+0:233            'inF0' (in 3-component vector of float)
+0:233            'inF1' (in 3-component vector of float)
+0:234      Sequence
+0:234        move second child to first child (temp 3-component vector of float)
+0:234          'r051' (temp 3-component vector of float)
+0:234          radians (global 3-component vector of float)
+0:234            'inF0' (in 3-component vector of float)
+0:235      Sequence
+0:235        move second child to first child (temp 3-component vector of float)
+0:235          'r052' (temp 3-component vector of float)
+0:235          divide (temp 3-component vector of float)
+0:235            Constant:
+0:235              1.000000
+0:235            'inF0' (in 3-component vector of float)
+0:236      Sequence
+0:236        move second child to first child (temp 3-component vector of float)
+0:236          'r053' (temp 3-component vector of float)
+0:236          reflect (global 3-component vector of float)
+0:236            'inF0' (in 3-component vector of float)
+0:236            'inF1' (in 3-component vector of float)
+0:237      Sequence
+0:237        move second child to first child (temp 3-component vector of float)
+0:237          'r054' (temp 3-component vector of float)
+0:237          refract (global 3-component vector of float)
+0:237            'inF0' (in 3-component vector of float)
+0:237            'inF1' (in 3-component vector of float)
+0:237            Constant:
+0:237              2.000000
+0:238      Sequence
+0:238        move second child to first child (temp 3-component vector of uint)
+0:238          'r055' (temp 3-component vector of uint)
+0:?           bitFieldReverse (global 3-component vector of uint)
+0:?             Constant:
+0:?               1 (const uint)
+0:?               2 (const uint)
+0:?               3 (const uint)
+0:239      Sequence
+0:239        move second child to first child (temp 3-component vector of float)
+0:239          'r056' (temp 3-component vector of float)
+0:239          roundEven (global 3-component vector of float)
+0:239            'inF0' (in 3-component vector of float)
+0:240      Sequence
+0:240        move second child to first child (temp 3-component vector of float)
+0:240          'r057' (temp 3-component vector of float)
+0:240          inverse sqrt (global 3-component vector of float)
+0:240            'inF0' (in 3-component vector of float)
+0:241      Sequence
+0:241        move second child to first child (temp 3-component vector of float)
+0:241          'r058' (temp 3-component vector of float)
+0:241          clamp (temp 3-component vector of float)
+0:241            'inF0' (in 3-component vector of float)
+0:241            Constant:
+0:241              0.000000
+0:241            Constant:
+0:241              1.000000
+0:242      Sequence
+0:242        move second child to first child (temp 3-component vector of float)
+0:242          'r059' (temp 3-component vector of float)
+0:242          Sign (global 3-component vector of float)
+0:242            'inF0' (in 3-component vector of float)
+0:243      Sequence
+0:243        move second child to first child (temp 3-component vector of float)
+0:243          'r060' (temp 3-component vector of float)
+0:243          sine (global 3-component vector of float)
+0:243            'inF0' (in 3-component vector of float)
 0:244      Sequence
 0:244        move second child to first child (temp 3-component vector of float)
 0:244          'inF1' (in 3-component vector of float)
@@ -3252,37 +3857,44 @@
 0:244          'inF2' (in 3-component vector of float)
 0:244          cosine (temp 3-component vector of float)
 0:244            'inF0' (in 3-component vector of float)
-0:245      move second child to first child (temp 3-component vector of float)
-0:245        'r061' (temp 3-component vector of float)
-0:245        hyp. sine (global 3-component vector of float)
-0:245          'inF0' (in 3-component vector of float)
-0:246      move second child to first child (temp 3-component vector of float)
-0:246        'r062' (temp 3-component vector of float)
-0:246        smoothstep (global 3-component vector of float)
-0:246          'inF0' (in 3-component vector of float)
-0:246          'inF1' (in 3-component vector of float)
-0:246          'inF2' (in 3-component vector of float)
-0:247      move second child to first child (temp 3-component vector of float)
-0:247        'r063' (temp 3-component vector of float)
-0:247        sqrt (global 3-component vector of float)
-0:247          'inF0' (in 3-component vector of float)
-0:248      move second child to first child (temp 3-component vector of float)
-0:248        'r064' (temp 3-component vector of float)
-0:248        step (global 3-component vector of float)
-0:248          'inF0' (in 3-component vector of float)
-0:248          'inF1' (in 3-component vector of float)
-0:249      move second child to first child (temp 3-component vector of float)
-0:249        'r065' (temp 3-component vector of float)
-0:249        tangent (global 3-component vector of float)
-0:249          'inF0' (in 3-component vector of float)
-0:250      move second child to first child (temp 3-component vector of float)
-0:250        'r066' (temp 3-component vector of float)
-0:250        hyp. tangent (global 3-component vector of float)
-0:250          'inF0' (in 3-component vector of float)
-0:252      move second child to first child (temp 3-component vector of float)
-0:252        'r067' (temp 3-component vector of float)
-0:252        trunc (global 3-component vector of float)
-0:252          'inF0' (in 3-component vector of float)
+0:245      Sequence
+0:245        move second child to first child (temp 3-component vector of float)
+0:245          'r061' (temp 3-component vector of float)
+0:245          hyp. sine (global 3-component vector of float)
+0:245            'inF0' (in 3-component vector of float)
+0:246      Sequence
+0:246        move second child to first child (temp 3-component vector of float)
+0:246          'r062' (temp 3-component vector of float)
+0:246          smoothstep (global 3-component vector of float)
+0:246            'inF0' (in 3-component vector of float)
+0:246            'inF1' (in 3-component vector of float)
+0:246            'inF2' (in 3-component vector of float)
+0:247      Sequence
+0:247        move second child to first child (temp 3-component vector of float)
+0:247          'r063' (temp 3-component vector of float)
+0:247          sqrt (global 3-component vector of float)
+0:247            'inF0' (in 3-component vector of float)
+0:248      Sequence
+0:248        move second child to first child (temp 3-component vector of float)
+0:248          'r064' (temp 3-component vector of float)
+0:248          step (global 3-component vector of float)
+0:248            'inF0' (in 3-component vector of float)
+0:248            'inF1' (in 3-component vector of float)
+0:249      Sequence
+0:249        move second child to first child (temp 3-component vector of float)
+0:249          'r065' (temp 3-component vector of float)
+0:249          tangent (global 3-component vector of float)
+0:249            'inF0' (in 3-component vector of float)
+0:250      Sequence
+0:250        move second child to first child (temp 3-component vector of float)
+0:250          'r066' (temp 3-component vector of float)
+0:250          hyp. tangent (global 3-component vector of float)
+0:250            'inF0' (in 3-component vector of float)
+0:252      Sequence
+0:252        move second child to first child (temp 3-component vector of float)
+0:252          'r067' (temp 3-component vector of float)
+0:252          trunc (global 3-component vector of float)
+0:252            'inF0' (in 3-component vector of float)
 0:255      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -3296,57 +3908,69 @@
 0:259      'inU0' (in 4-component vector of uint)
 0:259      'inU1' (in 4-component vector of uint)
 0:?     Sequence
-0:262      move second child to first child (temp bool)
-0:262        'r000' (temp bool)
-0:262        all (global bool)
-0:262          'inF0' (in 4-component vector of float)
-0:263      move second child to first child (temp 4-component vector of float)
-0:263        'r001' (temp 4-component vector of float)
-0:263        Absolute value (global 4-component vector of float)
-0:263          'inF0' (in 4-component vector of float)
-0:264      move second child to first child (temp 4-component vector of float)
-0:264        'r002' (temp 4-component vector of float)
-0:264        arc cosine (global 4-component vector of float)
-0:264          'inF0' (in 4-component vector of float)
-0:265      move second child to first child (temp bool)
-0:265        'r003' (temp bool)
-0:265        any (global bool)
-0:265          'inF0' (in 4-component vector of float)
-0:266      move second child to first child (temp 4-component vector of float)
-0:266        'r004' (temp 4-component vector of float)
-0:266        arc sine (global 4-component vector of float)
-0:266          'inF0' (in 4-component vector of float)
-0:267      move second child to first child (temp 4-component vector of int)
-0:267        'r005' (temp 4-component vector of int)
-0:267        floatBitsToInt (global 4-component vector of int)
-0:267          'inF0' (in 4-component vector of float)
-0:268      move second child to first child (temp 4-component vector of uint)
-0:268        'r006' (temp 4-component vector of uint)
-0:268        floatBitsToUint (global 4-component vector of uint)
-0:268          'inF0' (in 4-component vector of float)
-0:269      move second child to first child (temp 4-component vector of float)
-0:269        'r007' (temp 4-component vector of float)
-0:269        intBitsToFloat (global 4-component vector of float)
-0:269          'inU0' (in 4-component vector of uint)
-0:271      move second child to first child (temp 4-component vector of float)
-0:271        'r009' (temp 4-component vector of float)
-0:271        arc tangent (global 4-component vector of float)
-0:271          'inF0' (in 4-component vector of float)
-0:272      move second child to first child (temp 4-component vector of float)
-0:272        'r010' (temp 4-component vector of float)
-0:272        arc tangent (global 4-component vector of float)
-0:272          'inF0' (in 4-component vector of float)
-0:272          'inF1' (in 4-component vector of float)
-0:273      move second child to first child (temp 4-component vector of float)
-0:273        'r011' (temp 4-component vector of float)
-0:273        Ceiling (global 4-component vector of float)
-0:273          'inF0' (in 4-component vector of float)
-0:274      move second child to first child (temp 4-component vector of float)
-0:274        'r012' (temp 4-component vector of float)
-0:274        clamp (global 4-component vector of float)
-0:274          'inF0' (in 4-component vector of float)
-0:274          'inF1' (in 4-component vector of float)
-0:274          'inF2' (in 4-component vector of float)
+0:262      Sequence
+0:262        move second child to first child (temp bool)
+0:262          'r000' (temp bool)
+0:262          all (global bool)
+0:262            'inF0' (in 4-component vector of float)
+0:263      Sequence
+0:263        move second child to first child (temp 4-component vector of float)
+0:263          'r001' (temp 4-component vector of float)
+0:263          Absolute value (global 4-component vector of float)
+0:263            'inF0' (in 4-component vector of float)
+0:264      Sequence
+0:264        move second child to first child (temp 4-component vector of float)
+0:264          'r002' (temp 4-component vector of float)
+0:264          arc cosine (global 4-component vector of float)
+0:264            'inF0' (in 4-component vector of float)
+0:265      Sequence
+0:265        move second child to first child (temp bool)
+0:265          'r003' (temp bool)
+0:265          any (global bool)
+0:265            'inF0' (in 4-component vector of float)
+0:266      Sequence
+0:266        move second child to first child (temp 4-component vector of float)
+0:266          'r004' (temp 4-component vector of float)
+0:266          arc sine (global 4-component vector of float)
+0:266            'inF0' (in 4-component vector of float)
+0:267      Sequence
+0:267        move second child to first child (temp 4-component vector of int)
+0:267          'r005' (temp 4-component vector of int)
+0:267          floatBitsToInt (global 4-component vector of int)
+0:267            'inF0' (in 4-component vector of float)
+0:268      Sequence
+0:268        move second child to first child (temp 4-component vector of uint)
+0:268          'r006' (temp 4-component vector of uint)
+0:268          floatBitsToUint (global 4-component vector of uint)
+0:268            'inF0' (in 4-component vector of float)
+0:269      Sequence
+0:269        move second child to first child (temp 4-component vector of float)
+0:269          'r007' (temp 4-component vector of float)
+0:269          intBitsToFloat (global 4-component vector of float)
+0:269            'inU0' (in 4-component vector of uint)
+0:271      Sequence
+0:271        move second child to first child (temp 4-component vector of float)
+0:271          'r009' (temp 4-component vector of float)
+0:271          arc tangent (global 4-component vector of float)
+0:271            'inF0' (in 4-component vector of float)
+0:272      Sequence
+0:272        move second child to first child (temp 4-component vector of float)
+0:272          'r010' (temp 4-component vector of float)
+0:272          arc tangent (global 4-component vector of float)
+0:272            'inF0' (in 4-component vector of float)
+0:272            'inF1' (in 4-component vector of float)
+0:273      Sequence
+0:273        move second child to first child (temp 4-component vector of float)
+0:273          'r011' (temp 4-component vector of float)
+0:273          Ceiling (global 4-component vector of float)
+0:273            'inF0' (in 4-component vector of float)
+0:274      Sequence
+0:274        move second child to first child (temp 4-component vector of float)
+0:274          'r012' (temp 4-component vector of float)
+0:274          clamp (global 4-component vector of float)
+0:274            'inF0' (in 4-component vector of float)
+0:274            'inF1' (in 4-component vector of float)
+0:274            'inF2' (in 4-component vector of float)
 0:275      Test condition and select (temp void)
 0:275        Condition
 0:275        any (temp bool)
@@ -3359,245 +3983,290 @@
 0:275              0.000000
 0:275        true case
 0:275        Branch: Kill
-0:276      move second child to first child (temp 4-component vector of float)
-0:276        'r013' (temp 4-component vector of float)
-0:276        cosine (global 4-component vector of float)
-0:276          'inF0' (in 4-component vector of float)
-0:277      move second child to first child (temp 4-component vector of float)
-0:277        'r014' (temp 4-component vector of float)
-0:277        hyp. cosine (global 4-component vector of float)
-0:277          'inF0' (in 4-component vector of float)
-0:278      move second child to first child (temp 4-component vector of uint)
-0:278        'r015' (temp 4-component vector of uint)
-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:279      move second child to first child (temp 4-component vector of float)
-0:279        'r016' (temp 4-component vector of float)
-0:279        dPdx (global 4-component vector of float)
-0:279          'inF0' (in 4-component vector of float)
-0:280      move second child to first child (temp 4-component vector of float)
-0:280        'r017' (temp 4-component vector of float)
-0:280        dPdxCoarse (global 4-component vector of float)
-0:280          'inF0' (in 4-component vector of float)
-0:281      move second child to first child (temp 4-component vector of float)
-0:281        'r018' (temp 4-component vector of float)
-0:281        dPdxFine (global 4-component vector of float)
-0:281          'inF0' (in 4-component vector of float)
-0:282      move second child to first child (temp 4-component vector of float)
-0:282        'r019' (temp 4-component vector of float)
-0:282        dPdy (global 4-component vector of float)
-0:282          'inF0' (in 4-component vector of float)
-0:283      move second child to first child (temp 4-component vector of float)
-0:283        'r020' (temp 4-component vector of float)
-0:283        dPdyCoarse (global 4-component vector of float)
-0:283          'inF0' (in 4-component vector of float)
-0:284      move second child to first child (temp 4-component vector of float)
-0:284        'r021' (temp 4-component vector of float)
-0:284        dPdyFine (global 4-component vector of float)
-0:284          'inF0' (in 4-component vector of float)
-0:285      move second child to first child (temp 4-component vector of float)
-0:285        'r022' (temp 4-component vector of float)
-0:285        degrees (global 4-component vector of float)
-0:285          'inF0' (in 4-component vector of float)
-0:286      move second child to first child (temp float)
-0:286        'r023' (temp float)
-0:286        distance (global float)
-0:286          'inF0' (in 4-component vector of float)
-0:286          'inF1' (in 4-component vector of float)
-0:287      move second child to first child (temp float)
-0:287        'r024' (temp float)
-0:287        dot-product (global float)
-0:287          'inF0' (in 4-component vector of float)
-0:287          'inF1' (in 4-component vector of float)
-0:288      move second child to first child (temp 4-component vector of float)
-0:288        'r025' (temp 4-component vector of float)
-0:288        Construct vec4 (temp 4-component vector of float)
-0:288          Constant:
-0:288            1.000000
-0:288          component-wise multiply (temp float)
+0:276      Sequence
+0:276        move second child to first child (temp 4-component vector of float)
+0:276          'r013' (temp 4-component vector of float)
+0:276          cosine (global 4-component vector of float)
+0:276            'inF0' (in 4-component vector of float)
+0:277      Sequence
+0:277        move second child to first child (temp 4-component vector of float)
+0:277          'r014' (temp 4-component vector of float)
+0:277          hyp. cosine (global 4-component vector of float)
+0:277            'inF0' (in 4-component vector of float)
+0:278      Sequence
+0:278        move second child to first child (temp 4-component vector of uint)
+0:278          'r015' (temp 4-component vector of uint)
+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:279      Sequence
+0:279        move second child to first child (temp 4-component vector of float)
+0:279          'r016' (temp 4-component vector of float)
+0:279          dPdx (global 4-component vector of float)
+0:279            'inF0' (in 4-component vector of float)
+0:280      Sequence
+0:280        move second child to first child (temp 4-component vector of float)
+0:280          'r017' (temp 4-component vector of float)
+0:280          dPdxCoarse (global 4-component vector of float)
+0:280            'inF0' (in 4-component vector of float)
+0:281      Sequence
+0:281        move second child to first child (temp 4-component vector of float)
+0:281          'r018' (temp 4-component vector of float)
+0:281          dPdxFine (global 4-component vector of float)
+0:281            'inF0' (in 4-component vector of float)
+0:282      Sequence
+0:282        move second child to first child (temp 4-component vector of float)
+0:282          'r019' (temp 4-component vector of float)
+0:282          dPdy (global 4-component vector of float)
+0:282            'inF0' (in 4-component vector of float)
+0:283      Sequence
+0:283        move second child to first child (temp 4-component vector of float)
+0:283          'r020' (temp 4-component vector of float)
+0:283          dPdyCoarse (global 4-component vector of float)
+0:283            'inF0' (in 4-component vector of float)
+0:284      Sequence
+0:284        move second child to first child (temp 4-component vector of float)
+0:284          'r021' (temp 4-component vector of float)
+0:284          dPdyFine (global 4-component vector of float)
+0:284            'inF0' (in 4-component vector of float)
+0:285      Sequence
+0:285        move second child to first child (temp 4-component vector of float)
+0:285          'r022' (temp 4-component vector of float)
+0:285          degrees (global 4-component vector of float)
+0:285            'inF0' (in 4-component vector of float)
+0:286      Sequence
+0:286        move second child to first child (temp float)
+0:286          'r023' (temp float)
+0:286          distance (global float)
+0:286            'inF0' (in 4-component vector of float)
+0:286            'inF1' (in 4-component vector of float)
+0:287      Sequence
+0:287        move second child to first child (temp float)
+0:287          'r024' (temp float)
+0:287          dot-product (global float)
+0:287            'inF0' (in 4-component vector of float)
+0:287            'inF1' (in 4-component vector of float)
+0:288      Sequence
+0:288        move second child to first child (temp 4-component vector of float)
+0:288          'r025' (temp 4-component vector of float)
+0:288          Construct vec4 (temp 4-component vector of float)
+0:288            Constant:
+0:288              1.000000
+0:288            component-wise multiply (temp float)
+0:288              direct index (temp float)
+0:288                'inF0' (in 4-component vector of float)
+0:288                Constant:
+0:288                  1 (const int)
+0:288              direct index (temp float)
+0:288                'inF1' (in 4-component vector of float)
+0:288                Constant:
+0:288                  1 (const int)
 0:288            direct index (temp float)
 0:288              'inF0' (in 4-component vector of float)
 0:288              Constant:
-0:288                1 (const int)
+0:288                2 (const int)
 0:288            direct index (temp float)
 0:288              'inF1' (in 4-component vector of float)
 0:288              Constant:
-0:288                1 (const int)
-0:288          direct index (temp float)
-0:288            'inF0' (in 4-component vector of float)
-0:288            Constant:
-0:288              2 (const int)
-0:288          direct index (temp float)
-0:288            'inF1' (in 4-component vector of float)
-0:288            Constant:
-0:288              3 (const int)
-0:292      move second child to first child (temp 4-component vector of float)
-0:292        'r029' (temp 4-component vector of float)
-0:292        exp (global 4-component vector of float)
-0:292          'inF0' (in 4-component vector of float)
-0:293      move second child to first child (temp 4-component vector of float)
-0:293        'r030' (temp 4-component vector of float)
-0:293        exp2 (global 4-component vector of float)
-0:293          'inF0' (in 4-component vector of float)
-0:294      move second child to first child (temp 4-component vector of float)
-0:294        'r031' (temp 4-component vector of float)
-0:294        face-forward (global 4-component vector of float)
-0:294          'inF0' (in 4-component vector of float)
-0:294          'inF1' (in 4-component vector of float)
-0:294          'inF2' (in 4-component vector of float)
-0:295      move second child to first child (temp 4-component vector of uint)
-0:295        'r032' (temp 4-component vector of uint)
-0:?         findMSB (global 4-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:?             9 (const uint)
-0:?             10 (const uint)
-0:296      move second child to first child (temp 4-component vector of uint)
-0:296        'r033' (temp 4-component vector of uint)
-0:?         findLSB (global 4-component vector of uint)
-0:?           Constant:
-0:?             7 (const uint)
-0:?             8 (const uint)
-0:?             9 (const uint)
-0:?             10 (const uint)
-0:297      move second child to first child (temp 4-component vector of float)
-0:297        'r034' (temp 4-component vector of float)
-0:297        Floor (global 4-component vector of float)
-0:297          'inF0' (in 4-component vector of float)
-0:299      move second child to first child (temp 4-component vector of float)
-0:299        'r036' (temp 4-component vector of float)
-0:299        mod (global 4-component vector of float)
-0:299          'inF0' (in 4-component vector of float)
-0:299          'inF1' (in 4-component vector of float)
-0:300      move second child to first child (temp 4-component vector of float)
-0:300        'r037' (temp 4-component vector of float)
-0:300        Fraction (global 4-component vector of float)
-0:300          'inF0' (in 4-component vector of float)
-0:301      move second child to first child (temp 4-component vector of float)
-0:301        'r038' (temp 4-component vector of float)
-0:301        frexp (global 4-component vector of float)
-0:301          'inF0' (in 4-component vector of float)
-0:301          'inF1' (in 4-component vector of float)
-0:302      move second child to first child (temp 4-component vector of float)
-0:302        'r039' (temp 4-component vector of float)
-0:302        fwidth (global 4-component vector of float)
-0:302          'inF0' (in 4-component vector of float)
-0:303      move second child to first child (temp 4-component vector of bool)
-0:303        'r040' (temp 4-component vector of bool)
-0:303        isinf (global 4-component vector of bool)
-0:303          'inF0' (in 4-component vector of float)
-0:304      move second child to first child (temp 4-component vector of bool)
-0:304        'r041' (temp 4-component vector of bool)
-0:304        isnan (global 4-component vector of bool)
-0:304          'inF0' (in 4-component vector of float)
-0:305      move second child to first child (temp 4-component vector of float)
-0:305        'r042' (temp 4-component vector of float)
-0:305        ldexp (global 4-component vector of float)
-0:305          'inF0' (in 4-component vector of float)
-0:305          'inF1' (in 4-component vector of float)
-0:306      move second child to first child (temp 4-component vector of float)
-0:306        'r039a' (temp 4-component vector of float)
-0:306        mix (global 4-component vector of float)
-0:306          'inF0' (in 4-component vector of float)
-0:306          'inF1' (in 4-component vector of float)
-0:306          'inF2' (in 4-component vector of float)
-0:307      move second child to first child (temp float)
-0:307        'r043' (temp float)
-0:307        length (global float)
-0:307          'inF0' (in 4-component vector of float)
-0:308      move second child to first child (temp 4-component vector of float)
-0:308        'r044' (temp 4-component vector of float)
-0:308        log (global 4-component vector of float)
-0:308          'inF0' (in 4-component vector of float)
-0:309      move second child to first child (temp 4-component vector of float)
-0:309        'r045' (temp 4-component vector of float)
-0:309        vector-scale (temp 4-component vector of float)
-0:309          log2 (temp 4-component vector of float)
-0:309            'inF0' (in 4-component vector of float)
-0:309          Constant:
-0:309            0.301030
-0:310      move second child to first child (temp 4-component vector of float)
-0:310        'r046' (temp 4-component vector of float)
-0:310        log2 (global 4-component vector of float)
-0:310          'inF0' (in 4-component vector of float)
-0:311      move second child to first child (temp 4-component vector of float)
-0:311        'r047' (temp 4-component vector of float)
-0:311        max (global 4-component vector of float)
-0:311          'inF0' (in 4-component vector of float)
-0:311          'inF1' (in 4-component vector of float)
-0:312      move second child to first child (temp 4-component vector of float)
-0:312        'r048' (temp 4-component vector of float)
-0:312        min (global 4-component vector of float)
-0:312          'inF0' (in 4-component vector of float)
-0:312          'inF1' (in 4-component vector of float)
-0:313      move second child to first child (temp 4-component vector of float)
-0:313        'r049' (temp 4-component vector of float)
-0:313        normalize (global 4-component vector of float)
-0:313          'inF0' (in 4-component vector of float)
-0:314      move second child to first child (temp 4-component vector of float)
-0:314        'r050' (temp 4-component vector of float)
-0:314        pow (global 4-component vector of float)
-0:314          'inF0' (in 4-component vector of float)
-0:314          'inF1' (in 4-component vector of float)
-0:315      move second child to first child (temp 4-component vector of float)
-0:315        'r051' (temp 4-component vector of float)
-0:315        radians (global 4-component vector of float)
-0:315          'inF0' (in 4-component vector of float)
-0:316      move second child to first child (temp 4-component vector of float)
-0:316        'r052' (temp 4-component vector of float)
-0:316        divide (temp 4-component vector of float)
-0:316          Constant:
-0:316            1.000000
-0:316          'inF0' (in 4-component vector of float)
-0:317      move second child to first child (temp 4-component vector of float)
-0:317        'r053' (temp 4-component vector of float)
-0:317        reflect (global 4-component vector of float)
-0:317          'inF0' (in 4-component vector of float)
-0:317          'inF1' (in 4-component vector of float)
-0:318      move second child to first child (temp 4-component vector of float)
-0:318        'r054' (temp 4-component vector of float)
-0:318        refract (global 4-component vector of float)
-0:318          'inF0' (in 4-component vector of float)
-0:318          'inF1' (in 4-component vector of float)
-0:318          Constant:
-0:318            2.000000
-0:319      move second child to first child (temp 4-component vector of uint)
-0:319        'r055' (temp 4-component vector of uint)
-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:320      move second child to first child (temp 4-component vector of float)
-0:320        'r056' (temp 4-component vector of float)
-0:320        roundEven (global 4-component vector of float)
-0:320          'inF0' (in 4-component vector of float)
-0:321      move second child to first child (temp 4-component vector of float)
-0:321        'r057' (temp 4-component vector of float)
-0:321        inverse sqrt (global 4-component vector of float)
-0:321          'inF0' (in 4-component vector of float)
-0:322      move second child to first child (temp 4-component vector of float)
-0:322        'r058' (temp 4-component vector of float)
-0:322        clamp (temp 4-component vector of float)
-0:322          'inF0' (in 4-component vector of float)
-0:322          Constant:
-0:322            0.000000
-0:322          Constant:
-0:322            1.000000
-0:323      move second child to first child (temp 4-component vector of float)
-0:323        'r059' (temp 4-component vector of float)
-0:323        Sign (global 4-component vector of float)
-0:323          'inF0' (in 4-component vector of float)
-0:324      move second child to first child (temp 4-component vector of float)
-0:324        'r060' (temp 4-component vector of float)
-0:324        sine (global 4-component vector of float)
-0:324          'inF0' (in 4-component vector of float)
+0:288                3 (const int)
+0:292      Sequence
+0:292        move second child to first child (temp 4-component vector of float)
+0:292          'r029' (temp 4-component vector of float)
+0:292          exp (global 4-component vector of float)
+0:292            'inF0' (in 4-component vector of float)
+0:293      Sequence
+0:293        move second child to first child (temp 4-component vector of float)
+0:293          'r030' (temp 4-component vector of float)
+0:293          exp2 (global 4-component vector of float)
+0:293            'inF0' (in 4-component vector of float)
+0:294      Sequence
+0:294        move second child to first child (temp 4-component vector of float)
+0:294          'r031' (temp 4-component vector of float)
+0:294          face-forward (global 4-component vector of float)
+0:294            'inF0' (in 4-component vector of float)
+0:294            'inF1' (in 4-component vector of float)
+0:294            'inF2' (in 4-component vector of float)
+0:295      Sequence
+0:295        move second child to first child (temp 4-component vector of uint)
+0:295          'r032' (temp 4-component vector of uint)
+0:?           findMSB (global 4-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:?               9 (const uint)
+0:?               10 (const uint)
+0:296      Sequence
+0:296        move second child to first child (temp 4-component vector of uint)
+0:296          'r033' (temp 4-component vector of uint)
+0:?           findLSB (global 4-component vector of uint)
+0:?             Constant:
+0:?               7 (const uint)
+0:?               8 (const uint)
+0:?               9 (const uint)
+0:?               10 (const uint)
+0:297      Sequence
+0:297        move second child to first child (temp 4-component vector of float)
+0:297          'r034' (temp 4-component vector of float)
+0:297          Floor (global 4-component vector of float)
+0:297            'inF0' (in 4-component vector of float)
+0:299      Sequence
+0:299        move second child to first child (temp 4-component vector of float)
+0:299          'r036' (temp 4-component vector of float)
+0:299          mod (global 4-component vector of float)
+0:299            'inF0' (in 4-component vector of float)
+0:299            'inF1' (in 4-component vector of float)
+0:300      Sequence
+0:300        move second child to first child (temp 4-component vector of float)
+0:300          'r037' (temp 4-component vector of float)
+0:300          Fraction (global 4-component vector of float)
+0:300            'inF0' (in 4-component vector of float)
+0:301      Sequence
+0:301        move second child to first child (temp 4-component vector of float)
+0:301          'r038' (temp 4-component vector of float)
+0:301          frexp (global 4-component vector of float)
+0:301            'inF0' (in 4-component vector of float)
+0:301            'inF1' (in 4-component vector of float)
+0:302      Sequence
+0:302        move second child to first child (temp 4-component vector of float)
+0:302          'r039' (temp 4-component vector of float)
+0:302          fwidth (global 4-component vector of float)
+0:302            'inF0' (in 4-component vector of float)
+0:303      Sequence
+0:303        move second child to first child (temp 4-component vector of bool)
+0:303          'r040' (temp 4-component vector of bool)
+0:303          isinf (global 4-component vector of bool)
+0:303            'inF0' (in 4-component vector of float)
+0:304      Sequence
+0:304        move second child to first child (temp 4-component vector of bool)
+0:304          'r041' (temp 4-component vector of bool)
+0:304          isnan (global 4-component vector of bool)
+0:304            'inF0' (in 4-component vector of float)
+0:305      Sequence
+0:305        move second child to first child (temp 4-component vector of float)
+0:305          'r042' (temp 4-component vector of float)
+0:305          ldexp (global 4-component vector of float)
+0:305            'inF0' (in 4-component vector of float)
+0:305            'inF1' (in 4-component vector of float)
+0:306      Sequence
+0:306        move second child to first child (temp 4-component vector of float)
+0:306          'r039a' (temp 4-component vector of float)
+0:306          mix (global 4-component vector of float)
+0:306            'inF0' (in 4-component vector of float)
+0:306            'inF1' (in 4-component vector of float)
+0:306            'inF2' (in 4-component vector of float)
+0:307      Sequence
+0:307        move second child to first child (temp float)
+0:307          'r043' (temp float)
+0:307          length (global float)
+0:307            'inF0' (in 4-component vector of float)
+0:308      Sequence
+0:308        move second child to first child (temp 4-component vector of float)
+0:308          'r044' (temp 4-component vector of float)
+0:308          log (global 4-component vector of float)
+0:308            'inF0' (in 4-component vector of float)
+0:309      Sequence
+0:309        move second child to first child (temp 4-component vector of float)
+0:309          'r045' (temp 4-component vector of float)
+0:309          vector-scale (temp 4-component vector of float)
+0:309            log2 (temp 4-component vector of float)
+0:309              'inF0' (in 4-component vector of float)
+0:309            Constant:
+0:309              0.301030
+0:310      Sequence
+0:310        move second child to first child (temp 4-component vector of float)
+0:310          'r046' (temp 4-component vector of float)
+0:310          log2 (global 4-component vector of float)
+0:310            'inF0' (in 4-component vector of float)
+0:311      Sequence
+0:311        move second child to first child (temp 4-component vector of float)
+0:311          'r047' (temp 4-component vector of float)
+0:311          max (global 4-component vector of float)
+0:311            'inF0' (in 4-component vector of float)
+0:311            'inF1' (in 4-component vector of float)
+0:312      Sequence
+0:312        move second child to first child (temp 4-component vector of float)
+0:312          'r048' (temp 4-component vector of float)
+0:312          min (global 4-component vector of float)
+0:312            'inF0' (in 4-component vector of float)
+0:312            'inF1' (in 4-component vector of float)
+0:313      Sequence
+0:313        move second child to first child (temp 4-component vector of float)
+0:313          'r049' (temp 4-component vector of float)
+0:313          normalize (global 4-component vector of float)
+0:313            'inF0' (in 4-component vector of float)
+0:314      Sequence
+0:314        move second child to first child (temp 4-component vector of float)
+0:314          'r050' (temp 4-component vector of float)
+0:314          pow (global 4-component vector of float)
+0:314            'inF0' (in 4-component vector of float)
+0:314            'inF1' (in 4-component vector of float)
+0:315      Sequence
+0:315        move second child to first child (temp 4-component vector of float)
+0:315          'r051' (temp 4-component vector of float)
+0:315          radians (global 4-component vector of float)
+0:315            'inF0' (in 4-component vector of float)
+0:316      Sequence
+0:316        move second child to first child (temp 4-component vector of float)
+0:316          'r052' (temp 4-component vector of float)
+0:316          divide (temp 4-component vector of float)
+0:316            Constant:
+0:316              1.000000
+0:316            'inF0' (in 4-component vector of float)
+0:317      Sequence
+0:317        move second child to first child (temp 4-component vector of float)
+0:317          'r053' (temp 4-component vector of float)
+0:317          reflect (global 4-component vector of float)
+0:317            'inF0' (in 4-component vector of float)
+0:317            'inF1' (in 4-component vector of float)
+0:318      Sequence
+0:318        move second child to first child (temp 4-component vector of float)
+0:318          'r054' (temp 4-component vector of float)
+0:318          refract (global 4-component vector of float)
+0:318            'inF0' (in 4-component vector of float)
+0:318            'inF1' (in 4-component vector of float)
+0:318            Constant:
+0:318              2.000000
+0:319      Sequence
+0:319        move second child to first child (temp 4-component vector of uint)
+0:319          'r055' (temp 4-component vector of uint)
+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:320      Sequence
+0:320        move second child to first child (temp 4-component vector of float)
+0:320          'r056' (temp 4-component vector of float)
+0:320          roundEven (global 4-component vector of float)
+0:320            'inF0' (in 4-component vector of float)
+0:321      Sequence
+0:321        move second child to first child (temp 4-component vector of float)
+0:321          'r057' (temp 4-component vector of float)
+0:321          inverse sqrt (global 4-component vector of float)
+0:321            'inF0' (in 4-component vector of float)
+0:322      Sequence
+0:322        move second child to first child (temp 4-component vector of float)
+0:322          'r058' (temp 4-component vector of float)
+0:322          clamp (temp 4-component vector of float)
+0:322            'inF0' (in 4-component vector of float)
+0:322            Constant:
+0:322              0.000000
+0:322            Constant:
+0:322              1.000000
+0:323      Sequence
+0:323        move second child to first child (temp 4-component vector of float)
+0:323          'r059' (temp 4-component vector of float)
+0:323          Sign (global 4-component vector of float)
+0:323            'inF0' (in 4-component vector of float)
+0:324      Sequence
+0:324        move second child to first child (temp 4-component vector of float)
+0:324          'r060' (temp 4-component vector of float)
+0:324          sine (global 4-component vector of float)
+0:324            'inF0' (in 4-component vector of float)
 0:325      Sequence
 0:325        move second child to first child (temp 4-component vector of float)
 0:325          'inF1' (in 4-component vector of float)
@@ -3607,37 +4276,44 @@
 0:325          'inF2' (in 4-component vector of float)
 0:325          cosine (temp 4-component vector of float)
 0:325            'inF0' (in 4-component vector of float)
-0:326      move second child to first child (temp 4-component vector of float)
-0:326        'r061' (temp 4-component vector of float)
-0:326        hyp. sine (global 4-component vector of float)
-0:326          'inF0' (in 4-component vector of float)
-0:327      move second child to first child (temp 4-component vector of float)
-0:327        'r062' (temp 4-component vector of float)
-0:327        smoothstep (global 4-component vector of float)
-0:327          'inF0' (in 4-component vector of float)
-0:327          'inF1' (in 4-component vector of float)
-0:327          'inF2' (in 4-component vector of float)
-0:328      move second child to first child (temp 4-component vector of float)
-0:328        'r063' (temp 4-component vector of float)
-0:328        sqrt (global 4-component vector of float)
-0:328          'inF0' (in 4-component vector of float)
-0:329      move second child to first child (temp 4-component vector of float)
-0:329        'r064' (temp 4-component vector of float)
-0:329        step (global 4-component vector of float)
-0:329          'inF0' (in 4-component vector of float)
-0:329          'inF1' (in 4-component vector of float)
-0:330      move second child to first child (temp 4-component vector of float)
-0:330        'r065' (temp 4-component vector of float)
-0:330        tangent (global 4-component vector of float)
-0:330          'inF0' (in 4-component vector of float)
-0:331      move second child to first child (temp 4-component vector of float)
-0:331        'r066' (temp 4-component vector of float)
-0:331        hyp. tangent (global 4-component vector of float)
-0:331          'inF0' (in 4-component vector of float)
-0:333      move second child to first child (temp 4-component vector of float)
-0:333        'r067' (temp 4-component vector of float)
-0:333        trunc (global 4-component vector of float)
-0:333          'inF0' (in 4-component vector of float)
+0:326      Sequence
+0:326        move second child to first child (temp 4-component vector of float)
+0:326          'r061' (temp 4-component vector of float)
+0:326          hyp. sine (global 4-component vector of float)
+0:326            'inF0' (in 4-component vector of float)
+0:327      Sequence
+0:327        move second child to first child (temp 4-component vector of float)
+0:327          'r062' (temp 4-component vector of float)
+0:327          smoothstep (global 4-component vector of float)
+0:327            'inF0' (in 4-component vector of float)
+0:327            'inF1' (in 4-component vector of float)
+0:327            'inF2' (in 4-component vector of float)
+0:328      Sequence
+0:328        move second child to first child (temp 4-component vector of float)
+0:328          'r063' (temp 4-component vector of float)
+0:328          sqrt (global 4-component vector of float)
+0:328            'inF0' (in 4-component vector of float)
+0:329      Sequence
+0:329        move second child to first child (temp 4-component vector of float)
+0:329          'r064' (temp 4-component vector of float)
+0:329          step (global 4-component vector of float)
+0:329            'inF0' (in 4-component vector of float)
+0:329            'inF1' (in 4-component vector of float)
+0:330      Sequence
+0:330        move second child to first child (temp 4-component vector of float)
+0:330          'r065' (temp 4-component vector of float)
+0:330          tangent (global 4-component vector of float)
+0:330            'inF0' (in 4-component vector of float)
+0:331      Sequence
+0:331        move second child to first child (temp 4-component vector of float)
+0:331          'r066' (temp 4-component vector of float)
+0:331          hyp. tangent (global 4-component vector of float)
+0:331            'inF0' (in 4-component vector of float)
+0:333      Sequence
+0:333        move second child to first child (temp 4-component vector of float)
+0:333          'r067' (temp 4-component vector of float)
+0:333          trunc (global 4-component vector of float)
+0:333            'inF0' (in 4-component vector of float)
 0:336      Branch: Return with expression
 0:?         Constant:
 0:?           1.000000
@@ -3650,37 +4326,44 @@
 0:400      'inF1' (in 2X2 matrix of float)
 0:400      'inF2' (in 2X2 matrix of float)
 0:?     Sequence
-0:402      move second child to first child (temp bool)
-0:402        'r000' (temp bool)
-0:402        all (global bool)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r001' (temp 2X2 matrix of float)
-0:402        Absolute value (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp bool)
+0:402          'r000' (temp bool)
+0:402          all (global bool)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r001' (temp 2X2 matrix of float)
+0:402          Absolute value (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      arc cosine (global 2X2 matrix of float)
 0:402        'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp bool)
-0:402        'r003' (temp bool)
-0:402        any (global bool)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r004' (temp 2X2 matrix of float)
-0:402        arc sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r005' (temp 2X2 matrix of float)
-0:402        arc tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r006' (temp 2X2 matrix of float)
-0:402        arc tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r007' (temp 2X2 matrix of float)
-0:402        Ceiling (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp bool)
+0:402          'r003' (temp bool)
+0:402          any (global bool)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r004' (temp 2X2 matrix of float)
+0:402          arc sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r005' (temp 2X2 matrix of float)
+0:402          arc tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r006' (temp 2X2 matrix of float)
+0:402          arc tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r007' (temp 2X2 matrix of float)
+0:402          Ceiling (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      Test condition and select (temp void)
 0:402        Condition
 0:402        any (temp bool)
@@ -3693,151 +4376,183 @@
 0:402              0.000000
 0:402        true case
 0:402        Branch: Kill
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r008' (temp 2X2 matrix of float)
-0:402        clamp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r009' (temp 2X2 matrix of float)
-0:402        cosine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r010' (temp 2X2 matrix of float)
-0:402        hyp. cosine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r011' (temp 2X2 matrix of float)
-0:402        dPdx (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r012' (temp 2X2 matrix of float)
-0:402        dPdxCoarse (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r013' (temp 2X2 matrix of float)
-0:402        dPdxFine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r014' (temp 2X2 matrix of float)
-0:402        dPdy (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r015' (temp 2X2 matrix of float)
-0:402        dPdyCoarse (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r016' (temp 2X2 matrix of float)
-0:402        dPdyFine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r017' (temp 2X2 matrix of float)
-0:402        degrees (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp float)
-0:402        'r018' (temp float)
-0:402        determinant (global float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r019' (temp 2X2 matrix of float)
-0:402        exp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'R020' (temp 2X2 matrix of float)
-0:402        exp2 (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r021' (temp 2X2 matrix of float)
-0:402        Floor (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r022' (temp 2X2 matrix of float)
-0:402        mod (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r023' (temp 2X2 matrix of float)
-0:402        Fraction (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r024' (temp 2X2 matrix of float)
-0:402        frexp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r025' (temp 2X2 matrix of float)
-0:402        fwidth (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r026' (temp 2X2 matrix of float)
-0:402        ldexp (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r026a' (temp 2X2 matrix of float)
-0:402        mix (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r027' (temp 2X2 matrix of float)
-0:402        log (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r028' (temp 2X2 matrix of float)
-0:402        matrix-scale (temp 2X2 matrix of float)
-0:402          log2 (temp 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r008' (temp 2X2 matrix of float)
+0:402          clamp (global 2X2 matrix of float)
 0:402            'inF0' (in 2X2 matrix of float)
-0:402          Constant:
-0:402            0.301030
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r029' (temp 2X2 matrix of float)
-0:402        log2 (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r030' (temp 2X2 matrix of float)
-0:402        max (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r031' (temp 2X2 matrix of float)
-0:402        min (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r032' (temp 2X2 matrix of float)
-0:402        pow (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r033' (temp 2X2 matrix of float)
-0:402        radians (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r034' (temp 2X2 matrix of float)
-0:402        roundEven (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r035' (temp 2X2 matrix of float)
-0:402        inverse sqrt (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r036' (temp 2X2 matrix of float)
-0:402        clamp (temp 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          Constant:
-0:402            0.000000
-0:402          Constant:
-0:402            1.000000
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r037' (temp 2X2 matrix of float)
-0:402        Sign (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r038' (temp 2X2 matrix of float)
-0:402        sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r009' (temp 2X2 matrix of float)
+0:402          cosine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r010' (temp 2X2 matrix of float)
+0:402          hyp. cosine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r011' (temp 2X2 matrix of float)
+0:402          dPdx (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r012' (temp 2X2 matrix of float)
+0:402          dPdxCoarse (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r013' (temp 2X2 matrix of float)
+0:402          dPdxFine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r014' (temp 2X2 matrix of float)
+0:402          dPdy (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r015' (temp 2X2 matrix of float)
+0:402          dPdyCoarse (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r016' (temp 2X2 matrix of float)
+0:402          dPdyFine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r017' (temp 2X2 matrix of float)
+0:402          degrees (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp float)
+0:402          'r018' (temp float)
+0:402          determinant (global float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r019' (temp 2X2 matrix of float)
+0:402          exp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'R020' (temp 2X2 matrix of float)
+0:402          exp2 (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r021' (temp 2X2 matrix of float)
+0:402          Floor (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r022' (temp 2X2 matrix of float)
+0:402          mod (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r023' (temp 2X2 matrix of float)
+0:402          Fraction (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r024' (temp 2X2 matrix of float)
+0:402          frexp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r025' (temp 2X2 matrix of float)
+0:402          fwidth (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r026' (temp 2X2 matrix of float)
+0:402          ldexp (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r026a' (temp 2X2 matrix of float)
+0:402          mix (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r027' (temp 2X2 matrix of float)
+0:402          log (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r028' (temp 2X2 matrix of float)
+0:402          matrix-scale (temp 2X2 matrix of float)
+0:402            log2 (temp 2X2 matrix of float)
+0:402              'inF0' (in 2X2 matrix of float)
+0:402            Constant:
+0:402              0.301030
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r029' (temp 2X2 matrix of float)
+0:402          log2 (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r030' (temp 2X2 matrix of float)
+0:402          max (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r031' (temp 2X2 matrix of float)
+0:402          min (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r032' (temp 2X2 matrix of float)
+0:402          pow (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r033' (temp 2X2 matrix of float)
+0:402          radians (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r034' (temp 2X2 matrix of float)
+0:402          roundEven (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r035' (temp 2X2 matrix of float)
+0:402          inverse sqrt (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r036' (temp 2X2 matrix of float)
+0:402          clamp (temp 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            Constant:
+0:402              0.000000
+0:402            Constant:
+0:402              1.000000
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r037' (temp 2X2 matrix of float)
+0:402          Sign (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r038' (temp 2X2 matrix of float)
+0:402          sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      Sequence
 0:402        move second child to first child (temp 2X2 matrix of float)
 0:402          'inF1' (in 2X2 matrix of float)
@@ -3847,39 +4562,46 @@
 0:402          'inF2' (in 2X2 matrix of float)
 0:402          cosine (temp 2X2 matrix of float)
 0:402            'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r039' (temp 2X2 matrix of float)
-0:402        hyp. sine (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r049' (temp 2X2 matrix of float)
-0:402        smoothstep (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402          'inF2' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r041' (temp 2X2 matrix of float)
-0:402        sqrt (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r042' (temp 2X2 matrix of float)
-0:402        step (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402          'inF1' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r043' (temp 2X2 matrix of float)
-0:402        tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r044' (temp 2X2 matrix of float)
-0:402        hyp. tangent (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r039' (temp 2X2 matrix of float)
+0:402          hyp. sine (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r049' (temp 2X2 matrix of float)
+0:402          smoothstep (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402            'inF2' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r041' (temp 2X2 matrix of float)
+0:402          sqrt (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r042' (temp 2X2 matrix of float)
+0:402          step (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402            'inF1' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r043' (temp 2X2 matrix of float)
+0:402          tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r044' (temp 2X2 matrix of float)
+0:402          hyp. tangent (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:402      transpose (global 2X2 matrix of float)
 0:402        'inF0' (in 2X2 matrix of float)
-0:402      move second child to first child (temp 2X2 matrix of float)
-0:402        'r046' (temp 2X2 matrix of float)
-0:402        trunc (global 2X2 matrix of float)
-0:402          'inF0' (in 2X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp 2X2 matrix of float)
+0:402          'r046' (temp 2X2 matrix of float)
+0:402          trunc (global 2X2 matrix of float)
+0:402            'inF0' (in 2X2 matrix of float)
 0:405      Branch: Return with expression
 0:?         Constant:
 0:?           2.000000
@@ -3892,37 +4614,44 @@
 0:409      'inF1' (in 3X3 matrix of float)
 0:409      'inF2' (in 3X3 matrix of float)
 0:?     Sequence
-0:411      move second child to first child (temp bool)
-0:411        'r000' (temp bool)
-0:411        all (global bool)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r001' (temp 3X3 matrix of float)
-0:411        Absolute value (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp bool)
+0:411          'r000' (temp bool)
+0:411          all (global bool)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r001' (temp 3X3 matrix of float)
+0:411          Absolute value (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      arc cosine (global 3X3 matrix of float)
 0:411        'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp bool)
-0:411        'r003' (temp bool)
-0:411        any (global bool)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r004' (temp 3X3 matrix of float)
-0:411        arc sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r005' (temp 3X3 matrix of float)
-0:411        arc tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r006' (temp 3X3 matrix of float)
-0:411        arc tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r007' (temp 3X3 matrix of float)
-0:411        Ceiling (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp bool)
+0:411          'r003' (temp bool)
+0:411          any (global bool)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r004' (temp 3X3 matrix of float)
+0:411          arc sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r005' (temp 3X3 matrix of float)
+0:411          arc tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r006' (temp 3X3 matrix of float)
+0:411          arc tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r007' (temp 3X3 matrix of float)
+0:411          Ceiling (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      Test condition and select (temp void)
 0:411        Condition
 0:411        any (temp bool)
@@ -3940,151 +4669,183 @@
 0:411              0.000000
 0:411        true case
 0:411        Branch: Kill
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r008' (temp 3X3 matrix of float)
-0:411        clamp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r009' (temp 3X3 matrix of float)
-0:411        cosine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r010' (temp 3X3 matrix of float)
-0:411        hyp. cosine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r011' (temp 3X3 matrix of float)
-0:411        dPdx (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r012' (temp 3X3 matrix of float)
-0:411        dPdxCoarse (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r013' (temp 3X3 matrix of float)
-0:411        dPdxFine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r014' (temp 3X3 matrix of float)
-0:411        dPdy (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r015' (temp 3X3 matrix of float)
-0:411        dPdyCoarse (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r016' (temp 3X3 matrix of float)
-0:411        dPdyFine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r017' (temp 3X3 matrix of float)
-0:411        degrees (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp float)
-0:411        'r018' (temp float)
-0:411        determinant (global float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r019' (temp 3X3 matrix of float)
-0:411        exp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'R020' (temp 3X3 matrix of float)
-0:411        exp2 (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r021' (temp 3X3 matrix of float)
-0:411        Floor (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r022' (temp 3X3 matrix of float)
-0:411        mod (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r023' (temp 3X3 matrix of float)
-0:411        Fraction (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r024' (temp 3X3 matrix of float)
-0:411        frexp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r025' (temp 3X3 matrix of float)
-0:411        fwidth (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r026' (temp 3X3 matrix of float)
-0:411        ldexp (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r026a' (temp 3X3 matrix of float)
-0:411        mix (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r027' (temp 3X3 matrix of float)
-0:411        log (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r028' (temp 3X3 matrix of float)
-0:411        matrix-scale (temp 3X3 matrix of float)
-0:411          log2 (temp 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r008' (temp 3X3 matrix of float)
+0:411          clamp (global 3X3 matrix of float)
 0:411            'inF0' (in 3X3 matrix of float)
-0:411          Constant:
-0:411            0.301030
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r029' (temp 3X3 matrix of float)
-0:411        log2 (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r030' (temp 3X3 matrix of float)
-0:411        max (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r031' (temp 3X3 matrix of float)
-0:411        min (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r032' (temp 3X3 matrix of float)
-0:411        pow (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r033' (temp 3X3 matrix of float)
-0:411        radians (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r034' (temp 3X3 matrix of float)
-0:411        roundEven (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r035' (temp 3X3 matrix of float)
-0:411        inverse sqrt (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r036' (temp 3X3 matrix of float)
-0:411        clamp (temp 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          Constant:
-0:411            0.000000
-0:411          Constant:
-0:411            1.000000
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r037' (temp 3X3 matrix of float)
-0:411        Sign (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r038' (temp 3X3 matrix of float)
-0:411        sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r009' (temp 3X3 matrix of float)
+0:411          cosine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r010' (temp 3X3 matrix of float)
+0:411          hyp. cosine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r011' (temp 3X3 matrix of float)
+0:411          dPdx (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r012' (temp 3X3 matrix of float)
+0:411          dPdxCoarse (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r013' (temp 3X3 matrix of float)
+0:411          dPdxFine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r014' (temp 3X3 matrix of float)
+0:411          dPdy (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r015' (temp 3X3 matrix of float)
+0:411          dPdyCoarse (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r016' (temp 3X3 matrix of float)
+0:411          dPdyFine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r017' (temp 3X3 matrix of float)
+0:411          degrees (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp float)
+0:411          'r018' (temp float)
+0:411          determinant (global float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r019' (temp 3X3 matrix of float)
+0:411          exp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'R020' (temp 3X3 matrix of float)
+0:411          exp2 (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r021' (temp 3X3 matrix of float)
+0:411          Floor (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r022' (temp 3X3 matrix of float)
+0:411          mod (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r023' (temp 3X3 matrix of float)
+0:411          Fraction (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r024' (temp 3X3 matrix of float)
+0:411          frexp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r025' (temp 3X3 matrix of float)
+0:411          fwidth (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r026' (temp 3X3 matrix of float)
+0:411          ldexp (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r026a' (temp 3X3 matrix of float)
+0:411          mix (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r027' (temp 3X3 matrix of float)
+0:411          log (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r028' (temp 3X3 matrix of float)
+0:411          matrix-scale (temp 3X3 matrix of float)
+0:411            log2 (temp 3X3 matrix of float)
+0:411              'inF0' (in 3X3 matrix of float)
+0:411            Constant:
+0:411              0.301030
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r029' (temp 3X3 matrix of float)
+0:411          log2 (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r030' (temp 3X3 matrix of float)
+0:411          max (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r031' (temp 3X3 matrix of float)
+0:411          min (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r032' (temp 3X3 matrix of float)
+0:411          pow (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r033' (temp 3X3 matrix of float)
+0:411          radians (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r034' (temp 3X3 matrix of float)
+0:411          roundEven (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r035' (temp 3X3 matrix of float)
+0:411          inverse sqrt (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r036' (temp 3X3 matrix of float)
+0:411          clamp (temp 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            Constant:
+0:411              0.000000
+0:411            Constant:
+0:411              1.000000
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r037' (temp 3X3 matrix of float)
+0:411          Sign (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r038' (temp 3X3 matrix of float)
+0:411          sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      Sequence
 0:411        move second child to first child (temp 3X3 matrix of float)
 0:411          'inF1' (in 3X3 matrix of float)
@@ -4094,39 +4855,46 @@
 0:411          'inF2' (in 3X3 matrix of float)
 0:411          cosine (temp 3X3 matrix of float)
 0:411            'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r039' (temp 3X3 matrix of float)
-0:411        hyp. sine (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r049' (temp 3X3 matrix of float)
-0:411        smoothstep (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411          'inF2' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r041' (temp 3X3 matrix of float)
-0:411        sqrt (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r042' (temp 3X3 matrix of float)
-0:411        step (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411          'inF1' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r043' (temp 3X3 matrix of float)
-0:411        tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r044' (temp 3X3 matrix of float)
-0:411        hyp. tangent (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r039' (temp 3X3 matrix of float)
+0:411          hyp. sine (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r049' (temp 3X3 matrix of float)
+0:411          smoothstep (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411            'inF2' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r041' (temp 3X3 matrix of float)
+0:411          sqrt (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r042' (temp 3X3 matrix of float)
+0:411          step (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411            'inF1' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r043' (temp 3X3 matrix of float)
+0:411          tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r044' (temp 3X3 matrix of float)
+0:411          hyp. tangent (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:411      transpose (global 3X3 matrix of float)
 0:411        'inF0' (in 3X3 matrix of float)
-0:411      move second child to first child (temp 3X3 matrix of float)
-0:411        'r046' (temp 3X3 matrix of float)
-0:411        trunc (global 3X3 matrix of float)
-0:411          'inF0' (in 3X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 3X3 matrix of float)
+0:411          'r046' (temp 3X3 matrix of float)
+0:411          trunc (global 3X3 matrix of float)
+0:411            'inF0' (in 3X3 matrix of float)
 0:414      Branch: Return with expression
 0:?         Constant:
 0:?           3.000000
@@ -4144,37 +4912,44 @@
 0:418      'inF1' (in 4X4 matrix of float)
 0:418      'inF2' (in 4X4 matrix of float)
 0:?     Sequence
-0:420      move second child to first child (temp bool)
-0:420        'r000' (temp bool)
-0:420        all (global bool)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r001' (temp 4X4 matrix of float)
-0:420        Absolute value (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp bool)
+0:420          'r000' (temp bool)
+0:420          all (global bool)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r001' (temp 4X4 matrix of float)
+0:420          Absolute value (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      arc cosine (global 4X4 matrix of float)
 0:420        'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp bool)
-0:420        'r003' (temp bool)
-0:420        any (global bool)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r004' (temp 4X4 matrix of float)
-0:420        arc sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r005' (temp 4X4 matrix of float)
-0:420        arc tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r006' (temp 4X4 matrix of float)
-0:420        arc tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r007' (temp 4X4 matrix of float)
-0:420        Ceiling (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp bool)
+0:420          'r003' (temp bool)
+0:420          any (global bool)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r004' (temp 4X4 matrix of float)
+0:420          arc sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r005' (temp 4X4 matrix of float)
+0:420          arc tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r006' (temp 4X4 matrix of float)
+0:420          arc tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r007' (temp 4X4 matrix of float)
+0:420          Ceiling (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      Test condition and select (temp void)
 0:420        Condition
 0:420        any (temp bool)
@@ -4199,151 +4974,183 @@
 0:420              0.000000
 0:420        true case
 0:420        Branch: Kill
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r008' (temp 4X4 matrix of float)
-0:420        clamp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r009' (temp 4X4 matrix of float)
-0:420        cosine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r010' (temp 4X4 matrix of float)
-0:420        hyp. cosine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r011' (temp 4X4 matrix of float)
-0:420        dPdx (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r012' (temp 4X4 matrix of float)
-0:420        dPdxCoarse (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r013' (temp 4X4 matrix of float)
-0:420        dPdxFine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r014' (temp 4X4 matrix of float)
-0:420        dPdy (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r015' (temp 4X4 matrix of float)
-0:420        dPdyCoarse (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r016' (temp 4X4 matrix of float)
-0:420        dPdyFine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r017' (temp 4X4 matrix of float)
-0:420        degrees (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp float)
-0:420        'r018' (temp float)
-0:420        determinant (global float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r019' (temp 4X4 matrix of float)
-0:420        exp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'R020' (temp 4X4 matrix of float)
-0:420        exp2 (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r021' (temp 4X4 matrix of float)
-0:420        Floor (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r022' (temp 4X4 matrix of float)
-0:420        mod (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r023' (temp 4X4 matrix of float)
-0:420        Fraction (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r024' (temp 4X4 matrix of float)
-0:420        frexp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r025' (temp 4X4 matrix of float)
-0:420        fwidth (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r026' (temp 4X4 matrix of float)
-0:420        ldexp (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r026a' (temp 4X4 matrix of float)
-0:420        mix (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r027' (temp 4X4 matrix of float)
-0:420        log (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r028' (temp 4X4 matrix of float)
-0:420        matrix-scale (temp 4X4 matrix of float)
-0:420          log2 (temp 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r008' (temp 4X4 matrix of float)
+0:420          clamp (global 4X4 matrix of float)
 0:420            'inF0' (in 4X4 matrix of float)
-0:420          Constant:
-0:420            0.301030
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r029' (temp 4X4 matrix of float)
-0:420        log2 (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r030' (temp 4X4 matrix of float)
-0:420        max (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r031' (temp 4X4 matrix of float)
-0:420        min (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r032' (temp 4X4 matrix of float)
-0:420        pow (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r033' (temp 4X4 matrix of float)
-0:420        radians (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r034' (temp 4X4 matrix of float)
-0:420        roundEven (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r035' (temp 4X4 matrix of float)
-0:420        inverse sqrt (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r036' (temp 4X4 matrix of float)
-0:420        clamp (temp 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          Constant:
-0:420            0.000000
-0:420          Constant:
-0:420            1.000000
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r037' (temp 4X4 matrix of float)
-0:420        Sign (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r038' (temp 4X4 matrix of float)
-0:420        sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r009' (temp 4X4 matrix of float)
+0:420          cosine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r010' (temp 4X4 matrix of float)
+0:420          hyp. cosine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r011' (temp 4X4 matrix of float)
+0:420          dPdx (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r012' (temp 4X4 matrix of float)
+0:420          dPdxCoarse (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r013' (temp 4X4 matrix of float)
+0:420          dPdxFine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r014' (temp 4X4 matrix of float)
+0:420          dPdy (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r015' (temp 4X4 matrix of float)
+0:420          dPdyCoarse (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r016' (temp 4X4 matrix of float)
+0:420          dPdyFine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r017' (temp 4X4 matrix of float)
+0:420          degrees (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp float)
+0:420          'r018' (temp float)
+0:420          determinant (global float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r019' (temp 4X4 matrix of float)
+0:420          exp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'R020' (temp 4X4 matrix of float)
+0:420          exp2 (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r021' (temp 4X4 matrix of float)
+0:420          Floor (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r022' (temp 4X4 matrix of float)
+0:420          mod (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r023' (temp 4X4 matrix of float)
+0:420          Fraction (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r024' (temp 4X4 matrix of float)
+0:420          frexp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r025' (temp 4X4 matrix of float)
+0:420          fwidth (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r026' (temp 4X4 matrix of float)
+0:420          ldexp (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r026a' (temp 4X4 matrix of float)
+0:420          mix (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r027' (temp 4X4 matrix of float)
+0:420          log (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r028' (temp 4X4 matrix of float)
+0:420          matrix-scale (temp 4X4 matrix of float)
+0:420            log2 (temp 4X4 matrix of float)
+0:420              'inF0' (in 4X4 matrix of float)
+0:420            Constant:
+0:420              0.301030
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r029' (temp 4X4 matrix of float)
+0:420          log2 (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r030' (temp 4X4 matrix of float)
+0:420          max (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r031' (temp 4X4 matrix of float)
+0:420          min (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r032' (temp 4X4 matrix of float)
+0:420          pow (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r033' (temp 4X4 matrix of float)
+0:420          radians (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r034' (temp 4X4 matrix of float)
+0:420          roundEven (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r035' (temp 4X4 matrix of float)
+0:420          inverse sqrt (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r036' (temp 4X4 matrix of float)
+0:420          clamp (temp 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            Constant:
+0:420              0.000000
+0:420            Constant:
+0:420              1.000000
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r037' (temp 4X4 matrix of float)
+0:420          Sign (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r038' (temp 4X4 matrix of float)
+0:420          sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      Sequence
 0:420        move second child to first child (temp 4X4 matrix of float)
 0:420          'inF1' (in 4X4 matrix of float)
@@ -4353,39 +5160,46 @@
 0:420          'inF2' (in 4X4 matrix of float)
 0:420          cosine (temp 4X4 matrix of float)
 0:420            'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r039' (temp 4X4 matrix of float)
-0:420        hyp. sine (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r049' (temp 4X4 matrix of float)
-0:420        smoothstep (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420          'inF2' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r041' (temp 4X4 matrix of float)
-0:420        sqrt (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r042' (temp 4X4 matrix of float)
-0:420        step (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420          'inF1' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r043' (temp 4X4 matrix of float)
-0:420        tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r044' (temp 4X4 matrix of float)
-0:420        hyp. tangent (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r039' (temp 4X4 matrix of float)
+0:420          hyp. sine (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r049' (temp 4X4 matrix of float)
+0:420          smoothstep (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420            'inF2' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r041' (temp 4X4 matrix of float)
+0:420          sqrt (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r042' (temp 4X4 matrix of float)
+0:420          step (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420            'inF1' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r043' (temp 4X4 matrix of float)
+0:420          tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r044' (temp 4X4 matrix of float)
+0:420          hyp. tangent (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:420      transpose (global 4X4 matrix of float)
 0:420        'inF0' (in 4X4 matrix of float)
-0:420      move second child to first child (temp 4X4 matrix of float)
-0:420        'r046' (temp 4X4 matrix of float)
-0:420        trunc (global 4X4 matrix of float)
-0:420          'inF0' (in 4X4 matrix of float)
+0:420      Sequence
+0:420        move second child to first child (temp 4X4 matrix of float)
+0:420          'r046' (temp 4X4 matrix of float)
+0:420          trunc (global 4X4 matrix of float)
+0:420            'inF0' (in 4X4 matrix of float)
 0:423      Branch: Return with expression
 0:?         Constant:
 0:?           4.000000
@@ -4413,51 +5227,60 @@
 0:441      'inFM0' (in 2X2 matrix of float)
 0:441      'inFM1' (in 2X2 matrix of float)
 0:?     Sequence
-0:442      move second child to first child (temp float)
-0:442        'r0' (temp float)
-0:442        component-wise multiply (temp float)
-0:442          'inF0' (in float)
-0:442          'inF1' (in float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r1' (temp 2-component vector of float)
-0:442        vector-scale (temp 2-component vector of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inF0' (in float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r2' (temp 2-component vector of float)
-0:442        vector-scale (temp 2-component vector of float)
-0:442          'inF0' (in float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442      move second child to first child (temp float)
-0:442        'r3' (temp float)
-0:442        dot-product (global float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inFV1' (in 2-component vector of float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r4' (temp 2-component vector of float)
-0:442        matrix-times-vector (temp 2-component vector of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442      move second child to first child (temp 2-component vector of float)
-0:442        'r5' (temp 2-component vector of float)
-0:442        vector-times-matrix (temp 2-component vector of float)
-0:442          'inFV0' (in 2-component vector of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r6' (temp 2X2 matrix of float)
-0:442        matrix-scale (temp 2X2 matrix of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inF0' (in float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r7' (temp 2X2 matrix of float)
-0:442        matrix-scale (temp 2X2 matrix of float)
-0:442          'inF0' (in float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442      move second child to first child (temp 2X2 matrix of float)
-0:442        'r8' (temp 2X2 matrix of float)
-0:442        matrix-multiply (temp 2X2 matrix of float)
-0:442          'inFM0' (in 2X2 matrix of float)
-0:442          'inFM1' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp float)
+0:442          'r0' (temp float)
+0:442          component-wise multiply (temp float)
+0:442            'inF0' (in float)
+0:442            'inF1' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r1' (temp 2-component vector of float)
+0:442          vector-scale (temp 2-component vector of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inF0' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r2' (temp 2-component vector of float)
+0:442          vector-scale (temp 2-component vector of float)
+0:442            'inF0' (in float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp float)
+0:442          'r3' (temp float)
+0:442          dot-product (global float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inFV1' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r4' (temp 2-component vector of float)
+0:442          matrix-times-vector (temp 2-component vector of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2-component vector of float)
+0:442          'r5' (temp 2-component vector of float)
+0:442          vector-times-matrix (temp 2-component vector of float)
+0:442            'inFV0' (in 2-component vector of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r6' (temp 2X2 matrix of float)
+0:442          matrix-scale (temp 2X2 matrix of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inF0' (in float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r7' (temp 2X2 matrix of float)
+0:442          matrix-scale (temp 2X2 matrix of float)
+0:442            'inF0' (in float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442      Sequence
+0:442        move second child to first child (temp 2X2 matrix of float)
+0:442          'r8' (temp 2X2 matrix of float)
+0:442          matrix-multiply (temp 2X2 matrix of float)
+0:442            'inFM0' (in 2X2 matrix of float)
+0:442            'inFM1' (in 2X2 matrix of float)
 0:452  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
 0:448    Function Parameters: 
 0:448      'inF0' (in float)
@@ -4467,51 +5290,60 @@
 0:448      'inFM0' (in 3X3 matrix of float)
 0:448      'inFM1' (in 3X3 matrix of float)
 0:?     Sequence
-0:449      move second child to first child (temp float)
-0:449        'r0' (temp float)
-0:449        component-wise multiply (temp float)
-0:449          'inF0' (in float)
-0:449          'inF1' (in float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r1' (temp 3-component vector of float)
-0:449        vector-scale (temp 3-component vector of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inF0' (in float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r2' (temp 3-component vector of float)
-0:449        vector-scale (temp 3-component vector of float)
-0:449          'inF0' (in float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449      move second child to first child (temp float)
-0:449        'r3' (temp float)
-0:449        dot-product (global float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inFV1' (in 3-component vector of float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r4' (temp 3-component vector of float)
-0:449        matrix-times-vector (temp 3-component vector of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449      move second child to first child (temp 3-component vector of float)
-0:449        'r5' (temp 3-component vector of float)
-0:449        vector-times-matrix (temp 3-component vector of float)
-0:449          'inFV0' (in 3-component vector of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r6' (temp 3X3 matrix of float)
-0:449        matrix-scale (temp 3X3 matrix of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inF0' (in float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r7' (temp 3X3 matrix of float)
-0:449        matrix-scale (temp 3X3 matrix of float)
-0:449          'inF0' (in float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449      move second child to first child (temp 3X3 matrix of float)
-0:449        'r8' (temp 3X3 matrix of float)
-0:449        matrix-multiply (temp 3X3 matrix of float)
-0:449          'inFM0' (in 3X3 matrix of float)
-0:449          'inFM1' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp float)
+0:449          'r0' (temp float)
+0:449          component-wise multiply (temp float)
+0:449            'inF0' (in float)
+0:449            'inF1' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r1' (temp 3-component vector of float)
+0:449          vector-scale (temp 3-component vector of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inF0' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r2' (temp 3-component vector of float)
+0:449          vector-scale (temp 3-component vector of float)
+0:449            'inF0' (in float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp float)
+0:449          'r3' (temp float)
+0:449          dot-product (global float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inFV1' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r4' (temp 3-component vector of float)
+0:449          matrix-times-vector (temp 3-component vector of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3-component vector of float)
+0:449          'r5' (temp 3-component vector of float)
+0:449          vector-times-matrix (temp 3-component vector of float)
+0:449            'inFV0' (in 3-component vector of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r6' (temp 3X3 matrix of float)
+0:449          matrix-scale (temp 3X3 matrix of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inF0' (in float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r7' (temp 3X3 matrix of float)
+0:449          matrix-scale (temp 3X3 matrix of float)
+0:449            'inF0' (in float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449      Sequence
+0:449        move second child to first child (temp 3X3 matrix of float)
+0:449          'r8' (temp 3X3 matrix of float)
+0:449          matrix-multiply (temp 3X3 matrix of float)
+0:449            'inFM0' (in 3X3 matrix of float)
+0:449            'inFM1' (in 3X3 matrix of float)
 0:460  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
 0:455    Function Parameters: 
 0:455      'inF0' (in float)
@@ -4521,51 +5353,60 @@
 0:455      'inFM0' (in 4X4 matrix of float)
 0:455      'inFM1' (in 4X4 matrix of float)
 0:?     Sequence
-0:456      move second child to first child (temp float)
-0:456        'r0' (temp float)
-0:456        component-wise multiply (temp float)
-0:456          'inF0' (in float)
-0:456          'inF1' (in float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r1' (temp 4-component vector of float)
-0:456        vector-scale (temp 4-component vector of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inF0' (in float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r2' (temp 4-component vector of float)
-0:456        vector-scale (temp 4-component vector of float)
-0:456          'inF0' (in float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456      move second child to first child (temp float)
-0:456        'r3' (temp float)
-0:456        dot-product (global float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inFV1' (in 4-component vector of float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r4' (temp 4-component vector of float)
-0:456        matrix-times-vector (temp 4-component vector of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456      move second child to first child (temp 4-component vector of float)
-0:456        'r5' (temp 4-component vector of float)
-0:456        vector-times-matrix (temp 4-component vector of float)
-0:456          'inFV0' (in 4-component vector of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r6' (temp 4X4 matrix of float)
-0:456        matrix-scale (temp 4X4 matrix of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inF0' (in float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r7' (temp 4X4 matrix of float)
-0:456        matrix-scale (temp 4X4 matrix of float)
-0:456          'inF0' (in float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456      move second child to first child (temp 4X4 matrix of float)
-0:456        'r8' (temp 4X4 matrix of float)
-0:456        matrix-multiply (temp 4X4 matrix of float)
-0:456          'inFM0' (in 4X4 matrix of float)
-0:456          'inFM1' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp float)
+0:456          'r0' (temp float)
+0:456          component-wise multiply (temp float)
+0:456            'inF0' (in float)
+0:456            'inF1' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r1' (temp 4-component vector of float)
+0:456          vector-scale (temp 4-component vector of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inF0' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r2' (temp 4-component vector of float)
+0:456          vector-scale (temp 4-component vector of float)
+0:456            'inF0' (in float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp float)
+0:456          'r3' (temp float)
+0:456          dot-product (global float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inFV1' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r4' (temp 4-component vector of float)
+0:456          matrix-times-vector (temp 4-component vector of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4-component vector of float)
+0:456          'r5' (temp 4-component vector of float)
+0:456          vector-times-matrix (temp 4-component vector of float)
+0:456            'inFV0' (in 4-component vector of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r6' (temp 4X4 matrix of float)
+0:456          matrix-scale (temp 4X4 matrix of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inF0' (in float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r7' (temp 4X4 matrix of float)
+0:456          matrix-scale (temp 4X4 matrix of float)
+0:456            'inF0' (in float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456      Sequence
+0:456        move second child to first child (temp 4X4 matrix of float)
+0:456          'r8' (temp 4X4 matrix of float)
+0:456          matrix-multiply (temp 4X4 matrix of float)
+0:456            'inFM0' (in 4X4 matrix of float)
+0:456            'inFM1' (in 4X4 matrix of float)
 0:484  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
 0:465    Function Parameters: 
 0:465      'inF0' (in float)
@@ -4578,91 +5419,108 @@
 0:465      'inFM3x4' (in 4X3 matrix of float)
 0:465      'inFM2x4' (in 4X2 matrix of float)
 0:?     Sequence
-0:466      move second child to first child (temp float)
-0:466        'r00' (temp float)
-0:466        component-wise multiply (temp float)
-0:466          'inF0' (in float)
-0:466          'inF1' (in float)
-0:467      move second child to first child (temp 2-component vector of float)
-0:467        'r01' (temp 2-component vector of float)
-0:467        vector-scale (temp 2-component vector of float)
-0:467          'inFV2' (in 2-component vector of float)
-0:467          'inF0' (in float)
-0:468      move second child to first child (temp 3-component vector of float)
-0:468        'r02' (temp 3-component vector of float)
-0:468        vector-scale (temp 3-component vector of float)
-0:468          'inFV3' (in 3-component vector of float)
-0:468          'inF0' (in float)
-0:469      move second child to first child (temp 2-component vector of float)
-0:469        'r03' (temp 2-component vector of float)
-0:469        vector-scale (temp 2-component vector of float)
-0:469          'inF0' (in float)
-0:469          'inFV2' (in 2-component vector of float)
-0:470      move second child to first child (temp 3-component vector of float)
-0:470        'r04' (temp 3-component vector of float)
-0:470        vector-scale (temp 3-component vector of float)
-0:470          'inF0' (in float)
-0:470          'inFV3' (in 3-component vector of float)
-0:471      move second child to first child (temp float)
-0:471        'r05' (temp float)
-0:471        dot-product (global float)
-0:471          'inFV2' (in 2-component vector of float)
-0:471          'inFV2' (in 2-component vector of float)
-0:472      move second child to first child (temp float)
-0:472        'r06' (temp float)
-0:472        dot-product (global float)
-0:472          'inFV3' (in 3-component vector of float)
-0:472          'inFV3' (in 3-component vector of float)
-0:473      move second child to first child (temp 3-component vector of float)
-0:473        'r07' (temp 3-component vector of float)
-0:473        vector-times-matrix (temp 3-component vector of float)
-0:473          'inFV2' (in 2-component vector of float)
-0:473          'inFM2x3' (in 3X2 matrix of float)
-0:474      move second child to first child (temp 2-component vector of float)
-0:474        'r08' (temp 2-component vector of float)
-0:474        vector-times-matrix (temp 2-component vector of float)
-0:474          'inFV3' (in 3-component vector of float)
-0:474          'inFM3x2' (in 2X3 matrix of float)
-0:475      move second child to first child (temp 2-component vector of float)
-0:475        'r09' (temp 2-component vector of float)
-0:475        matrix-times-vector (temp 2-component vector of float)
-0:475          'inFM2x3' (in 3X2 matrix of float)
-0:475          'inFV3' (in 3-component vector of float)
-0:476      move second child to first child (temp 3-component vector of float)
-0:476        'r10' (temp 3-component vector of float)
-0:476        matrix-times-vector (temp 3-component vector of float)
-0:476          'inFM3x2' (in 2X3 matrix of float)
-0:476          'inFV2' (in 2-component vector of float)
-0:477      move second child to first child (temp 3X2 matrix of float)
-0:477        'r11' (temp 3X2 matrix of float)
-0:477        matrix-scale (temp 3X2 matrix of float)
-0:477          'inFM2x3' (in 3X2 matrix of float)
-0:477          'inF0' (in float)
-0:478      move second child to first child (temp 2X3 matrix of float)
-0:478        'r12' (temp 2X3 matrix of float)
-0:478        matrix-scale (temp 2X3 matrix of float)
-0:478          'inFM3x2' (in 2X3 matrix of float)
-0:478          'inF0' (in float)
-0:479      move second child to first child (temp 2X2 matrix of float)
-0:479        'r13' (temp 2X2 matrix of float)
-0:479        matrix-multiply (temp 2X2 matrix of float)
-0:479          'inFM2x3' (in 3X2 matrix of float)
-0:479          'inFM3x2' (in 2X3 matrix of float)
-0:480      move second child to first child (temp 3X2 matrix of float)
-0:480        'r14' (temp 3X2 matrix of float)
-0:480        matrix-multiply (temp 3X2 matrix of float)
-0:480          'inFM2x3' (in 3X2 matrix of float)
-0:480          'inFM3x3' (in 3X3 matrix of float)
-0:481      move second child to first child (temp 4X2 matrix of float)
-0:481        'r15' (temp 4X2 matrix of float)
-0:481        matrix-multiply (temp 4X2 matrix of float)
-0:481          'inFM2x3' (in 3X2 matrix of float)
-0:481          'inFM3x4' (in 4X3 matrix of float)
-0:482      move second child to first child (temp 4X3 matrix of float)
-0:482        'r16' (temp 4X3 matrix of float)
-0:482        matrix-multiply (temp 4X3 matrix of float)
-0:482          'inFM3x2' (in 2X3 matrix of float)
-0:482          'inFM2x4' (in 4X2 matrix of float)
+0:466      Sequence
+0:466        move second child to first child (temp float)
+0:466          'r00' (temp float)
+0:466          component-wise multiply (temp float)
+0:466            'inF0' (in float)
+0:466            'inF1' (in float)
+0:467      Sequence
+0:467        move second child to first child (temp 2-component vector of float)
+0:467          'r01' (temp 2-component vector of float)
+0:467          vector-scale (temp 2-component vector of float)
+0:467            'inFV2' (in 2-component vector of float)
+0:467            'inF0' (in float)
+0:468      Sequence
+0:468        move second child to first child (temp 3-component vector of float)
+0:468          'r02' (temp 3-component vector of float)
+0:468          vector-scale (temp 3-component vector of float)
+0:468            'inFV3' (in 3-component vector of float)
+0:468            'inF0' (in float)
+0:469      Sequence
+0:469        move second child to first child (temp 2-component vector of float)
+0:469          'r03' (temp 2-component vector of float)
+0:469          vector-scale (temp 2-component vector of float)
+0:469            'inF0' (in float)
+0:469            'inFV2' (in 2-component vector of float)
+0:470      Sequence
+0:470        move second child to first child (temp 3-component vector of float)
+0:470          'r04' (temp 3-component vector of float)
+0:470          vector-scale (temp 3-component vector of float)
+0:470            'inF0' (in float)
+0:470            'inFV3' (in 3-component vector of float)
+0:471      Sequence
+0:471        move second child to first child (temp float)
+0:471          'r05' (temp float)
+0:471          dot-product (global float)
+0:471            'inFV2' (in 2-component vector of float)
+0:471            'inFV2' (in 2-component vector of float)
+0:472      Sequence
+0:472        move second child to first child (temp float)
+0:472          'r06' (temp float)
+0:472          dot-product (global float)
+0:472            'inFV3' (in 3-component vector of float)
+0:472            'inFV3' (in 3-component vector of float)
+0:473      Sequence
+0:473        move second child to first child (temp 3-component vector of float)
+0:473          'r07' (temp 3-component vector of float)
+0:473          vector-times-matrix (temp 3-component vector of float)
+0:473            'inFV2' (in 2-component vector of float)
+0:473            'inFM2x3' (in 3X2 matrix of float)
+0:474      Sequence
+0:474        move second child to first child (temp 2-component vector of float)
+0:474          'r08' (temp 2-component vector of float)
+0:474          vector-times-matrix (temp 2-component vector of float)
+0:474            'inFV3' (in 3-component vector of float)
+0:474            'inFM3x2' (in 2X3 matrix of float)
+0:475      Sequence
+0:475        move second child to first child (temp 2-component vector of float)
+0:475          'r09' (temp 2-component vector of float)
+0:475          matrix-times-vector (temp 2-component vector of float)
+0:475            'inFM2x3' (in 3X2 matrix of float)
+0:475            'inFV3' (in 3-component vector of float)
+0:476      Sequence
+0:476        move second child to first child (temp 3-component vector of float)
+0:476          'r10' (temp 3-component vector of float)
+0:476          matrix-times-vector (temp 3-component vector of float)
+0:476            'inFM3x2' (in 2X3 matrix of float)
+0:476            'inFV2' (in 2-component vector of float)
+0:477      Sequence
+0:477        move second child to first child (temp 3X2 matrix of float)
+0:477          'r11' (temp 3X2 matrix of float)
+0:477          matrix-scale (temp 3X2 matrix of float)
+0:477            'inFM2x3' (in 3X2 matrix of float)
+0:477            'inF0' (in float)
+0:478      Sequence
+0:478        move second child to first child (temp 2X3 matrix of float)
+0:478          'r12' (temp 2X3 matrix of float)
+0:478          matrix-scale (temp 2X3 matrix of float)
+0:478            'inFM3x2' (in 2X3 matrix of float)
+0:478            'inF0' (in float)
+0:479      Sequence
+0:479        move second child to first child (temp 2X2 matrix of float)
+0:479          'r13' (temp 2X2 matrix of float)
+0:479          matrix-multiply (temp 2X2 matrix of float)
+0:479            'inFM2x3' (in 3X2 matrix of float)
+0:479            'inFM3x2' (in 2X3 matrix of float)
+0:480      Sequence
+0:480        move second child to first child (temp 3X2 matrix of float)
+0:480          'r14' (temp 3X2 matrix of float)
+0:480          matrix-multiply (temp 3X2 matrix of float)
+0:480            'inFM2x3' (in 3X2 matrix of float)
+0:480            'inFM3x3' (in 3X3 matrix of float)
+0:481      Sequence
+0:481        move second child to first child (temp 4X2 matrix of float)
+0:481          'r15' (temp 4X2 matrix of float)
+0:481          matrix-multiply (temp 4X2 matrix of float)
+0:481            'inFM2x3' (in 3X2 matrix of float)
+0:481            'inFM3x4' (in 4X3 matrix of float)
+0:482      Sequence
+0:482        move second child to first child (temp 4X3 matrix of float)
+0:482          'r16' (temp 4X3 matrix of float)
+0:482          matrix-multiply (temp 4X3 matrix of float)
+0:482            'inFM3x2' (in 2X3 matrix of float)
+0:482            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
 0:?     'gs_ua' (temp uint)
 0:?     'gs_ub' (temp uint)
diff --git a/Test/baseResults/hlsl.intrinsics.lit.frag.out b/Test/baseResults/hlsl.intrinsics.lit.frag.out
index 3a6becf..1bb37df 100644
--- a/Test/baseResults/hlsl.intrinsics.lit.frag.out
+++ b/Test/baseResults/hlsl.intrinsics.lit.frag.out
@@ -8,32 +8,33 @@
 0:2      'n_dot_h' (in float)
 0:2      'm' (in float)
 0:?     Sequence
-0:3      move second child to first child (temp 4-component vector of float)
-0:3        'r0' (temp 4-component vector of float)
-0:3        Construct vec4 (temp 4-component vector of float)
-0:3          Constant:
-0:3            1.000000
-0:3          max (temp float)
-0:3            'n_dot_l' (in float)
+0:3      Sequence
+0:3        move second child to first child (temp 4-component vector of float)
+0:3          'r0' (temp 4-component vector of float)
+0:3          Construct vec4 (temp 4-component vector of float)
 0:3            Constant:
-0:3              0.000000
-0:3          Test condition and select (temp float)
-0:3            Condition
-0:3            Compare Less Than (temp bool)
-0:3              min (temp float)
-0:3                'n_dot_l' (in float)
-0:3                'n_dot_h' (in float)
+0:3              1.000000
+0:3            max (temp float)
+0:3              'n_dot_l' (in float)
 0:3              Constant:
 0:3                0.000000
-0:3            true case
+0:3            Test condition and select (temp float)
+0:3              Condition
+0:3              Compare Less Than (temp bool)
+0:3                min (temp float)
+0:3                  'n_dot_l' (in float)
+0:3                  'n_dot_h' (in float)
+0:3                Constant:
+0:3                  0.000000
+0:3              true case
+0:3              Constant:
+0:3                0.000000
+0:3              false case
+0:3              component-wise multiply (temp float)
+0:3                'n_dot_h' (in float)
+0:3                'm' (in float)
 0:3            Constant:
-0:3              0.000000
-0:3            false case
-0:3            component-wise multiply (temp float)
-0:3              'n_dot_h' (in float)
-0:3              'm' (in float)
-0:3          Constant:
-0:3            1.000000
+0:3              1.000000
 0:?   Linker Objects
 
 
@@ -49,32 +50,33 @@
 0:2      'n_dot_h' (in float)
 0:2      'm' (in float)
 0:?     Sequence
-0:3      move second child to first child (temp 4-component vector of float)
-0:3        'r0' (temp 4-component vector of float)
-0:3        Construct vec4 (temp 4-component vector of float)
-0:3          Constant:
-0:3            1.000000
-0:3          max (temp float)
-0:3            'n_dot_l' (in float)
+0:3      Sequence
+0:3        move second child to first child (temp 4-component vector of float)
+0:3          'r0' (temp 4-component vector of float)
+0:3          Construct vec4 (temp 4-component vector of float)
 0:3            Constant:
-0:3              0.000000
-0:3          Test condition and select (temp float)
-0:3            Condition
-0:3            Compare Less Than (temp bool)
-0:3              min (temp float)
-0:3                'n_dot_l' (in float)
-0:3                'n_dot_h' (in float)
+0:3              1.000000
+0:3            max (temp float)
+0:3              'n_dot_l' (in float)
 0:3              Constant:
 0:3                0.000000
-0:3            true case
+0:3            Test condition and select (temp float)
+0:3              Condition
+0:3              Compare Less Than (temp bool)
+0:3                min (temp float)
+0:3                  'n_dot_l' (in float)
+0:3                  'n_dot_h' (in float)
+0:3                Constant:
+0:3                  0.000000
+0:3              true case
+0:3              Constant:
+0:3                0.000000
+0:3              false case
+0:3              component-wise multiply (temp float)
+0:3                'n_dot_h' (in float)
+0:3                'm' (in float)
 0:3            Constant:
-0:3              0.000000
-0:3            false case
-0:3            component-wise multiply (temp float)
-0:3              'n_dot_h' (in float)
-0:3              'm' (in float)
-0:3          Constant:
-0:3            1.000000
+0:3              1.000000
 0:?   Linker Objects
 
 // Module Version 10000
diff --git a/Test/baseResults/hlsl.intrinsics.vert.out b/Test/baseResults/hlsl.intrinsics.vert.out
index 9258511..7c8a1c4 100644
--- a/Test/baseResults/hlsl.intrinsics.vert.out
+++ b/Test/baseResults/hlsl.intrinsics.vert.out
@@ -1097,51 +1097,60 @@
 0:377      'inFM0' (in 2X2 matrix of float)
 0:377      'inFM1' (in 2X2 matrix of float)
 0:?     Sequence
-0:378      move second child to first child (temp float)
-0:378        'r0' (temp float)
-0:378        component-wise multiply (temp float)
-0:378          'inF0' (in float)
-0:378          'inF1' (in float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r1' (temp 2-component vector of float)
-0:378        vector-scale (temp 2-component vector of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inF0' (in float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r2' (temp 2-component vector of float)
-0:378        vector-scale (temp 2-component vector of float)
-0:378          'inF0' (in float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378      move second child to first child (temp float)
-0:378        'r3' (temp float)
-0:378        dot-product (global float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inFV1' (in 2-component vector of float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r4' (temp 2-component vector of float)
-0:378        matrix-times-vector (temp 2-component vector of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r5' (temp 2-component vector of float)
-0:378        vector-times-matrix (temp 2-component vector of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r6' (temp 2X2 matrix of float)
-0:378        matrix-scale (temp 2X2 matrix of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inF0' (in float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r7' (temp 2X2 matrix of float)
-0:378        matrix-scale (temp 2X2 matrix of float)
-0:378          'inF0' (in float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r8' (temp 2X2 matrix of float)
-0:378        matrix-multiply (temp 2X2 matrix of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inFM1' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp float)
+0:378          'r0' (temp float)
+0:378          component-wise multiply (temp float)
+0:378            'inF0' (in float)
+0:378            'inF1' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r1' (temp 2-component vector of float)
+0:378          vector-scale (temp 2-component vector of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inF0' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r2' (temp 2-component vector of float)
+0:378          vector-scale (temp 2-component vector of float)
+0:378            'inF0' (in float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp float)
+0:378          'r3' (temp float)
+0:378          dot-product (global float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inFV1' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r4' (temp 2-component vector of float)
+0:378          matrix-times-vector (temp 2-component vector of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r5' (temp 2-component vector of float)
+0:378          vector-times-matrix (temp 2-component vector of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r6' (temp 2X2 matrix of float)
+0:378          matrix-scale (temp 2X2 matrix of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inF0' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r7' (temp 2X2 matrix of float)
+0:378          matrix-scale (temp 2X2 matrix of float)
+0:378            'inF0' (in float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r8' (temp 2X2 matrix of float)
+0:378          matrix-multiply (temp 2X2 matrix of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inFM1' (in 2X2 matrix of float)
 0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
@@ -1151,51 +1160,60 @@
 0:384      'inFM0' (in 3X3 matrix of float)
 0:384      'inFM1' (in 3X3 matrix of float)
 0:?     Sequence
-0:385      move second child to first child (temp float)
-0:385        'r0' (temp float)
-0:385        component-wise multiply (temp float)
-0:385          'inF0' (in float)
-0:385          'inF1' (in float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r1' (temp 3-component vector of float)
-0:385        vector-scale (temp 3-component vector of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inF0' (in float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r2' (temp 3-component vector of float)
-0:385        vector-scale (temp 3-component vector of float)
-0:385          'inF0' (in float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385      move second child to first child (temp float)
-0:385        'r3' (temp float)
-0:385        dot-product (global float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inFV1' (in 3-component vector of float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r4' (temp 3-component vector of float)
-0:385        matrix-times-vector (temp 3-component vector of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r5' (temp 3-component vector of float)
-0:385        vector-times-matrix (temp 3-component vector of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r6' (temp 3X3 matrix of float)
-0:385        matrix-scale (temp 3X3 matrix of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inF0' (in float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r7' (temp 3X3 matrix of float)
-0:385        matrix-scale (temp 3X3 matrix of float)
-0:385          'inF0' (in float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r8' (temp 3X3 matrix of float)
-0:385        matrix-multiply (temp 3X3 matrix of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inFM1' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp float)
+0:385          'r0' (temp float)
+0:385          component-wise multiply (temp float)
+0:385            'inF0' (in float)
+0:385            'inF1' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r1' (temp 3-component vector of float)
+0:385          vector-scale (temp 3-component vector of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inF0' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r2' (temp 3-component vector of float)
+0:385          vector-scale (temp 3-component vector of float)
+0:385            'inF0' (in float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp float)
+0:385          'r3' (temp float)
+0:385          dot-product (global float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inFV1' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r4' (temp 3-component vector of float)
+0:385          matrix-times-vector (temp 3-component vector of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r5' (temp 3-component vector of float)
+0:385          vector-times-matrix (temp 3-component vector of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r6' (temp 3X3 matrix of float)
+0:385          matrix-scale (temp 3X3 matrix of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inF0' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r7' (temp 3X3 matrix of float)
+0:385          matrix-scale (temp 3X3 matrix of float)
+0:385            'inF0' (in float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r8' (temp 3X3 matrix of float)
+0:385          matrix-multiply (temp 3X3 matrix of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inFM1' (in 3X3 matrix of float)
 0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
@@ -1205,51 +1223,60 @@
 0:391      'inFM0' (in 4X4 matrix of float)
 0:391      'inFM1' (in 4X4 matrix of float)
 0:?     Sequence
-0:392      move second child to first child (temp float)
-0:392        'r0' (temp float)
-0:392        component-wise multiply (temp float)
-0:392          'inF0' (in float)
-0:392          'inF1' (in float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r1' (temp 4-component vector of float)
-0:392        vector-scale (temp 4-component vector of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inF0' (in float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r2' (temp 4-component vector of float)
-0:392        vector-scale (temp 4-component vector of float)
-0:392          'inF0' (in float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392      move second child to first child (temp float)
-0:392        'r3' (temp float)
-0:392        dot-product (global float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inFV1' (in 4-component vector of float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r4' (temp 4-component vector of float)
-0:392        matrix-times-vector (temp 4-component vector of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r5' (temp 4-component vector of float)
-0:392        vector-times-matrix (temp 4-component vector of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r6' (temp 4X4 matrix of float)
-0:392        matrix-scale (temp 4X4 matrix of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inF0' (in float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r7' (temp 4X4 matrix of float)
-0:392        matrix-scale (temp 4X4 matrix of float)
-0:392          'inF0' (in float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r8' (temp 4X4 matrix of float)
-0:392        matrix-multiply (temp 4X4 matrix of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inFM1' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp float)
+0:392          'r0' (temp float)
+0:392          component-wise multiply (temp float)
+0:392            'inF0' (in float)
+0:392            'inF1' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r1' (temp 4-component vector of float)
+0:392          vector-scale (temp 4-component vector of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inF0' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r2' (temp 4-component vector of float)
+0:392          vector-scale (temp 4-component vector of float)
+0:392            'inF0' (in float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp float)
+0:392          'r3' (temp float)
+0:392          dot-product (global float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inFV1' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r4' (temp 4-component vector of float)
+0:392          matrix-times-vector (temp 4-component vector of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r5' (temp 4-component vector of float)
+0:392          vector-times-matrix (temp 4-component vector of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r6' (temp 4X4 matrix of float)
+0:392          matrix-scale (temp 4X4 matrix of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inF0' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r7' (temp 4X4 matrix of float)
+0:392          matrix-scale (temp 4X4 matrix of float)
+0:392            'inF0' (in float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r8' (temp 4X4 matrix of float)
+0:392          matrix-multiply (temp 4X4 matrix of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inFM1' (in 4X4 matrix of float)
 0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
@@ -1262,91 +1289,108 @@
 0:401      'inFM3x4' (in 4X3 matrix of float)
 0:401      'inFM2x4' (in 4X2 matrix of float)
 0:?     Sequence
-0:402      move second child to first child (temp float)
-0:402        'r00' (temp float)
-0:402        component-wise multiply (temp float)
-0:402          'inF0' (in float)
-0:402          'inF1' (in float)
-0:403      move second child to first child (temp 2-component vector of float)
-0:403        'r01' (temp 2-component vector of float)
-0:403        vector-scale (temp 2-component vector of float)
-0:403          'inFV2' (in 2-component vector of float)
-0:403          'inF0' (in float)
-0:404      move second child to first child (temp 3-component vector of float)
-0:404        'r02' (temp 3-component vector of float)
-0:404        vector-scale (temp 3-component vector of float)
-0:404          'inFV3' (in 3-component vector of float)
-0:404          'inF0' (in float)
-0:405      move second child to first child (temp 2-component vector of float)
-0:405        'r03' (temp 2-component vector of float)
-0:405        vector-scale (temp 2-component vector of float)
-0:405          'inF0' (in float)
-0:405          'inFV2' (in 2-component vector of float)
-0:406      move second child to first child (temp 3-component vector of float)
-0:406        'r04' (temp 3-component vector of float)
-0:406        vector-scale (temp 3-component vector of float)
-0:406          'inF0' (in float)
-0:406          'inFV3' (in 3-component vector of float)
-0:407      move second child to first child (temp float)
-0:407        'r05' (temp float)
-0:407        dot-product (global float)
-0:407          'inFV2' (in 2-component vector of float)
-0:407          'inFV2' (in 2-component vector of float)
-0:408      move second child to first child (temp float)
-0:408        'r06' (temp float)
-0:408        dot-product (global float)
-0:408          'inFV3' (in 3-component vector of float)
-0:408          'inFV3' (in 3-component vector of float)
-0:409      move second child to first child (temp 3-component vector of float)
-0:409        'r07' (temp 3-component vector of float)
-0:409        vector-times-matrix (temp 3-component vector of float)
-0:409          'inFV2' (in 2-component vector of float)
-0:409          'inFM2x3' (in 3X2 matrix of float)
-0:410      move second child to first child (temp 2-component vector of float)
-0:410        'r08' (temp 2-component vector of float)
-0:410        vector-times-matrix (temp 2-component vector of float)
-0:410          'inFV3' (in 3-component vector of float)
-0:410          'inFM3x2' (in 2X3 matrix of float)
-0:411      move second child to first child (temp 2-component vector of float)
-0:411        'r09' (temp 2-component vector of float)
-0:411        matrix-times-vector (temp 2-component vector of float)
-0:411          'inFM2x3' (in 3X2 matrix of float)
-0:411          'inFV3' (in 3-component vector of float)
-0:412      move second child to first child (temp 3-component vector of float)
-0:412        'r10' (temp 3-component vector of float)
-0:412        matrix-times-vector (temp 3-component vector of float)
-0:412          'inFM3x2' (in 2X3 matrix of float)
-0:412          'inFV2' (in 2-component vector of float)
-0:413      move second child to first child (temp 3X2 matrix of float)
-0:413        'r11' (temp 3X2 matrix of float)
-0:413        matrix-scale (temp 3X2 matrix of float)
-0:413          'inFM2x3' (in 3X2 matrix of float)
-0:413          'inF0' (in float)
-0:414      move second child to first child (temp 2X3 matrix of float)
-0:414        'r12' (temp 2X3 matrix of float)
-0:414        matrix-scale (temp 2X3 matrix of float)
-0:414          'inFM3x2' (in 2X3 matrix of float)
-0:414          'inF0' (in float)
-0:415      move second child to first child (temp 2X2 matrix of float)
-0:415        'r13' (temp 2X2 matrix of float)
-0:415        matrix-multiply (temp 2X2 matrix of float)
-0:415          'inFM2x3' (in 3X2 matrix of float)
-0:415          'inFM3x2' (in 2X3 matrix of float)
-0:416      move second child to first child (temp 3X2 matrix of float)
-0:416        'r14' (temp 3X2 matrix of float)
-0:416        matrix-multiply (temp 3X2 matrix of float)
-0:416          'inFM2x3' (in 3X2 matrix of float)
-0:416          'inFM3x3' (in 3X3 matrix of float)
-0:417      move second child to first child (temp 4X2 matrix of float)
-0:417        'r15' (temp 4X2 matrix of float)
-0:417        matrix-multiply (temp 4X2 matrix of float)
-0:417          'inFM2x3' (in 3X2 matrix of float)
-0:417          'inFM3x4' (in 4X3 matrix of float)
-0:418      move second child to first child (temp 4X3 matrix of float)
-0:418        'r16' (temp 4X3 matrix of float)
-0:418        matrix-multiply (temp 4X3 matrix of float)
-0:418          'inFM3x2' (in 2X3 matrix of float)
-0:418          'inFM2x4' (in 4X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp float)
+0:402          'r00' (temp float)
+0:402          component-wise multiply (temp float)
+0:402            'inF0' (in float)
+0:402            'inF1' (in float)
+0:403      Sequence
+0:403        move second child to first child (temp 2-component vector of float)
+0:403          'r01' (temp 2-component vector of float)
+0:403          vector-scale (temp 2-component vector of float)
+0:403            'inFV2' (in 2-component vector of float)
+0:403            'inF0' (in float)
+0:404      Sequence
+0:404        move second child to first child (temp 3-component vector of float)
+0:404          'r02' (temp 3-component vector of float)
+0:404          vector-scale (temp 3-component vector of float)
+0:404            'inFV3' (in 3-component vector of float)
+0:404            'inF0' (in float)
+0:405      Sequence
+0:405        move second child to first child (temp 2-component vector of float)
+0:405          'r03' (temp 2-component vector of float)
+0:405          vector-scale (temp 2-component vector of float)
+0:405            'inF0' (in float)
+0:405            'inFV2' (in 2-component vector of float)
+0:406      Sequence
+0:406        move second child to first child (temp 3-component vector of float)
+0:406          'r04' (temp 3-component vector of float)
+0:406          vector-scale (temp 3-component vector of float)
+0:406            'inF0' (in float)
+0:406            'inFV3' (in 3-component vector of float)
+0:407      Sequence
+0:407        move second child to first child (temp float)
+0:407          'r05' (temp float)
+0:407          dot-product (global float)
+0:407            'inFV2' (in 2-component vector of float)
+0:407            'inFV2' (in 2-component vector of float)
+0:408      Sequence
+0:408        move second child to first child (temp float)
+0:408          'r06' (temp float)
+0:408          dot-product (global float)
+0:408            'inFV3' (in 3-component vector of float)
+0:408            'inFV3' (in 3-component vector of float)
+0:409      Sequence
+0:409        move second child to first child (temp 3-component vector of float)
+0:409          'r07' (temp 3-component vector of float)
+0:409          vector-times-matrix (temp 3-component vector of float)
+0:409            'inFV2' (in 2-component vector of float)
+0:409            'inFM2x3' (in 3X2 matrix of float)
+0:410      Sequence
+0:410        move second child to first child (temp 2-component vector of float)
+0:410          'r08' (temp 2-component vector of float)
+0:410          vector-times-matrix (temp 2-component vector of float)
+0:410            'inFV3' (in 3-component vector of float)
+0:410            'inFM3x2' (in 2X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 2-component vector of float)
+0:411          'r09' (temp 2-component vector of float)
+0:411          matrix-times-vector (temp 2-component vector of float)
+0:411            'inFM2x3' (in 3X2 matrix of float)
+0:411            'inFV3' (in 3-component vector of float)
+0:412      Sequence
+0:412        move second child to first child (temp 3-component vector of float)
+0:412          'r10' (temp 3-component vector of float)
+0:412          matrix-times-vector (temp 3-component vector of float)
+0:412            'inFM3x2' (in 2X3 matrix of float)
+0:412            'inFV2' (in 2-component vector of float)
+0:413      Sequence
+0:413        move second child to first child (temp 3X2 matrix of float)
+0:413          'r11' (temp 3X2 matrix of float)
+0:413          matrix-scale (temp 3X2 matrix of float)
+0:413            'inFM2x3' (in 3X2 matrix of float)
+0:413            'inF0' (in float)
+0:414      Sequence
+0:414        move second child to first child (temp 2X3 matrix of float)
+0:414          'r12' (temp 2X3 matrix of float)
+0:414          matrix-scale (temp 2X3 matrix of float)
+0:414            'inFM3x2' (in 2X3 matrix of float)
+0:414            'inF0' (in float)
+0:415      Sequence
+0:415        move second child to first child (temp 2X2 matrix of float)
+0:415          'r13' (temp 2X2 matrix of float)
+0:415          matrix-multiply (temp 2X2 matrix of float)
+0:415            'inFM2x3' (in 3X2 matrix of float)
+0:415            'inFM3x2' (in 2X3 matrix of float)
+0:416      Sequence
+0:416        move second child to first child (temp 3X2 matrix of float)
+0:416          'r14' (temp 3X2 matrix of float)
+0:416          matrix-multiply (temp 3X2 matrix of float)
+0:416            'inFM2x3' (in 3X2 matrix of float)
+0:416            'inFM3x3' (in 3X3 matrix of float)
+0:417      Sequence
+0:417        move second child to first child (temp 4X2 matrix of float)
+0:417          'r15' (temp 4X2 matrix of float)
+0:417          matrix-multiply (temp 4X2 matrix of float)
+0:417            'inFM2x3' (in 3X2 matrix of float)
+0:417            'inFM3x4' (in 4X3 matrix of float)
+0:418      Sequence
+0:418        move second child to first child (temp 4X3 matrix of float)
+0:418          'r16' (temp 4X3 matrix of float)
+0:418          matrix-multiply (temp 4X3 matrix of float)
+0:418            'inFM3x2' (in 2X3 matrix of float)
+0:418            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
 
 
@@ -2451,51 +2495,60 @@
 0:377      'inFM0' (in 2X2 matrix of float)
 0:377      'inFM1' (in 2X2 matrix of float)
 0:?     Sequence
-0:378      move second child to first child (temp float)
-0:378        'r0' (temp float)
-0:378        component-wise multiply (temp float)
-0:378          'inF0' (in float)
-0:378          'inF1' (in float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r1' (temp 2-component vector of float)
-0:378        vector-scale (temp 2-component vector of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inF0' (in float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r2' (temp 2-component vector of float)
-0:378        vector-scale (temp 2-component vector of float)
-0:378          'inF0' (in float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378      move second child to first child (temp float)
-0:378        'r3' (temp float)
-0:378        dot-product (global float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inFV1' (in 2-component vector of float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r4' (temp 2-component vector of float)
-0:378        matrix-times-vector (temp 2-component vector of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378      move second child to first child (temp 2-component vector of float)
-0:378        'r5' (temp 2-component vector of float)
-0:378        vector-times-matrix (temp 2-component vector of float)
-0:378          'inFV0' (in 2-component vector of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r6' (temp 2X2 matrix of float)
-0:378        matrix-scale (temp 2X2 matrix of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inF0' (in float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r7' (temp 2X2 matrix of float)
-0:378        matrix-scale (temp 2X2 matrix of float)
-0:378          'inF0' (in float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378      move second child to first child (temp 2X2 matrix of float)
-0:378        'r8' (temp 2X2 matrix of float)
-0:378        matrix-multiply (temp 2X2 matrix of float)
-0:378          'inFM0' (in 2X2 matrix of float)
-0:378          'inFM1' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp float)
+0:378          'r0' (temp float)
+0:378          component-wise multiply (temp float)
+0:378            'inF0' (in float)
+0:378            'inF1' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r1' (temp 2-component vector of float)
+0:378          vector-scale (temp 2-component vector of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inF0' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r2' (temp 2-component vector of float)
+0:378          vector-scale (temp 2-component vector of float)
+0:378            'inF0' (in float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp float)
+0:378          'r3' (temp float)
+0:378          dot-product (global float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inFV1' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r4' (temp 2-component vector of float)
+0:378          matrix-times-vector (temp 2-component vector of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2-component vector of float)
+0:378          'r5' (temp 2-component vector of float)
+0:378          vector-times-matrix (temp 2-component vector of float)
+0:378            'inFV0' (in 2-component vector of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r6' (temp 2X2 matrix of float)
+0:378          matrix-scale (temp 2X2 matrix of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inF0' (in float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r7' (temp 2X2 matrix of float)
+0:378          matrix-scale (temp 2X2 matrix of float)
+0:378            'inF0' (in float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378      Sequence
+0:378        move second child to first child (temp 2X2 matrix of float)
+0:378          'r8' (temp 2X2 matrix of float)
+0:378          matrix-multiply (temp 2X2 matrix of float)
+0:378            'inFM0' (in 2X2 matrix of float)
+0:378            'inFM1' (in 2X2 matrix of float)
 0:388  Function Definition: TestGenMul3(f1;f1;vf3;vf3;mf33;mf33; (temp void)
 0:384    Function Parameters: 
 0:384      'inF0' (in float)
@@ -2505,51 +2558,60 @@
 0:384      'inFM0' (in 3X3 matrix of float)
 0:384      'inFM1' (in 3X3 matrix of float)
 0:?     Sequence
-0:385      move second child to first child (temp float)
-0:385        'r0' (temp float)
-0:385        component-wise multiply (temp float)
-0:385          'inF0' (in float)
-0:385          'inF1' (in float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r1' (temp 3-component vector of float)
-0:385        vector-scale (temp 3-component vector of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inF0' (in float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r2' (temp 3-component vector of float)
-0:385        vector-scale (temp 3-component vector of float)
-0:385          'inF0' (in float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385      move second child to first child (temp float)
-0:385        'r3' (temp float)
-0:385        dot-product (global float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inFV1' (in 3-component vector of float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r4' (temp 3-component vector of float)
-0:385        matrix-times-vector (temp 3-component vector of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385      move second child to first child (temp 3-component vector of float)
-0:385        'r5' (temp 3-component vector of float)
-0:385        vector-times-matrix (temp 3-component vector of float)
-0:385          'inFV0' (in 3-component vector of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r6' (temp 3X3 matrix of float)
-0:385        matrix-scale (temp 3X3 matrix of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inF0' (in float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r7' (temp 3X3 matrix of float)
-0:385        matrix-scale (temp 3X3 matrix of float)
-0:385          'inF0' (in float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385      move second child to first child (temp 3X3 matrix of float)
-0:385        'r8' (temp 3X3 matrix of float)
-0:385        matrix-multiply (temp 3X3 matrix of float)
-0:385          'inFM0' (in 3X3 matrix of float)
-0:385          'inFM1' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp float)
+0:385          'r0' (temp float)
+0:385          component-wise multiply (temp float)
+0:385            'inF0' (in float)
+0:385            'inF1' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r1' (temp 3-component vector of float)
+0:385          vector-scale (temp 3-component vector of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inF0' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r2' (temp 3-component vector of float)
+0:385          vector-scale (temp 3-component vector of float)
+0:385            'inF0' (in float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp float)
+0:385          'r3' (temp float)
+0:385          dot-product (global float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inFV1' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r4' (temp 3-component vector of float)
+0:385          matrix-times-vector (temp 3-component vector of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3-component vector of float)
+0:385          'r5' (temp 3-component vector of float)
+0:385          vector-times-matrix (temp 3-component vector of float)
+0:385            'inFV0' (in 3-component vector of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r6' (temp 3X3 matrix of float)
+0:385          matrix-scale (temp 3X3 matrix of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inF0' (in float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r7' (temp 3X3 matrix of float)
+0:385          matrix-scale (temp 3X3 matrix of float)
+0:385            'inF0' (in float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385      Sequence
+0:385        move second child to first child (temp 3X3 matrix of float)
+0:385          'r8' (temp 3X3 matrix of float)
+0:385          matrix-multiply (temp 3X3 matrix of float)
+0:385            'inFM0' (in 3X3 matrix of float)
+0:385            'inFM1' (in 3X3 matrix of float)
 0:396  Function Definition: TestGenMul4(f1;f1;vf4;vf4;mf44;mf44; (temp void)
 0:391    Function Parameters: 
 0:391      'inF0' (in float)
@@ -2559,51 +2621,60 @@
 0:391      'inFM0' (in 4X4 matrix of float)
 0:391      'inFM1' (in 4X4 matrix of float)
 0:?     Sequence
-0:392      move second child to first child (temp float)
-0:392        'r0' (temp float)
-0:392        component-wise multiply (temp float)
-0:392          'inF0' (in float)
-0:392          'inF1' (in float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r1' (temp 4-component vector of float)
-0:392        vector-scale (temp 4-component vector of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inF0' (in float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r2' (temp 4-component vector of float)
-0:392        vector-scale (temp 4-component vector of float)
-0:392          'inF0' (in float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392      move second child to first child (temp float)
-0:392        'r3' (temp float)
-0:392        dot-product (global float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inFV1' (in 4-component vector of float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r4' (temp 4-component vector of float)
-0:392        matrix-times-vector (temp 4-component vector of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392      move second child to first child (temp 4-component vector of float)
-0:392        'r5' (temp 4-component vector of float)
-0:392        vector-times-matrix (temp 4-component vector of float)
-0:392          'inFV0' (in 4-component vector of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r6' (temp 4X4 matrix of float)
-0:392        matrix-scale (temp 4X4 matrix of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inF0' (in float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r7' (temp 4X4 matrix of float)
-0:392        matrix-scale (temp 4X4 matrix of float)
-0:392          'inF0' (in float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392      move second child to first child (temp 4X4 matrix of float)
-0:392        'r8' (temp 4X4 matrix of float)
-0:392        matrix-multiply (temp 4X4 matrix of float)
-0:392          'inFM0' (in 4X4 matrix of float)
-0:392          'inFM1' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp float)
+0:392          'r0' (temp float)
+0:392          component-wise multiply (temp float)
+0:392            'inF0' (in float)
+0:392            'inF1' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r1' (temp 4-component vector of float)
+0:392          vector-scale (temp 4-component vector of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inF0' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r2' (temp 4-component vector of float)
+0:392          vector-scale (temp 4-component vector of float)
+0:392            'inF0' (in float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp float)
+0:392          'r3' (temp float)
+0:392          dot-product (global float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inFV1' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r4' (temp 4-component vector of float)
+0:392          matrix-times-vector (temp 4-component vector of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4-component vector of float)
+0:392          'r5' (temp 4-component vector of float)
+0:392          vector-times-matrix (temp 4-component vector of float)
+0:392            'inFV0' (in 4-component vector of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r6' (temp 4X4 matrix of float)
+0:392          matrix-scale (temp 4X4 matrix of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inF0' (in float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r7' (temp 4X4 matrix of float)
+0:392          matrix-scale (temp 4X4 matrix of float)
+0:392            'inF0' (in float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392      Sequence
+0:392        move second child to first child (temp 4X4 matrix of float)
+0:392          'r8' (temp 4X4 matrix of float)
+0:392          matrix-multiply (temp 4X4 matrix of float)
+0:392            'inFM0' (in 4X4 matrix of float)
+0:392            'inFM1' (in 4X4 matrix of float)
 0:420  Function Definition: TestGenMulNxM(f1;f1;vf2;vf3;mf32;mf23;mf33;mf43;mf42; (temp void)
 0:401    Function Parameters: 
 0:401      'inF0' (in float)
@@ -2616,91 +2687,108 @@
 0:401      'inFM3x4' (in 4X3 matrix of float)
 0:401      'inFM2x4' (in 4X2 matrix of float)
 0:?     Sequence
-0:402      move second child to first child (temp float)
-0:402        'r00' (temp float)
-0:402        component-wise multiply (temp float)
-0:402          'inF0' (in float)
-0:402          'inF1' (in float)
-0:403      move second child to first child (temp 2-component vector of float)
-0:403        'r01' (temp 2-component vector of float)
-0:403        vector-scale (temp 2-component vector of float)
-0:403          'inFV2' (in 2-component vector of float)
-0:403          'inF0' (in float)
-0:404      move second child to first child (temp 3-component vector of float)
-0:404        'r02' (temp 3-component vector of float)
-0:404        vector-scale (temp 3-component vector of float)
-0:404          'inFV3' (in 3-component vector of float)
-0:404          'inF0' (in float)
-0:405      move second child to first child (temp 2-component vector of float)
-0:405        'r03' (temp 2-component vector of float)
-0:405        vector-scale (temp 2-component vector of float)
-0:405          'inF0' (in float)
-0:405          'inFV2' (in 2-component vector of float)
-0:406      move second child to first child (temp 3-component vector of float)
-0:406        'r04' (temp 3-component vector of float)
-0:406        vector-scale (temp 3-component vector of float)
-0:406          'inF0' (in float)
-0:406          'inFV3' (in 3-component vector of float)
-0:407      move second child to first child (temp float)
-0:407        'r05' (temp float)
-0:407        dot-product (global float)
-0:407          'inFV2' (in 2-component vector of float)
-0:407          'inFV2' (in 2-component vector of float)
-0:408      move second child to first child (temp float)
-0:408        'r06' (temp float)
-0:408        dot-product (global float)
-0:408          'inFV3' (in 3-component vector of float)
-0:408          'inFV3' (in 3-component vector of float)
-0:409      move second child to first child (temp 3-component vector of float)
-0:409        'r07' (temp 3-component vector of float)
-0:409        vector-times-matrix (temp 3-component vector of float)
-0:409          'inFV2' (in 2-component vector of float)
-0:409          'inFM2x3' (in 3X2 matrix of float)
-0:410      move second child to first child (temp 2-component vector of float)
-0:410        'r08' (temp 2-component vector of float)
-0:410        vector-times-matrix (temp 2-component vector of float)
-0:410          'inFV3' (in 3-component vector of float)
-0:410          'inFM3x2' (in 2X3 matrix of float)
-0:411      move second child to first child (temp 2-component vector of float)
-0:411        'r09' (temp 2-component vector of float)
-0:411        matrix-times-vector (temp 2-component vector of float)
-0:411          'inFM2x3' (in 3X2 matrix of float)
-0:411          'inFV3' (in 3-component vector of float)
-0:412      move second child to first child (temp 3-component vector of float)
-0:412        'r10' (temp 3-component vector of float)
-0:412        matrix-times-vector (temp 3-component vector of float)
-0:412          'inFM3x2' (in 2X3 matrix of float)
-0:412          'inFV2' (in 2-component vector of float)
-0:413      move second child to first child (temp 3X2 matrix of float)
-0:413        'r11' (temp 3X2 matrix of float)
-0:413        matrix-scale (temp 3X2 matrix of float)
-0:413          'inFM2x3' (in 3X2 matrix of float)
-0:413          'inF0' (in float)
-0:414      move second child to first child (temp 2X3 matrix of float)
-0:414        'r12' (temp 2X3 matrix of float)
-0:414        matrix-scale (temp 2X3 matrix of float)
-0:414          'inFM3x2' (in 2X3 matrix of float)
-0:414          'inF0' (in float)
-0:415      move second child to first child (temp 2X2 matrix of float)
-0:415        'r13' (temp 2X2 matrix of float)
-0:415        matrix-multiply (temp 2X2 matrix of float)
-0:415          'inFM2x3' (in 3X2 matrix of float)
-0:415          'inFM3x2' (in 2X3 matrix of float)
-0:416      move second child to first child (temp 3X2 matrix of float)
-0:416        'r14' (temp 3X2 matrix of float)
-0:416        matrix-multiply (temp 3X2 matrix of float)
-0:416          'inFM2x3' (in 3X2 matrix of float)
-0:416          'inFM3x3' (in 3X3 matrix of float)
-0:417      move second child to first child (temp 4X2 matrix of float)
-0:417        'r15' (temp 4X2 matrix of float)
-0:417        matrix-multiply (temp 4X2 matrix of float)
-0:417          'inFM2x3' (in 3X2 matrix of float)
-0:417          'inFM3x4' (in 4X3 matrix of float)
-0:418      move second child to first child (temp 4X3 matrix of float)
-0:418        'r16' (temp 4X3 matrix of float)
-0:418        matrix-multiply (temp 4X3 matrix of float)
-0:418          'inFM3x2' (in 2X3 matrix of float)
-0:418          'inFM2x4' (in 4X2 matrix of float)
+0:402      Sequence
+0:402        move second child to first child (temp float)
+0:402          'r00' (temp float)
+0:402          component-wise multiply (temp float)
+0:402            'inF0' (in float)
+0:402            'inF1' (in float)
+0:403      Sequence
+0:403        move second child to first child (temp 2-component vector of float)
+0:403          'r01' (temp 2-component vector of float)
+0:403          vector-scale (temp 2-component vector of float)
+0:403            'inFV2' (in 2-component vector of float)
+0:403            'inF0' (in float)
+0:404      Sequence
+0:404        move second child to first child (temp 3-component vector of float)
+0:404          'r02' (temp 3-component vector of float)
+0:404          vector-scale (temp 3-component vector of float)
+0:404            'inFV3' (in 3-component vector of float)
+0:404            'inF0' (in float)
+0:405      Sequence
+0:405        move second child to first child (temp 2-component vector of float)
+0:405          'r03' (temp 2-component vector of float)
+0:405          vector-scale (temp 2-component vector of float)
+0:405            'inF0' (in float)
+0:405            'inFV2' (in 2-component vector of float)
+0:406      Sequence
+0:406        move second child to first child (temp 3-component vector of float)
+0:406          'r04' (temp 3-component vector of float)
+0:406          vector-scale (temp 3-component vector of float)
+0:406            'inF0' (in float)
+0:406            'inFV3' (in 3-component vector of float)
+0:407      Sequence
+0:407        move second child to first child (temp float)
+0:407          'r05' (temp float)
+0:407          dot-product (global float)
+0:407            'inFV2' (in 2-component vector of float)
+0:407            'inFV2' (in 2-component vector of float)
+0:408      Sequence
+0:408        move second child to first child (temp float)
+0:408          'r06' (temp float)
+0:408          dot-product (global float)
+0:408            'inFV3' (in 3-component vector of float)
+0:408            'inFV3' (in 3-component vector of float)
+0:409      Sequence
+0:409        move second child to first child (temp 3-component vector of float)
+0:409          'r07' (temp 3-component vector of float)
+0:409          vector-times-matrix (temp 3-component vector of float)
+0:409            'inFV2' (in 2-component vector of float)
+0:409            'inFM2x3' (in 3X2 matrix of float)
+0:410      Sequence
+0:410        move second child to first child (temp 2-component vector of float)
+0:410          'r08' (temp 2-component vector of float)
+0:410          vector-times-matrix (temp 2-component vector of float)
+0:410            'inFV3' (in 3-component vector of float)
+0:410            'inFM3x2' (in 2X3 matrix of float)
+0:411      Sequence
+0:411        move second child to first child (temp 2-component vector of float)
+0:411          'r09' (temp 2-component vector of float)
+0:411          matrix-times-vector (temp 2-component vector of float)
+0:411            'inFM2x3' (in 3X2 matrix of float)
+0:411            'inFV3' (in 3-component vector of float)
+0:412      Sequence
+0:412        move second child to first child (temp 3-component vector of float)
+0:412          'r10' (temp 3-component vector of float)
+0:412          matrix-times-vector (temp 3-component vector of float)
+0:412            'inFM3x2' (in 2X3 matrix of float)
+0:412            'inFV2' (in 2-component vector of float)
+0:413      Sequence
+0:413        move second child to first child (temp 3X2 matrix of float)
+0:413          'r11' (temp 3X2 matrix of float)
+0:413          matrix-scale (temp 3X2 matrix of float)
+0:413            'inFM2x3' (in 3X2 matrix of float)
+0:413            'inF0' (in float)
+0:414      Sequence
+0:414        move second child to first child (temp 2X3 matrix of float)
+0:414          'r12' (temp 2X3 matrix of float)
+0:414          matrix-scale (temp 2X3 matrix of float)
+0:414            'inFM3x2' (in 2X3 matrix of float)
+0:414            'inF0' (in float)
+0:415      Sequence
+0:415        move second child to first child (temp 2X2 matrix of float)
+0:415          'r13' (temp 2X2 matrix of float)
+0:415          matrix-multiply (temp 2X2 matrix of float)
+0:415            'inFM2x3' (in 3X2 matrix of float)
+0:415            'inFM3x2' (in 2X3 matrix of float)
+0:416      Sequence
+0:416        move second child to first child (temp 3X2 matrix of float)
+0:416          'r14' (temp 3X2 matrix of float)
+0:416          matrix-multiply (temp 3X2 matrix of float)
+0:416            'inFM2x3' (in 3X2 matrix of float)
+0:416            'inFM3x3' (in 3X3 matrix of float)
+0:417      Sequence
+0:417        move second child to first child (temp 4X2 matrix of float)
+0:417          'r15' (temp 4X2 matrix of float)
+0:417          matrix-multiply (temp 4X2 matrix of float)
+0:417            'inFM2x3' (in 3X2 matrix of float)
+0:417            'inFM3x4' (in 4X3 matrix of float)
+0:418      Sequence
+0:418        move second child to first child (temp 4X3 matrix of float)
+0:418          'r16' (temp 4X3 matrix of float)
+0:418          matrix-multiply (temp 4X3 matrix of float)
+0:418            'inFM3x2' (in 2X3 matrix of float)
+0:418            'inFM2x4' (in 4X2 matrix of float)
 0:?   Linker Objects
 
 // Module Version 10000
diff --git a/Test/baseResults/hlsl.matType.frag.out b/Test/baseResults/hlsl.matType.frag.out
index 40dbd89..8742e3f 100755
--- a/Test/baseResults/hlsl.matType.frag.out
+++ b/Test/baseResults/hlsl.matType.frag.out
@@ -2,10 +2,11 @@
 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)
-0:1    'f1' (temp 1-component vector of float)
-0:1    Constant:
-0:1      1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 1-component vector of float)
+0:1      'f1' (temp 1-component vector of float)
+0:1      Constant:
+0:1        1.000000
 0:11  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
@@ -25,10 +26,11 @@
 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)
-0:1    'f1' (temp 1-component vector of float)
-0:1    Constant:
-0:1      1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 1-component vector of float)
+0:1      'f1' (temp 1-component vector of float)
+0:1      Constant:
+0:1        1.000000
 0:11  Function Definition: ShaderFunction(vf1;f1; (temp 1-component vector of float)
 0:9    Function Parameters: 
 0:9      'inFloat1' (in 1-component vector of float)
@@ -43,7 +45,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 36
+// Id's are bound by 37
 
                               Capability Shader
                               Capability Float64
@@ -56,46 +58,48 @@
                               Name 11  "ShaderFunction(vf1;f1;"
                               Name 9  "inFloat1"
                               Name 10  "inScalar"
-                              Name 14  "f1"
-                              Name 18  "fmat11"
-                              Name 22  "fmat41"
-                              Name 25  "fmat12"
-                              Name 30  "dmat23"
-                              Name 35  "int44"
+                              Name 13  "f1"
+                              Name 19  "fmat11"
+                              Name 23  "fmat41"
+                              Name 26  "fmat12"
+                              Name 31  "dmat23"
+                              Name 36  "int44"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypePointer Function 6(float)
                8:             TypeFunction 6(float) 7(ptr) 7(ptr)
-              15:             TypeVector 6(float) 1
-              16:             TypeMatrix 15(fvec) 1
-              17:             TypePointer Function 16
-              19:             TypeVector 6(float) 4
-              20:             TypeMatrix 19(fvec4) 1
-              21:             TypePointer Function 20
-              23:             TypeMatrix 15(fvec) 2
-              24:             TypePointer Function 23
-              26:             TypeFloat 64
-              27:             TypeVector 26(float) 2
-              28:             TypeMatrix 27(fvec2) 3
-              29:             TypePointer Function 28
-              31:             TypeInt 32 1
-              32:             TypeVector 31(int) 4
-              33:             TypeMatrix 32(ivec4) 4
-              34:             TypePointer Function 33
+              14:    6(float) Constant 1065353216
+              16:             TypeVector 6(float) 1
+              17:             TypeMatrix 16(fvec) 1
+              18:             TypePointer Function 17
+              20:             TypeVector 6(float) 4
+              21:             TypeMatrix 20(fvec4) 1
+              22:             TypePointer Function 21
+              24:             TypeMatrix 16(fvec) 2
+              25:             TypePointer Function 24
+              27:             TypeFloat 64
+              28:             TypeVector 27(float) 2
+              29:             TypeMatrix 28(fvec2) 3
+              30:             TypePointer Function 29
+              32:             TypeInt 32 1
+              33:             TypeVector 32(int) 4
+              34:             TypeMatrix 33(ivec4) 4
+              35:             TypePointer Function 34
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
+          13(f1):      7(ptr) Variable Function
+                              Store 13(f1) 14
                               FunctionEnd
 11(ShaderFunction(vf1;f1;):    6(float) Function None 8
      9(inFloat1):      7(ptr) FunctionParameter
     10(inScalar):      7(ptr) FunctionParameter
               12:             Label
-          14(f1):      7(ptr) Variable Function
-      18(fmat11):     17(ptr) Variable Function
-      22(fmat41):     21(ptr) Variable Function
-      25(fmat12):     24(ptr) Variable Function
-      30(dmat23):     29(ptr) Variable Function
-       35(int44):     34(ptr) Variable Function
-              13:    6(float) Undef
-                              ReturnValue 13
+      19(fmat11):     18(ptr) Variable Function
+      23(fmat41):     22(ptr) Variable Function
+      26(fmat12):     25(ptr) Variable Function
+      31(dmat23):     30(ptr) Variable Function
+       36(int44):     35(ptr) Variable Function
+              15:    6(float) Undef
+                              ReturnValue 15
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.swizzle.frag.out b/Test/baseResults/hlsl.swizzle.frag.out
index ab9a0cc..36298e2 100755
--- a/Test/baseResults/hlsl.swizzle.frag.out
+++ b/Test/baseResults/hlsl.swizzle.frag.out
@@ -2,13 +2,14 @@
 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)
-0:1    'AmbientColor' (temp 4-component vector of float)
-0:?     Constant:
-0:?       1.000000
-0:?       0.500000
-0:?       0.000000
-0:?       1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'AmbientColor' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
 0:7  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
@@ -41,13 +42,14 @@
 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)
-0:1    'AmbientColor' (temp 4-component vector of float)
-0:?     Constant:
-0:?       1.000000
-0:?       0.500000
-0:?       0.000000
-0:?       1.000000
+0:1  Sequence
+0:1    move second child to first child (temp 4-component vector of float)
+0:1      'AmbientColor' (temp 4-component vector of float)
+0:?       Constant:
+0:?         1.000000
+0:?         0.500000
+0:?         0.000000
+0:?         1.000000
 0:7  Function Definition: ShaderFunction(vf4; (temp 4-component vector of float)
 0:4    Function Parameters: 
 0:4      'input' (in 4-component vector of float)
@@ -75,7 +77,7 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 25
+// Id's are bound by 29
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
@@ -86,28 +88,33 @@
                               Name 4  "PixelShaderFunction"
                               Name 11  "ShaderFunction(vf4;"
                               Name 10  "input"
-                              Name 15  "AmbientColor"
+                              Name 13  "AmbientColor"
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeFloat 32
                7:             TypeVector 6(float) 4
                8:             TypePointer Function 7(fvec4)
                9:             TypeFunction 7(fvec4) 8(ptr)
-              16:             TypeInt 32 0
-              17:     16(int) Constant 2
-              18:             TypePointer Function 6(float)
+              14:    6(float) Constant 1065353216
+              15:    6(float) Constant 1056964608
+              16:    6(float) Constant 0
+              17:    7(fvec4) ConstantComposite 14 15 16 14
+              20:             TypeInt 32 0
+              21:     20(int) Constant 2
+              22:             TypePointer Function 6(float)
 4(PixelShaderFunction):           2 Function None 3
                5:             Label
+13(AmbientColor):      8(ptr) Variable Function
+                              Store 13(AmbientColor) 17
                               FunctionEnd
 11(ShaderFunction(vf4;):    7(fvec4) Function None 9
        10(input):      8(ptr) FunctionParameter
               12:             Label
-15(AmbientColor):      8(ptr) Variable Function
-              13:    7(fvec4) Load 10(input)
-              14:    7(fvec4) VectorShuffle 13 13 3 3 1 0
-              19:     18(ptr) AccessChain 15(AmbientColor) 17
-              20:    6(float) Load 19
-              21:    7(fvec4) CompositeConstruct 20 20 20 20
-              22:    7(fvec4) FMul 14 21
-                              ReturnValue 22
+              18:    7(fvec4) Load 10(input)
+              19:    7(fvec4) VectorShuffle 18 18 3 3 1 0
+              23:     22(ptr) AccessChain 13(AmbientColor) 21
+              24:    6(float) Load 23
+              25:    7(fvec4) CompositeConstruct 24 24 24 24
+              26:    7(fvec4) FMul 19 25
+                              ReturnValue 26
                               FunctionEnd
diff --git a/Test/baseResults/hlsl.templatetypes.frag.out b/Test/baseResults/hlsl.templatetypes.frag.out
index d26c4d8..048b12a 100644
--- a/Test/baseResults/hlsl.templatetypes.frag.out
+++ b/Test/baseResults/hlsl.templatetypes.frag.out
@@ -5,212 +5,240 @@
 0:48  Function Definition: PixelShaderFunction( (temp float)
 0:3    Function Parameters: 
 0:?     Sequence
-0:4      move second child to first child (temp 4-component vector of float)
-0:4        'r00' (temp 4-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:5      move second child to first child (temp 4-component vector of float)
-0:5        'r01' (temp 4-component vector of float)
-0:?         Constant:
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:7      move second child to first child (temp 1-component vector of bool)
-0:7        'r12' (temp 1-component vector of bool)
-0:7        Constant:
-0:7          false (const bool)
-0:8      move second child to first child (temp 1-component vector of int)
-0:8        'r13' (temp 1-component vector of int)
-0:8        Constant:
-0:8          1 (const int)
-0:9      move second child to first child (temp 1-component vector of float)
-0:9        'r14' (temp 1-component vector of float)
-0:9        Constant:
-0:9          1.000000
-0:10      move second child to first child (temp 1-component vector of double)
-0:10        'r15' (temp 1-component vector of double)
-0:10        Constant:
-0:10          1.000000
-0:11      move second child to first child (temp 1-component vector of uint)
-0:11        'r16' (temp 1-component vector of uint)
-0:11        Constant:
-0:11          1 (const uint)
-0:13      move second child to first child (temp 2-component vector of bool)
-0:13        'r20' (temp 2-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:14      move second child to first child (temp 2-component vector of int)
-0:14        'r21' (temp 2-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:15      move second child to first child (temp 2-component vector of float)
-0:15        'r22' (temp 2-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:16      move second child to first child (temp 2-component vector of double)
-0:16        'r23' (temp 2-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:17      move second child to first child (temp 2-component vector of uint)
-0:17        'r24' (temp 2-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:19      move second child to first child (temp 3-component vector of bool)
-0:19        'r30' (temp 3-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:?           true (const bool)
-0:20      move second child to first child (temp 3-component vector of int)
-0:20        'r31' (temp 3-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:?           3 (const int)
-0:21      move second child to first child (temp 3-component vector of float)
-0:21        'r32' (temp 3-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:22      move second child to first child (temp 3-component vector of double)
-0:22        'r33' (temp 3-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:23      move second child to first child (temp 3-component vector of uint)
-0:23        'r34' (temp 3-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:?           3 (const uint)
-0:25      move second child to first child (temp 4-component vector of bool)
-0:25        'r40' (temp 4-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:?           true (const bool)
-0:?           false (const bool)
-0:26      move second child to first child (temp 4-component vector of int)
-0:26        'r41' (temp 4-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:?           3 (const int)
-0:?           4 (const int)
-0:27      move second child to first child (temp 4-component vector of float)
-0:27        'r42' (temp 4-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:28      move second child to first child (temp 4-component vector of double)
-0:28        'r43' (temp 4-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:29      move second child to first child (temp 4-component vector of uint)
-0:29        'r44' (temp 4-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:?           3 (const uint)
-0:?           4 (const uint)
-0:31      move second child to first child (temp 4X4 matrix of float)
-0:31        'r50' (temp 4X4 matrix of float)
-0:?         Constant:
-0:?           0.000000
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
-0:?           13.000000
-0:?           14.000000
-0:?           15.000000
-0:32      move second child to first child (temp 4X4 matrix of float)
-0:32        'r51' (temp 4X4 matrix of float)
-0:?         Constant:
-0:?           0.000000
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
-0:?           13.000000
-0:?           14.000000
-0:?           15.000000
-0:35      move second child to first child (temp 3X2 matrix of float)
-0:35        'r61' (temp 3X2 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:36      move second child to first child (temp 2X3 matrix of float)
-0:36        'r62' (temp 2X3 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:39      move second child to first child (temp 2X4 matrix of float)
-0:39        'r65' (temp 2X4 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:40      move second child to first child (temp 3X4 matrix of float)
-0:40        'r66' (temp 3X4 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
+0:4      Sequence
+0:4        move second child to first child (temp 4-component vector of float)
+0:4          'r00' (temp 4-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:5      Sequence
+0:5        move second child to first child (temp 4-component vector of float)
+0:5          'r01' (temp 4-component vector of float)
+0:?           Constant:
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:7      Sequence
+0:7        move second child to first child (temp 1-component vector of bool)
+0:7          'r12' (temp 1-component vector of bool)
+0:7          Constant:
+0:7            false (const bool)
+0:8      Sequence
+0:8        move second child to first child (temp 1-component vector of int)
+0:8          'r13' (temp 1-component vector of int)
+0:8          Constant:
+0:8            1 (const int)
+0:9      Sequence
+0:9        move second child to first child (temp 1-component vector of float)
+0:9          'r14' (temp 1-component vector of float)
+0:9          Constant:
+0:9            1.000000
+0:10      Sequence
+0:10        move second child to first child (temp 1-component vector of double)
+0:10          'r15' (temp 1-component vector of double)
+0:10          Constant:
+0:10            1.000000
+0:11      Sequence
+0:11        move second child to first child (temp 1-component vector of uint)
+0:11          'r16' (temp 1-component vector of uint)
+0:11          Constant:
+0:11            1 (const uint)
+0:13      Sequence
+0:13        move second child to first child (temp 2-component vector of bool)
+0:13          'r20' (temp 2-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:14      Sequence
+0:14        move second child to first child (temp 2-component vector of int)
+0:14          'r21' (temp 2-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:15      Sequence
+0:15        move second child to first child (temp 2-component vector of float)
+0:15          'r22' (temp 2-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:16      Sequence
+0:16        move second child to first child (temp 2-component vector of double)
+0:16          'r23' (temp 2-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:17      Sequence
+0:17        move second child to first child (temp 2-component vector of uint)
+0:17          'r24' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:19      Sequence
+0:19        move second child to first child (temp 3-component vector of bool)
+0:19          'r30' (temp 3-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:?             true (const bool)
+0:20      Sequence
+0:20        move second child to first child (temp 3-component vector of int)
+0:20          'r31' (temp 3-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp 3-component vector of float)
+0:21          'r32' (temp 3-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:22      Sequence
+0:22        move second child to first child (temp 3-component vector of double)
+0:22          'r33' (temp 3-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:23      Sequence
+0:23        move second child to first child (temp 3-component vector of uint)
+0:23          'r34' (temp 3-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of bool)
+0:25          'r40' (temp 4-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:?             true (const bool)
+0:?             false (const bool)
+0:26      Sequence
+0:26        move second child to first child (temp 4-component vector of int)
+0:26          'r41' (temp 4-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp 4-component vector of float)
+0:27          'r42' (temp 4-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:28      Sequence
+0:28        move second child to first child (temp 4-component vector of double)
+0:28          'r43' (temp 4-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:29      Sequence
+0:29        move second child to first child (temp 4-component vector of uint)
+0:29          'r44' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:31      Sequence
+0:31        move second child to first child (temp 4X4 matrix of float)
+0:31          'r50' (temp 4X4 matrix of float)
+0:?           Constant:
+0:?             0.000000
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
+0:?             13.000000
+0:?             14.000000
+0:?             15.000000
+0:32      Sequence
+0:32        move second child to first child (temp 4X4 matrix of float)
+0:32          'r51' (temp 4X4 matrix of float)
+0:?           Constant:
+0:?             0.000000
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
+0:?             13.000000
+0:?             14.000000
+0:?             15.000000
+0:35      Sequence
+0:35        move second child to first child (temp 3X2 matrix of float)
+0:35          'r61' (temp 3X2 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:36      Sequence
+0:36        move second child to first child (temp 2X3 matrix of float)
+0:36          'r62' (temp 2X3 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:39      Sequence
+0:39        move second child to first child (temp 2X4 matrix of float)
+0:39          'r65' (temp 2X4 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:40      Sequence
+0:40        move second child to first child (temp 3X4 matrix of float)
+0:40          'r66' (temp 3X4 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
 0:45      Branch: Return with expression
 0:45        Constant:
 0:45          0.000000
@@ -226,212 +254,240 @@
 0:48  Function Definition: PixelShaderFunction( (temp float)
 0:3    Function Parameters: 
 0:?     Sequence
-0:4      move second child to first child (temp 4-component vector of float)
-0:4        'r00' (temp 4-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:5      move second child to first child (temp 4-component vector of float)
-0:5        'r01' (temp 4-component vector of float)
-0:?         Constant:
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:7      move second child to first child (temp 1-component vector of bool)
-0:7        'r12' (temp 1-component vector of bool)
-0:7        Constant:
-0:7          false (const bool)
-0:8      move second child to first child (temp 1-component vector of int)
-0:8        'r13' (temp 1-component vector of int)
-0:8        Constant:
-0:8          1 (const int)
-0:9      move second child to first child (temp 1-component vector of float)
-0:9        'r14' (temp 1-component vector of float)
-0:9        Constant:
-0:9          1.000000
-0:10      move second child to first child (temp 1-component vector of double)
-0:10        'r15' (temp 1-component vector of double)
-0:10        Constant:
-0:10          1.000000
-0:11      move second child to first child (temp 1-component vector of uint)
-0:11        'r16' (temp 1-component vector of uint)
-0:11        Constant:
-0:11          1 (const uint)
-0:13      move second child to first child (temp 2-component vector of bool)
-0:13        'r20' (temp 2-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:14      move second child to first child (temp 2-component vector of int)
-0:14        'r21' (temp 2-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:15      move second child to first child (temp 2-component vector of float)
-0:15        'r22' (temp 2-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:16      move second child to first child (temp 2-component vector of double)
-0:16        'r23' (temp 2-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:17      move second child to first child (temp 2-component vector of uint)
-0:17        'r24' (temp 2-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:19      move second child to first child (temp 3-component vector of bool)
-0:19        'r30' (temp 3-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:?           true (const bool)
-0:20      move second child to first child (temp 3-component vector of int)
-0:20        'r31' (temp 3-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:?           3 (const int)
-0:21      move second child to first child (temp 3-component vector of float)
-0:21        'r32' (temp 3-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:22      move second child to first child (temp 3-component vector of double)
-0:22        'r33' (temp 3-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:23      move second child to first child (temp 3-component vector of uint)
-0:23        'r34' (temp 3-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:?           3 (const uint)
-0:25      move second child to first child (temp 4-component vector of bool)
-0:25        'r40' (temp 4-component vector of bool)
-0:?         Constant:
-0:?           false (const bool)
-0:?           true (const bool)
-0:?           true (const bool)
-0:?           false (const bool)
-0:26      move second child to first child (temp 4-component vector of int)
-0:26        'r41' (temp 4-component vector of int)
-0:?         Constant:
-0:?           1 (const int)
-0:?           2 (const int)
-0:?           3 (const int)
-0:?           4 (const int)
-0:27      move second child to first child (temp 4-component vector of float)
-0:27        'r42' (temp 4-component vector of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:28      move second child to first child (temp 4-component vector of double)
-0:28        'r43' (temp 4-component vector of double)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:29      move second child to first child (temp 4-component vector of uint)
-0:29        'r44' (temp 4-component vector of uint)
-0:?         Constant:
-0:?           1 (const uint)
-0:?           2 (const uint)
-0:?           3 (const uint)
-0:?           4 (const uint)
-0:31      move second child to first child (temp 4X4 matrix of float)
-0:31        'r50' (temp 4X4 matrix of float)
-0:?         Constant:
-0:?           0.000000
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
-0:?           13.000000
-0:?           14.000000
-0:?           15.000000
-0:32      move second child to first child (temp 4X4 matrix of float)
-0:32        'r51' (temp 4X4 matrix of float)
-0:?         Constant:
-0:?           0.000000
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
-0:?           13.000000
-0:?           14.000000
-0:?           15.000000
-0:35      move second child to first child (temp 3X2 matrix of float)
-0:35        'r61' (temp 3X2 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:36      move second child to first child (temp 2X3 matrix of float)
-0:36        'r62' (temp 2X3 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:39      move second child to first child (temp 2X4 matrix of float)
-0:39        'r65' (temp 2X4 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:40      move second child to first child (temp 3X4 matrix of float)
-0:40        'r66' (temp 3X4 matrix of float)
-0:?         Constant:
-0:?           1.000000
-0:?           2.000000
-0:?           3.000000
-0:?           4.000000
-0:?           5.000000
-0:?           6.000000
-0:?           7.000000
-0:?           8.000000
-0:?           9.000000
-0:?           10.000000
-0:?           11.000000
-0:?           12.000000
+0:4      Sequence
+0:4        move second child to first child (temp 4-component vector of float)
+0:4          'r00' (temp 4-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:5      Sequence
+0:5        move second child to first child (temp 4-component vector of float)
+0:5          'r01' (temp 4-component vector of float)
+0:?           Constant:
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:7      Sequence
+0:7        move second child to first child (temp 1-component vector of bool)
+0:7          'r12' (temp 1-component vector of bool)
+0:7          Constant:
+0:7            false (const bool)
+0:8      Sequence
+0:8        move second child to first child (temp 1-component vector of int)
+0:8          'r13' (temp 1-component vector of int)
+0:8          Constant:
+0:8            1 (const int)
+0:9      Sequence
+0:9        move second child to first child (temp 1-component vector of float)
+0:9          'r14' (temp 1-component vector of float)
+0:9          Constant:
+0:9            1.000000
+0:10      Sequence
+0:10        move second child to first child (temp 1-component vector of double)
+0:10          'r15' (temp 1-component vector of double)
+0:10          Constant:
+0:10            1.000000
+0:11      Sequence
+0:11        move second child to first child (temp 1-component vector of uint)
+0:11          'r16' (temp 1-component vector of uint)
+0:11          Constant:
+0:11            1 (const uint)
+0:13      Sequence
+0:13        move second child to first child (temp 2-component vector of bool)
+0:13          'r20' (temp 2-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:14      Sequence
+0:14        move second child to first child (temp 2-component vector of int)
+0:14          'r21' (temp 2-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:15      Sequence
+0:15        move second child to first child (temp 2-component vector of float)
+0:15          'r22' (temp 2-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:16      Sequence
+0:16        move second child to first child (temp 2-component vector of double)
+0:16          'r23' (temp 2-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:17      Sequence
+0:17        move second child to first child (temp 2-component vector of uint)
+0:17          'r24' (temp 2-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:19      Sequence
+0:19        move second child to first child (temp 3-component vector of bool)
+0:19          'r30' (temp 3-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:?             true (const bool)
+0:20      Sequence
+0:20        move second child to first child (temp 3-component vector of int)
+0:20          'r31' (temp 3-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:21      Sequence
+0:21        move second child to first child (temp 3-component vector of float)
+0:21          'r32' (temp 3-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:22      Sequence
+0:22        move second child to first child (temp 3-component vector of double)
+0:22          'r33' (temp 3-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:23      Sequence
+0:23        move second child to first child (temp 3-component vector of uint)
+0:23          'r34' (temp 3-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:25      Sequence
+0:25        move second child to first child (temp 4-component vector of bool)
+0:25          'r40' (temp 4-component vector of bool)
+0:?           Constant:
+0:?             false (const bool)
+0:?             true (const bool)
+0:?             true (const bool)
+0:?             false (const bool)
+0:26      Sequence
+0:26        move second child to first child (temp 4-component vector of int)
+0:26          'r41' (temp 4-component vector of int)
+0:?           Constant:
+0:?             1 (const int)
+0:?             2 (const int)
+0:?             3 (const int)
+0:?             4 (const int)
+0:27      Sequence
+0:27        move second child to first child (temp 4-component vector of float)
+0:27          'r42' (temp 4-component vector of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:28      Sequence
+0:28        move second child to first child (temp 4-component vector of double)
+0:28          'r43' (temp 4-component vector of double)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:29      Sequence
+0:29        move second child to first child (temp 4-component vector of uint)
+0:29          'r44' (temp 4-component vector of uint)
+0:?           Constant:
+0:?             1 (const uint)
+0:?             2 (const uint)
+0:?             3 (const uint)
+0:?             4 (const uint)
+0:31      Sequence
+0:31        move second child to first child (temp 4X4 matrix of float)
+0:31          'r50' (temp 4X4 matrix of float)
+0:?           Constant:
+0:?             0.000000
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
+0:?             13.000000
+0:?             14.000000
+0:?             15.000000
+0:32      Sequence
+0:32        move second child to first child (temp 4X4 matrix of float)
+0:32          'r51' (temp 4X4 matrix of float)
+0:?           Constant:
+0:?             0.000000
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
+0:?             13.000000
+0:?             14.000000
+0:?             15.000000
+0:35      Sequence
+0:35        move second child to first child (temp 3X2 matrix of float)
+0:35          'r61' (temp 3X2 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:36      Sequence
+0:36        move second child to first child (temp 2X3 matrix of float)
+0:36          'r62' (temp 2X3 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:39      Sequence
+0:39        move second child to first child (temp 2X4 matrix of float)
+0:39          'r65' (temp 2X4 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:40      Sequence
+0:40        move second child to first child (temp 3X4 matrix of float)
+0:40          'r66' (temp 3X4 matrix of float)
+0:?           Constant:
+0:?             1.000000
+0:?             2.000000
+0:?             3.000000
+0:?             4.000000
+0:?             5.000000
+0:?             6.000000
+0:?             7.000000
+0:?             8.000000
+0:?             9.000000
+0:?             10.000000
+0:?             11.000000
+0:?             12.000000
 0:45      Branch: Return with expression
 0:45        Constant:
 0:45          0.000000
diff --git a/Test/hlsl.init.frag b/Test/hlsl.init.frag
new file mode 100644
index 0000000..a403a18
--- /dev/null
+++ b/Test/hlsl.init.frag
@@ -0,0 +1,12 @@
+float4 a1 = float4(1, 0.5, 0, 1), b1 = float4(2.0, 2.5, 2.1, 2.2);
+float a2 = 0.2, b2;
+float a3, b3 = 0.3;
+float a4, b4 = 0.4, c4;
+float a5 = 0.5, b5, c5 = 1.5;
+
+float4 ShaderFunction(float4 input) : COLOR0
+{
+    float4 a2 = float4(0.2, 0.3, 0.4, 0.5);
+
+    return input * a1;
+}
diff --git a/gtests/Hlsl.FromFile.cpp b/gtests/Hlsl.FromFile.cpp
index ac2388e..040739f 100644
--- a/gtests/Hlsl.FromFile.cpp
+++ b/gtests/Hlsl.FromFile.cpp
@@ -82,6 +82,7 @@
         {"hlsl.float4.frag", "PixelShaderFunction"},
         {"hlsl.forLoop.frag", "PixelShaderFunction"},
         {"hlsl.if.frag", "PixelShaderFunction"},
+        {"hlsl.init.frag", "ShaderFunction"},
         {"hlsl.intrinsics.barriers.comp", "ComputeShaderFunction"},
         {"hlsl.intrinsics.comp", "ComputeShaderFunction"},
         {"hlsl.intrinsics.evalfns.frag", "main"},
diff --git a/hlsl/hlslGrammar.cpp b/hlsl/hlslGrammar.cpp
index d269f0b..ee65d17 100755
--- a/hlsl/hlslGrammar.cpp
+++ b/hlsl/hlslGrammar.cpp
@@ -107,12 +107,23 @@
 
 // declaration
 //      : SEMICOLON
-//      | fully_specified_type SEMICOLON
-//      | fully_specified_type identifier array_specifier post_decls (EQUAL expression)opt SEMICOLON
+//      | fully_specified_type init_declarator_list SEMICOLON
 //      | fully_specified_type identifier function_parameters post_decls SEMICOLON           // function prototype
 //      | fully_specified_type identifier function_parameters post_decls compound_statement  // function definition
 //
-// 'node' could get created if the declaration creates code, like an initializer
+// init_declarator_list
+//      : init_declarator COMMA init_declarator COMMA init_declarator...
+//
+// init_declarator
+//      : identifier array_specifier post_decls
+//      | identifier array_specifier post_decls EQUAL assignment_expression
+//
+// Parsing has to go pretty far in to know whether it's an init_declarator_list
+// or not, so the implementation below doesn't perfectly divide up the grammar
+// as above.  (The 'identifier' in the first item in init_declarator list is the
+// same as 'identifier' for function declarations.)
+//
+// 'node' could get populated if the declaration creates code, like an initializer
 // or a function body.
 //
 bool HlslGrammar::acceptDeclaration(TIntermNode*& node)
@@ -134,18 +145,72 @@
         // post_decls
         acceptPostDecls(type);
 
-        // EQUAL expression
+        // EQUAL assignment_expression
         TIntermTyped* expressionNode = nullptr;
         if (acceptTokenClass(EHTokAssign)) {
-            if (! acceptExpression(expressionNode)) {
+            if (! acceptAssignmentExpression(expressionNode)) {
                 expected("initializer");
                 return false;
             }
         }
 
+        // COMMA
+        // This means we've been in an init_declarator_list.
+        // Finish the first init_declarator and recognize the rest of the list.
+        if (acceptTokenClass(EHTokComma)) {
+            // init_declarator
+            // we know have multiple declarations
+            node = parseContext.declareVariable(idToken.loc, *idToken.string, type, arraySizes, expressionNode);
+            node = intermediate.makeAggregate(node);
+
+            do {
+                // identifier
+                if (! acceptIdentifier(idToken)) {
+                    expected("identifier");
+                    return false;
+                }
+
+                // array_specifier
+                arraySizes = nullptr;
+                acceptArraySpecifier(arraySizes);
+
+                // post_decls
+                acceptPostDecls(type);
+
+                // EQUAL assignment_expression
+                TIntermTyped* expressionNode = nullptr;
+                if (acceptTokenClass(EHTokAssign)) {
+                    if (! acceptAssignmentExpression(expressionNode)) {
+                        expected("initializer");
+                        return false;
+                    }
+                }
+
+                node = intermediate.growAggregate(node, parseContext.declareVariable(idToken.loc, *idToken.string, type, arraySizes, expressionNode));
+
+                if (acceptTokenClass(EHTokSemicolon)) {
+                    if (node != nullptr)
+                        node->getAsAggregate()->setOperator(EOpSequence);
+                    return true;
+                }
+
+                if (acceptTokenClass(EHTokComma))
+                    continue;
+
+                expected(", or ;");
+                return false;
+            } while (true);
+        }
+
         // SEMICOLON
+        // This also means we've been in an init_declarator_list, but with no COMMA seen.
+        // Recognize the init_declarator_list, which contains a single declaration.
         if (acceptTokenClass(EHTokSemicolon)) {
             node = parseContext.declareVariable(idToken.loc, *idToken.string, type, arraySizes, expressionNode);
+            // use standard AST shape for declarations; just to be safe
+            node = intermediate.makeAggregate(node);
+            if (node != nullptr)
+                node->getAsAggregate()->setOperator(EOpSequence);
             return true;
         }
 
@@ -451,8 +516,6 @@
 // Otherwise, return false, and don't advance
 bool HlslGrammar::acceptType(TType& type)
 {
-    TBasicType basicType;
-
     switch (peek()) {
     case EHTokVector:
         return acceptVectorTemplateType(type);