SPV return from main: Simplify a legacy design such returns are not jumps to exit block.

Structured control-flow rules allow leaving the middle of a construct through
a return, but not through a jump to a block that does a return.

Addresses issue #58.
diff --git a/SPIRV/GlslangToSpv.cpp b/SPIRV/GlslangToSpv.cpp
index 0240dea..37ee52f 100755
--- a/SPIRV/GlslangToSpv.cpp
+++ b/SPIRV/GlslangToSpv.cpp
@@ -454,7 +454,7 @@
     if (! mainTerminated) {
         spv::Block* lastMainBlock = shaderEntry->getLastBlock();
         builder.setBuildPoint(lastMainBlock);
-        builder.leaveFunction(true);
+        builder.leaveFunction();
     }
 }
 
@@ -854,7 +854,7 @@
         } else {
             if (inMain)
                 mainTerminated = true;
-            builder.leaveFunction(inMain);
+            builder.leaveFunction();
             inMain = false;
         }
 
@@ -1276,12 +1276,10 @@
         builder.createLoopContinue();
         break;
     case glslang::EOpReturn:
-        if (inMain)
-            builder.makeMainReturn();
-        else if (node->getExpression())
+        if (node->getExpression())
             builder.makeReturn(false, builder.accessChainLoad(convertGlslangToSpvType(node->getExpression()->getType())));
         else
-            builder.makeReturn();
+            builder.makeReturn(false);
 
         builder.clearAccessChain();
         break;
diff --git a/SPIRV/SpvBuilder.cpp b/SPIRV/SpvBuilder.cpp
index 9913b0b..ba03314 100755
--- a/SPIRV/SpvBuilder.cpp
+++ b/SPIRV/SpvBuilder.cpp
@@ -65,8 +65,7 @@
     builderNumber(userNumber << 16 | SpvBuilderMagic),
     buildPoint(0),
     uniqueId(0),
-    mainFunction(0),
-    stageExit(0)
+    mainFunction(0)
 {
     clearAccessChain();
 }
@@ -723,20 +722,11 @@
     std::vector<Id> params;
 
     mainFunction = makeFunctionEntry(makeVoidType(), "main", params, &entry);
-    stageExit = new Block(getUniqueId(), *mainFunction);
 
     return mainFunction;
 }
 
 // Comments in header
-void Builder::closeMain()
-{
-    setBuildPoint(stageExit);
-    stageExit->addInstruction(new Instruction(NoResult, NoType, OpReturn));
-    mainFunction->addBlock(stageExit);
-}
-
-// Comments in header
 Function* Builder::makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry)
 {
     Id typeId = makeFunctionType(returnType, paramTypes);
@@ -756,14 +746,9 @@
 }
 
 // Comments in header
-void Builder::makeReturn(bool implicit, Id retVal, bool isMain)
+void Builder::makeReturn(bool implicit, Id retVal)
 {
-    if (isMain && retVal)
-        MissingFunctionality("return value from main()");
-
-    if (isMain)
-        createBranch(stageExit);
-    else if (retVal) {
+    if (retVal) {
         Instruction* inst = new Instruction(NoResult, NoType, OpReturnValue);
         inst->addIdOperand(retVal);
         buildPoint->addInstruction(inst);
@@ -775,7 +760,7 @@
 }
 
 // Comments in header
-void Builder::leaveFunction(bool main)
+void Builder::leaveFunction()
 {
     Block* block = buildPoint;
     Function& function = buildPoint->getParent();
@@ -791,10 +776,8 @@
             // Given that this block is at the end of a function, it must be right after an
             // explicit return, just remove it.
             function.popBlock(block);
-        } else if (main)
-            makeMainReturn(true);
-        else {
-            // We're get a return instruction at the end of the current block,
+        } else {
+            // We'll add a return instruction at the end of the current block,
             // which for a non-void function is really error recovery (?), as the source
             // being translated should have had an explicit return, which would have been
             // followed by an unreachable block, which was handled above.
@@ -805,9 +788,6 @@
             }
         }
     }
-
-    if (main)
-        closeMain();
 }
 
 // Comments in header
diff --git a/SPIRV/SpvBuilder.h b/SPIRV/SpvBuilder.h
index f81f9ed..e483570 100755
--- a/SPIRV/SpvBuilder.h
+++ b/SPIRV/SpvBuilder.h
@@ -195,23 +195,16 @@
     // Make the main function.
     Function* makeMain();
 
-    // Return from main. Implicit denotes a return at the very end of main.
-    void makeMainReturn(bool implicit = false) { makeReturn(implicit, 0, true); }
-
-    // Close the main function.
-    void closeMain();
-
     // Make a shader-style function, and create its entry block if entry is non-zero.
     // Return the function, pass back the entry.
     Function* makeFunctionEntry(Id returnType, const char* name, std::vector<Id>& paramTypes, Block **entry = 0);
 
-    // Create a return. Pass whether it is a return form main, and the return
-    // value (if applicable). In the case of an implicit return, no post-return
-    // block is inserted.
-    void makeReturn(bool implicit = false, Id retVal = 0, bool isMain = false);
+    // Create a return. An 'implicit' return is one not appearing in the source
+    // code.  In the case of an implicit return, no post-return block is inserted.
+    void makeReturn(bool implicit, Id retVal = 0);
 
     // Generate all the code needed to finish up a function.
-    void leaveFunction(bool main);
+    void leaveFunction();
 
     // Create a discard.
     void makeDiscard();
@@ -516,7 +509,6 @@
     Block* buildPoint;
     Id uniqueId;
     Function* mainFunction;
-    Block* stageExit;
     AccessChain accessChain;
 
     // special blocks of instructions for output
diff --git a/Test/baseResults/spv.100ops.frag.out b/Test/baseResults/spv.100ops.frag.out
index 45e733c..241c6ce 100755
--- a/Test/baseResults/spv.100ops.frag.out
+++ b/Test/baseResults/spv.100ops.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 48

+// Id's are bound by 47

 

                               Source ESSL 100

                               Capability Shader

@@ -14,75 +14,73 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "foo("

-                              Name 12  "face1"

-                              Name 14  "face2"

-                              Name 18  "z"

-                              Name 22  "low"

-                              Name 27  "high"

-                              Name 37  "gl_FragColor"

-                              Decorate 12(face1) RelaxedPrecision

-                              Decorate 14(face2) RelaxedPrecision

-                              Decorate 18(z) RelaxedPrecision

-                              Decorate 22(low) RelaxedPrecision

-                              Decorate 27(high) RelaxedPrecision

-                              Decorate 37(gl_FragColor) RelaxedPrecision

-                              Decorate 37(gl_FragColor) BuiltIn FragColor

+                              Name 8  "foo("

+                              Name 11  "face1"

+                              Name 13  "face2"

+                              Name 17  "z"

+                              Name 21  "low"

+                              Name 26  "high"

+                              Name 36  "gl_FragColor"

+                              Decorate 11(face1) RelaxedPrecision

+                              Decorate 13(face2) RelaxedPrecision

+                              Decorate 17(z) RelaxedPrecision

+                              Decorate 21(low) RelaxedPrecision

+                              Decorate 26(high) RelaxedPrecision

+                              Decorate 36(gl_FragColor) RelaxedPrecision

+                              Decorate 36(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeFunction 7(float)

-              11:             TypePointer PrivateGlobal 7(float)

-       12(face1):     11(ptr) Variable PrivateGlobal

-              13:    7(float) Constant 1093664768

-       14(face2):     11(ptr) Variable PrivateGlobal

-              15:    7(float) Constant 3221225472

-              16:             TypeInt 32 1

-              17:             TypePointer Function 16(int)

-              19:     16(int) Constant 3

-              20:     16(int) Constant 2

-              21:             TypePointer UniformConstant 16(int)

-         22(low):     21(ptr) Variable UniformConstant

-              25:     16(int) Constant 1

-        27(high):     21(ptr) Variable UniformConstant

-              29:             TypeBool

-              35:             TypeVector 7(float) 4

-              36:             TypePointer Output 35(fvec4)

-37(gl_FragColor):     36(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeFunction 6(float)

+              10:             TypePointer PrivateGlobal 6(float)

+       11(face1):     10(ptr) Variable PrivateGlobal

+              12:    6(float) Constant 1093664768

+       13(face2):     10(ptr) Variable PrivateGlobal

+              14:    6(float) Constant 3221225472

+              15:             TypeInt 32 1

+              16:             TypePointer Function 15(int)

+              18:     15(int) Constant 3

+              19:     15(int) Constant 2

+              20:             TypePointer UniformConstant 15(int)

+         21(low):     20(ptr) Variable UniformConstant

+              24:     15(int) Constant 1

+        26(high):     20(ptr) Variable UniformConstant

+              28:             TypeBool

+              34:             TypeVector 6(float) 4

+              35:             TypePointer Output 34(fvec4)

+36(gl_FragColor):     35(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-           18(z):     17(ptr) Variable Function

-                              Store 12(face1) 13

-                              Store 14(face2) 15

-                              Store 18(z) 19

-              23:     16(int) Load 22(low)

-              24:     16(int) IMul 20 23

-              26:     16(int) IAdd 24 25

-              28:     16(int) Load 27(high)

-              30:    29(bool) SLessThan 26 28

-                              SelectionMerge 32 None

-                              BranchConditional 30 31 32

-              31:               Label

-              33:     16(int)   Load 18(z)

-              34:     16(int)   IAdd 33 25

-                                Store 18(z) 34

-                                Branch 32

-              32:             Label

-              38:    7(float) Load 12(face1)

-              39:     16(int) Load 18(z)

-              40:    7(float) ConvertSToF 39

-              41:   35(fvec4) CompositeConstruct 40 40 40 40

-              42:   35(fvec4) VectorTimesScalar 41 38

-              43:    7(float) FunctionCall 9(foo()

-              44:   35(fvec4) CompositeConstruct 43 43 43 43

-              45:   35(fvec4) FAdd 42 44

-                              Store 37(gl_FragColor) 45

-                              Branch 6

-               6:             Label

+           17(z):     16(ptr) Variable Function

+                              Store 11(face1) 12

+                              Store 13(face2) 14

+                              Store 17(z) 18

+              22:     15(int) Load 21(low)

+              23:     15(int) IMul 19 22

+              25:     15(int) IAdd 23 24

+              27:     15(int) Load 26(high)

+              29:    28(bool) SLessThan 25 27

+                              SelectionMerge 31 None

+                              BranchConditional 29 30 31

+              30:               Label

+              32:     15(int)   Load 17(z)

+              33:     15(int)   IAdd 32 24

+                                Store 17(z) 33

+                                Branch 31

+              31:             Label

+              37:    6(float) Load 11(face1)

+              38:     15(int) Load 17(z)

+              39:    6(float) ConvertSToF 38

+              40:   34(fvec4) CompositeConstruct 39 39 39 39

+              41:   34(fvec4) VectorTimesScalar 40 37

+              42:    6(float) FunctionCall 8(foo()

+              43:   34(fvec4) CompositeConstruct 42 42 42 42

+              44:   34(fvec4) FAdd 41 43

+                              Store 36(gl_FragColor) 44

                               Return

                               FunctionEnd

-         9(foo():    7(float) Function None 8

-              10:             Label

-              46:    7(float) Load 14(face2)

-                              ReturnValue 46

+         8(foo():    6(float) Function None 7

+               9:             Label

+              45:    6(float) Load 13(face2)

+                              ReturnValue 45

                               FunctionEnd

diff --git a/Test/baseResults/spv.140.frag.out b/Test/baseResults/spv.140.frag.out
index fae44fd..8b67908 100755
--- a/Test/baseResults/spv.140.frag.out
+++ b/Test/baseResults/spv.140.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 93

+// Id's are bound by 92

 

                               Source GLSL 140

                               Capability Shader

@@ -14,151 +14,149 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "foo("

-                              Name 12  "i1"

-                              Name 17  "gl_FrontFacing"

-                              Name 25  "i2"

-                              Name 29  "o"

-                              Name 34  "gl_ClipDistance"

-                              Name 43  "k"

-                              Name 55  "sampR"

-                              Name 62  "sampB"

-                              Name 86  "samp2Da"

-                              Name 90  "bn"

-                              MemberName 90(bn) 0  "matra"

-                              MemberName 90(bn) 1  "matca"

-                              MemberName 90(bn) 2  "matr"

-                              MemberName 90(bn) 3  "matc"

-                              MemberName 90(bn) 4  "matrdef"

-                              Name 92  ""

-                              Decorate 17(gl_FrontFacing) BuiltIn FrontFacing

-                              Decorate 34(gl_ClipDistance) Smooth

-                              Decorate 34(gl_ClipDistance) BuiltIn ClipDistance

-                              Decorate 43(k) Smooth

-                              Decorate 86(samp2Da) NoStaticUse

-                              Decorate 89 ArrayStride 64

-                              Decorate 89 ArrayStride 64

-                              MemberDecorate 90(bn) 0 RowMajor

-                              MemberDecorate 90(bn) 0 Offset 0

-                              MemberDecorate 90(bn) 0 MatrixStride 16

-                              MemberDecorate 90(bn) 1 ColMajor

-                              MemberDecorate 90(bn) 1 Offset 256

-                              MemberDecorate 90(bn) 1 MatrixStride 16

-                              MemberDecorate 90(bn) 2 RowMajor

-                              MemberDecorate 90(bn) 2 Offset 512

-                              MemberDecorate 90(bn) 2 MatrixStride 16

-                              MemberDecorate 90(bn) 3 ColMajor

-                              MemberDecorate 90(bn) 3 Offset 576

-                              MemberDecorate 90(bn) 3 MatrixStride 16

-                              MemberDecorate 90(bn) 4 RowMajor

-                              MemberDecorate 90(bn) 4 Offset 640

-                              MemberDecorate 90(bn) 4 MatrixStride 16

-                              Decorate 90(bn) Block

-                              Decorate 92 NoStaticUse

+                              Name 8  "foo("

+                              Name 11  "i1"

+                              Name 16  "gl_FrontFacing"

+                              Name 24  "i2"

+                              Name 28  "o"

+                              Name 33  "gl_ClipDistance"

+                              Name 42  "k"

+                              Name 54  "sampR"

+                              Name 61  "sampB"

+                              Name 85  "samp2Da"

+                              Name 89  "bn"

+                              MemberName 89(bn) 0  "matra"

+                              MemberName 89(bn) 1  "matca"

+                              MemberName 89(bn) 2  "matr"

+                              MemberName 89(bn) 3  "matc"

+                              MemberName 89(bn) 4  "matrdef"

+                              Name 91  ""

+                              Decorate 16(gl_FrontFacing) BuiltIn FrontFacing

+                              Decorate 33(gl_ClipDistance) Smooth

+                              Decorate 33(gl_ClipDistance) BuiltIn ClipDistance

+                              Decorate 42(k) Smooth

+                              Decorate 85(samp2Da) NoStaticUse

+                              Decorate 88 ArrayStride 64

+                              Decorate 88 ArrayStride 64

+                              MemberDecorate 89(bn) 0 RowMajor

+                              MemberDecorate 89(bn) 0 Offset 0

+                              MemberDecorate 89(bn) 0 MatrixStride 16

+                              MemberDecorate 89(bn) 1 ColMajor

+                              MemberDecorate 89(bn) 1 Offset 256

+                              MemberDecorate 89(bn) 1 MatrixStride 16

+                              MemberDecorate 89(bn) 2 RowMajor

+                              MemberDecorate 89(bn) 2 Offset 512

+                              MemberDecorate 89(bn) 2 MatrixStride 16

+                              MemberDecorate 89(bn) 3 ColMajor

+                              MemberDecorate 89(bn) 3 Offset 576

+                              MemberDecorate 89(bn) 3 MatrixStride 16

+                              MemberDecorate 89(bn) 4 RowMajor

+                              MemberDecorate 89(bn) 4 Offset 640

+                              MemberDecorate 89(bn) 4 MatrixStride 16

+                              Decorate 89(bn) Block

+                              Decorate 91 NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeFunction 7(float)

-              11:             TypePointer PrivateGlobal 7(float)

-          12(i1):     11(ptr) Variable PrivateGlobal

-              13:             TypePointer Function 7(float)

-              15:             TypeBool

-              16:             TypePointer Input 15(bool)

-17(gl_FrontFacing):     16(ptr) Variable Input

-              21:    7(float) Constant 3221225472

-              23:    7(float) Constant 1073741824

-          25(i2):     11(ptr) Variable PrivateGlobal

-              26:    7(float) Constant 1120665600

-              27:             TypeVector 7(float) 4

-              28:             TypePointer Output 27(fvec4)

-           29(o):     28(ptr) Variable Output

-              30:             TypeInt 32 0

-              31:     30(int) Constant 5

-              32:             TypeArray 7(float) 31

-              33:             TypePointer Input 32

-34(gl_ClipDistance):     33(ptr) Variable Input

-              35:             TypeInt 32 1

-              36:     35(int) Constant 2

-              37:             TypePointer Input 7(float)

-              42:             TypePointer Input 27(fvec4)

-           43(k):     42(ptr) Variable Input

-              45:             TypeVector 35(int) 4

-              52:             TypeImage 7(float) Rect sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-       55(sampR):     54(ptr) Variable UniformConstant

-              57:             TypeVector 35(int) 2

-              59:             TypeImage 35(int) Buffer sampled format:Unknown

-              60:             TypeSampledImage 59

-              61:             TypePointer UniformConstant 60

-       62(sampB):     61(ptr) Variable UniformConstant

-              67:             TypeVector 7(float) 2

-              70:    7(float) Constant 1120403456

-              81:             TypeImage 7(float) 2D sampled format:Unknown

-              82:             TypeSampledImage 81

-              83:     30(int) Constant 3

-              84:             TypeArray 82 83

-              85:             TypePointer UniformConstant 84

-     86(samp2Da):     85(ptr) Variable UniformConstant

-              87:             TypeMatrix 27(fvec4) 4

-              88:     30(int) Constant 4

-              89:             TypeArray 87 88

-          90(bn):             TypeStruct 89 89 87 87 87

-              91:             TypePointer Uniform 90(bn)

-              92:     91(ptr) Variable Uniform

+               6:             TypeFloat 32

+               7:             TypeFunction 6(float)

+              10:             TypePointer PrivateGlobal 6(float)

+          11(i1):     10(ptr) Variable PrivateGlobal

+              12:             TypePointer Function 6(float)

+              14:             TypeBool

+              15:             TypePointer Input 14(bool)

+16(gl_FrontFacing):     15(ptr) Variable Input

+              20:    6(float) Constant 3221225472

+              22:    6(float) Constant 1073741824

+          24(i2):     10(ptr) Variable PrivateGlobal

+              25:    6(float) Constant 1120665600

+              26:             TypeVector 6(float) 4

+              27:             TypePointer Output 26(fvec4)

+           28(o):     27(ptr) Variable Output

+              29:             TypeInt 32 0

+              30:     29(int) Constant 5

+              31:             TypeArray 6(float) 30

+              32:             TypePointer Input 31

+33(gl_ClipDistance):     32(ptr) Variable Input

+              34:             TypeInt 32 1

+              35:     34(int) Constant 2

+              36:             TypePointer Input 6(float)

+              41:             TypePointer Input 26(fvec4)

+           42(k):     41(ptr) Variable Input

+              44:             TypeVector 34(int) 4

+              51:             TypeImage 6(float) Rect sampled format:Unknown

+              52:             TypeSampledImage 51

+              53:             TypePointer UniformConstant 52

+       54(sampR):     53(ptr) Variable UniformConstant

+              56:             TypeVector 34(int) 2

+              58:             TypeImage 34(int) Buffer sampled format:Unknown

+              59:             TypeSampledImage 58

+              60:             TypePointer UniformConstant 59

+       61(sampB):     60(ptr) Variable UniformConstant

+              66:             TypeVector 6(float) 2

+              69:    6(float) Constant 1120403456

+              80:             TypeImage 6(float) 2D sampled format:Unknown

+              81:             TypeSampledImage 80

+              82:     29(int) Constant 3

+              83:             TypeArray 81 82

+              84:             TypePointer UniformConstant 83

+     85(samp2Da):     84(ptr) Variable UniformConstant

+              86:             TypeMatrix 26(fvec4) 4

+              87:     29(int) Constant 4

+              88:             TypeArray 86 87

+          89(bn):             TypeStruct 88 88 86 86 86

+              90:             TypePointer Uniform 89(bn)

+              91:     90(ptr) Variable Uniform

          4(main):           2 Function None 3

                5:             Label

-              14:     13(ptr) Variable Function

-              18:    15(bool) Load 17(gl_FrontFacing)

-                              SelectionMerge 20 None

-                              BranchConditional 18 19 22

-              19:               Label

-                                Store 14 21

-                                Branch 20

-              22:               Label

-                                Store 14 23

-                                Branch 20

-              20:             Label

-              24:    7(float) Load 14

-                              Store 12(i1) 24

-                              Store 25(i2) 26

-              38:     37(ptr) AccessChain 34(gl_ClipDistance) 36

-              39:    7(float) Load 38

-              40:   27(fvec4) Load 29(o)

-              41:   27(fvec4) CompositeInsert 39 40 1

-                              Store 29(o) 41

-              44:   27(fvec4) Load 43(k)

-              46:   45(ivec4) ConvertFToS 44

-              47:     35(int) CompositeExtract 46 0

-              48:     37(ptr) AccessChain 34(gl_ClipDistance) 47

-              49:    7(float) Load 48

-              50:   27(fvec4) Load 29(o)

-              51:   27(fvec4) CompositeInsert 49 50 2

-                              Store 29(o) 51

-              56:          53 Load 55(sampR)

-              58:   57(ivec2) ImageQuerySize 56

-              63:          60 Load 62(sampB)

-              64:     35(int) ImageQuerySize 63

-              65:   57(ivec2) CompositeConstruct 64 64

-              66:   57(ivec2) IAdd 58 65

-              68:   67(fvec2) ConvertSToF 66

-              69:    7(float) CompositeExtract 68 0

-              71:    7(float) FDiv 69 70

-              72:   27(fvec4) Load 29(o)

-              73:   27(fvec4) CompositeInsert 71 72 3

-                              Store 29(o) 73

-              74:    7(float) FunctionCall 9(foo()

-              75:   27(fvec4) Load 29(o)

-              76:   27(fvec4) CompositeInsert 74 75 2

-                              Store 29(o) 76

-                              Branch 6

-               6:             Label

+              13:     12(ptr) Variable Function

+              17:    14(bool) Load 16(gl_FrontFacing)

+                              SelectionMerge 19 None

+                              BranchConditional 17 18 21

+              18:               Label

+                                Store 13 20

+                                Branch 19

+              21:               Label

+                                Store 13 22

+                                Branch 19

+              19:             Label

+              23:    6(float) Load 13

+                              Store 11(i1) 23

+                              Store 24(i2) 25

+              37:     36(ptr) AccessChain 33(gl_ClipDistance) 35

+              38:    6(float) Load 37

+              39:   26(fvec4) Load 28(o)

+              40:   26(fvec4) CompositeInsert 38 39 1

+                              Store 28(o) 40

+              43:   26(fvec4) Load 42(k)

+              45:   44(ivec4) ConvertFToS 43

+              46:     34(int) CompositeExtract 45 0

+              47:     36(ptr) AccessChain 33(gl_ClipDistance) 46

+              48:    6(float) Load 47

+              49:   26(fvec4) Load 28(o)

+              50:   26(fvec4) CompositeInsert 48 49 2

+                              Store 28(o) 50

+              55:          52 Load 54(sampR)

+              57:   56(ivec2) ImageQuerySize 55

+              62:          59 Load 61(sampB)

+              63:     34(int) ImageQuerySize 62

+              64:   56(ivec2) CompositeConstruct 63 63

+              65:   56(ivec2) IAdd 57 64

+              67:   66(fvec2) ConvertSToF 65

+              68:    6(float) CompositeExtract 67 0

+              70:    6(float) FDiv 68 69

+              71:   26(fvec4) Load 28(o)

+              72:   26(fvec4) CompositeInsert 70 71 3

+                              Store 28(o) 72

+              73:    6(float) FunctionCall 8(foo()

+              74:   26(fvec4) Load 28(o)

+              75:   26(fvec4) CompositeInsert 73 74 2

+                              Store 28(o) 75

                               Return

                               FunctionEnd

-         9(foo():    7(float) Function None 8

-              10:             Label

-              77:    7(float) Load 12(i1)

-              78:    7(float) Load 25(i2)

-              79:    7(float) FAdd 77 78

-                              ReturnValue 79

+         8(foo():    6(float) Function None 7

+               9:             Label

+              76:    6(float) Load 11(i1)

+              77:    6(float) Load 24(i2)

+              78:    6(float) FAdd 76 77

+                              ReturnValue 78

                               FunctionEnd

diff --git a/Test/baseResults/spv.150.geom.out b/Test/baseResults/spv.150.geom.out
index dcd1feb..7133df9 100755
--- a/Test/baseResults/spv.150.geom.out
+++ b/Test/baseResults/spv.150.geom.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 72

+// Id's are bound by 71

 

                               Source GLSL 150

                               Capability Geometry

@@ -17,134 +17,132 @@
                               ExecutionMode 4 OutputTriangleStrip

                               ExecutionMode 4 OutputVertices 30

                               Name 4  "main"

-                              Name 9  "fromVertex"

-                              MemberName 9(fromVertex) 0  "color"

-                              Name 11  ""

-                              Name 14  "fromVertex"

-                              MemberName 14(fromVertex) 0  "color"

-                              Name 19  "fromV"

-                              Name 28  "gl_PerVertex"

-                              MemberName 28(gl_PerVertex) 0  "gl_Position"

-                              MemberName 28(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 28(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 30  ""

-                              Name 31  "gl_PerVertex"

-                              MemberName 31(gl_PerVertex) 0  "gl_Position"

-                              MemberName 31(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 31(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 34  "gl_in"

-                              Name 48  "gl_PrimitiveID"

-                              Name 50  "gl_PrimitiveIDIn"

-                              Name 52  "gl_Layer"

-                              Name 69  "toFragment"

-                              MemberName 69(toFragment) 0  "color"

-                              Name 71  "toF"

-                              Decorate 9(fromVertex) Block

-                              Decorate 9(fromVertex) Stream 3

-                              Decorate 11 Stream 3

-                              Decorate 14(fromVertex) Block

-                              MemberDecorate 28(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 28(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 28(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 28(gl_PerVertex) Block

-                              Decorate 28(gl_PerVertex) Stream 0

-                              Decorate 30 Stream 0

-                              MemberDecorate 31(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 31(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 31(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 31(gl_PerVertex) Block

-                              Decorate 48(gl_PrimitiveID) Stream 0

-                              Decorate 48(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 50(gl_PrimitiveIDIn) BuiltIn PrimitiveId

-                              Decorate 52(gl_Layer) Stream 0

-                              Decorate 52(gl_Layer) BuiltIn Layer

-                              Decorate 69(toFragment) Block

-                              Decorate 69(toFragment) Stream 3

-                              Decorate 71(toF) Stream 3

-                              Decorate 71(toF) NoStaticUse

+                              Name 8  "fromVertex"

+                              MemberName 8(fromVertex) 0  "color"

+                              Name 10  ""

+                              Name 13  "fromVertex"

+                              MemberName 13(fromVertex) 0  "color"

+                              Name 18  "fromV"

+                              Name 27  "gl_PerVertex"

+                              MemberName 27(gl_PerVertex) 0  "gl_Position"

+                              MemberName 27(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 27(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 29  ""

+                              Name 30  "gl_PerVertex"

+                              MemberName 30(gl_PerVertex) 0  "gl_Position"

+                              MemberName 30(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 30(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 33  "gl_in"

+                              Name 47  "gl_PrimitiveID"

+                              Name 49  "gl_PrimitiveIDIn"

+                              Name 51  "gl_Layer"

+                              Name 68  "toFragment"

+                              MemberName 68(toFragment) 0  "color"

+                              Name 70  "toF"

+                              Decorate 8(fromVertex) Block

+                              Decorate 8(fromVertex) Stream 3

+                              Decorate 10 Stream 3

+                              Decorate 13(fromVertex) Block

+                              MemberDecorate 27(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 27(gl_PerVertex) 1 BuiltIn PointSize

+                              MemberDecorate 27(gl_PerVertex) 2 BuiltIn ClipDistance

+                              Decorate 27(gl_PerVertex) Block

+                              Decorate 27(gl_PerVertex) Stream 0

+                              Decorate 29 Stream 0

+                              MemberDecorate 30(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 30(gl_PerVertex) 1 BuiltIn PointSize

+                              MemberDecorate 30(gl_PerVertex) 2 BuiltIn ClipDistance

+                              Decorate 30(gl_PerVertex) Block

+                              Decorate 47(gl_PrimitiveID) Stream 0

+                              Decorate 47(gl_PrimitiveID) BuiltIn PrimitiveId

+                              Decorate 49(gl_PrimitiveIDIn) BuiltIn PrimitiveId

+                              Decorate 51(gl_Layer) Stream 0

+                              Decorate 51(gl_Layer) BuiltIn Layer

+                              Decorate 68(toFragment) Block

+                              Decorate 68(toFragment) Stream 3

+                              Decorate 70(toF) Stream 3

+                              Decorate 70(toF) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 3

-   9(fromVertex):             TypeStruct 8(fvec3)

-              10:             TypePointer Output 9(fromVertex)

-              11:     10(ptr) Variable Output

-              12:             TypeInt 32 1

-              13:     12(int) Constant 0

-  14(fromVertex):             TypeStruct 8(fvec3)

-              15:             TypeInt 32 0

-              16:     15(int) Constant 6

-              17:             TypeArray 14(fromVertex) 16

-              18:             TypePointer Input 17

-       19(fromV):     18(ptr) Variable Input

-              20:             TypePointer Input 8(fvec3)

-              23:             TypePointer Output 8(fvec3)

-              25:             TypeVector 7(float) 4

-              26:     15(int) Constant 1

-              27:             TypeArray 7(float) 26

-28(gl_PerVertex):             TypeStruct 25(fvec4) 7(float) 27

-              29:             TypePointer Output 28(gl_PerVertex)

-              30:     29(ptr) Variable Output

-31(gl_PerVertex):             TypeStruct 25(fvec4) 7(float) 27

-              32:             TypeArray 31(gl_PerVertex) 16

-              33:             TypePointer Input 32

-       34(gl_in):     33(ptr) Variable Input

-              35:             TypePointer Input 25(fvec4)

-              38:             TypePointer Output 25(fvec4)

-              40:     12(int) Constant 1

-              41:     12(int) Constant 3

-              42:             TypePointer Input 7(float)

-              45:             TypePointer Output 7(float)

-              47:             TypePointer Output 12(int)

-48(gl_PrimitiveID):     47(ptr) Variable Output

-              49:             TypePointer Input 12(int)

-50(gl_PrimitiveIDIn):     49(ptr) Variable Input

-    52(gl_Layer):     47(ptr) Variable Output

-              53:     12(int) Constant 2

-              54:    7(float) Constant 1073741824

-  69(toFragment):             TypeStruct 8(fvec3)

-              70:             TypePointer Output 69(toFragment)

-         71(toF):     70(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 3

+   8(fromVertex):             TypeStruct 7(fvec3)

+               9:             TypePointer Output 8(fromVertex)

+              10:      9(ptr) Variable Output

+              11:             TypeInt 32 1

+              12:     11(int) Constant 0

+  13(fromVertex):             TypeStruct 7(fvec3)

+              14:             TypeInt 32 0

+              15:     14(int) Constant 6

+              16:             TypeArray 13(fromVertex) 15

+              17:             TypePointer Input 16

+       18(fromV):     17(ptr) Variable Input

+              19:             TypePointer Input 7(fvec3)

+              22:             TypePointer Output 7(fvec3)

+              24:             TypeVector 6(float) 4

+              25:     14(int) Constant 1

+              26:             TypeArray 6(float) 25

+27(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26

+              28:             TypePointer Output 27(gl_PerVertex)

+              29:     28(ptr) Variable Output

+30(gl_PerVertex):             TypeStruct 24(fvec4) 6(float) 26

+              31:             TypeArray 30(gl_PerVertex) 15

+              32:             TypePointer Input 31

+       33(gl_in):     32(ptr) Variable Input

+              34:             TypePointer Input 24(fvec4)

+              37:             TypePointer Output 24(fvec4)

+              39:     11(int) Constant 1

+              40:     11(int) Constant 3

+              41:             TypePointer Input 6(float)

+              44:             TypePointer Output 6(float)

+              46:             TypePointer Output 11(int)

+47(gl_PrimitiveID):     46(ptr) Variable Output

+              48:             TypePointer Input 11(int)

+49(gl_PrimitiveIDIn):     48(ptr) Variable Input

+    51(gl_Layer):     46(ptr) Variable Output

+              52:     11(int) Constant 2

+              53:    6(float) Constant 1073741824

+  68(toFragment):             TypeStruct 7(fvec3)

+              69:             TypePointer Output 68(toFragment)

+         70(toF):     69(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-              21:     20(ptr) AccessChain 19(fromV) 13 13

-              22:    8(fvec3) Load 21

-              24:     23(ptr) AccessChain 11 13

-                              Store 24 22

-              36:     35(ptr) AccessChain 34(gl_in) 13 13

-              37:   25(fvec4) Load 36

-              39:     38(ptr) AccessChain 30 13

-                              Store 39 37

-              43:     42(ptr) AccessChain 34(gl_in) 41 40

-              44:    7(float) Load 43

-              46:     45(ptr) AccessChain 30 40

-                              Store 46 44

-              51:     12(int) Load 50(gl_PrimitiveIDIn)

-                              Store 48(gl_PrimitiveID) 51

-                              Store 52(gl_Layer) 53

+              20:     19(ptr) AccessChain 18(fromV) 12 12

+              21:    7(fvec3) Load 20

+              23:     22(ptr) AccessChain 10 12

+                              Store 23 21

+              35:     34(ptr) AccessChain 33(gl_in) 12 12

+              36:   24(fvec4) Load 35

+              38:     37(ptr) AccessChain 29 12

+                              Store 38 36

+              42:     41(ptr) AccessChain 33(gl_in) 40 39

+              43:    6(float) Load 42

+              45:     44(ptr) AccessChain 29 39

+                              Store 45 43

+              50:     11(int) Load 49(gl_PrimitiveIDIn)

+                              Store 47(gl_PrimitiveID) 50

+                              Store 51(gl_Layer) 52

                               EmitVertex

-              55:     20(ptr) AccessChain 19(fromV) 13 13

-              56:    8(fvec3) Load 55

-              57:    8(fvec3) VectorTimesScalar 56 54

-              58:     23(ptr) AccessChain 11 13

-                              Store 58 57

-              59:     35(ptr) AccessChain 34(gl_in) 13 13

-              60:   25(fvec4) Load 59

-              61:   25(fvec4) VectorTimesScalar 60 54

-              62:     38(ptr) AccessChain 30 13

-                              Store 62 61

-              63:     42(ptr) AccessChain 34(gl_in) 41 40

-              64:    7(float) Load 63

-              65:    7(float) FMul 54 64

-              66:     45(ptr) AccessChain 30 40

-                              Store 66 65

-              67:     12(int) Load 50(gl_PrimitiveIDIn)

-              68:     12(int) IAdd 67 40

-                              Store 48(gl_PrimitiveID) 68

-                              Store 52(gl_Layer) 41

+              54:     19(ptr) AccessChain 18(fromV) 12 12

+              55:    7(fvec3) Load 54

+              56:    7(fvec3) VectorTimesScalar 55 53

+              57:     22(ptr) AccessChain 10 12

+                              Store 57 56

+              58:     34(ptr) AccessChain 33(gl_in) 12 12

+              59:   24(fvec4) Load 58

+              60:   24(fvec4) VectorTimesScalar 59 53

+              61:     37(ptr) AccessChain 29 12

+                              Store 61 60

+              62:     41(ptr) AccessChain 33(gl_in) 40 39

+              63:    6(float) Load 62

+              64:    6(float) FMul 53 63

+              65:     44(ptr) AccessChain 29 39

+                              Store 65 64

+              66:     11(int) Load 49(gl_PrimitiveIDIn)

+              67:     11(int) IAdd 66 39

+                              Store 47(gl_PrimitiveID) 67

+                              Store 51(gl_Layer) 40

                               EmitVertex

                               EndPrimitive

-                              Branch 6

-               6:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.150.vert.out b/Test/baseResults/spv.150.vert.out
index f55399f..f0291a8 100755
--- a/Test/baseResults/spv.150.vert.out
+++ b/Test/baseResults/spv.150.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 53

+// Id's are bound by 52

 

                               Source GLSL 150

                               Capability Shader

@@ -13,97 +13,95 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 14  "gl_PerVertex"

-                              MemberName 14(gl_PerVertex) 0  "gl_Position"

-                              MemberName 14(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 14(gl_PerVertex) 2  "gl_ClipDistance"

-                              MemberName 14(gl_PerVertex) 3  "gl_ClipVertex"

-                              MemberName 14(gl_PerVertex) 4  "gl_FrontColor"

-                              MemberName 14(gl_PerVertex) 5  "gl_BackColor"

-                              MemberName 14(gl_PerVertex) 6  "gl_FrontSecondaryColor"

-                              MemberName 14(gl_PerVertex) 7  "gl_BackSecondaryColor"

-                              MemberName 14(gl_PerVertex) 8  "gl_TexCoord"

-                              MemberName 14(gl_PerVertex) 9  "gl_FogFragCoord"

-                              Name 16  ""

-                              Name 20  "iv4"

-                              Name 26  "ps"

-                              Name 36  "s1"

-                              MemberName 36(s1) 0  "a"

-                              MemberName 36(s1) 1  "a2"

-                              MemberName 36(s1) 2  "b"

-                              Name 38  "s2"

-                              MemberName 38(s2) 0  "c"

-                              MemberName 38(s2) 1  "d"

-                              Name 40  "s2out"

-                              Name 42  "i"

-                              Name 49  "ui"

-                              Name 51  "gl_VertexID"

-                              Name 52  "gl_InstanceID"

-                              MemberDecorate 14(gl_PerVertex) 0 Invariant

-                              MemberDecorate 14(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 14(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 14(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 14(gl_PerVertex) Block

-                              Decorate 49(ui) NoStaticUse

-                              Decorate 51(gl_VertexID) BuiltIn VertexId

-                              Decorate 51(gl_VertexID) NoStaticUse

-                              Decorate 52(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 52(gl_InstanceID) NoStaticUse

+                              Name 13  "gl_PerVertex"

+                              MemberName 13(gl_PerVertex) 0  "gl_Position"

+                              MemberName 13(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 13(gl_PerVertex) 2  "gl_ClipDistance"

+                              MemberName 13(gl_PerVertex) 3  "gl_ClipVertex"

+                              MemberName 13(gl_PerVertex) 4  "gl_FrontColor"

+                              MemberName 13(gl_PerVertex) 5  "gl_BackColor"

+                              MemberName 13(gl_PerVertex) 6  "gl_FrontSecondaryColor"

+                              MemberName 13(gl_PerVertex) 7  "gl_BackSecondaryColor"

+                              MemberName 13(gl_PerVertex) 8  "gl_TexCoord"

+                              MemberName 13(gl_PerVertex) 9  "gl_FogFragCoord"

+                              Name 15  ""

+                              Name 19  "iv4"

+                              Name 25  "ps"

+                              Name 35  "s1"

+                              MemberName 35(s1) 0  "a"

+                              MemberName 35(s1) 1  "a2"

+                              MemberName 35(s1) 2  "b"

+                              Name 37  "s2"

+                              MemberName 37(s2) 0  "c"

+                              MemberName 37(s2) 1  "d"

+                              Name 39  "s2out"

+                              Name 41  "i"

+                              Name 48  "ui"

+                              Name 50  "gl_VertexID"

+                              Name 51  "gl_InstanceID"

+                              MemberDecorate 13(gl_PerVertex) 0 Invariant

+                              MemberDecorate 13(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 13(gl_PerVertex) 1 BuiltIn PointSize

+                              MemberDecorate 13(gl_PerVertex) 2 BuiltIn ClipDistance

+                              Decorate 13(gl_PerVertex) Block

+                              Decorate 48(ui) NoStaticUse

+                              Decorate 50(gl_VertexID) BuiltIn VertexId

+                              Decorate 50(gl_VertexID) NoStaticUse

+                              Decorate 51(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 51(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypeInt 32 0

-              10:      9(int) Constant 4

-              11:             TypeArray 7(float) 10

-              12:      9(int) Constant 1

-              13:             TypeArray 8(fvec4) 12

-14(gl_PerVertex):             TypeStruct 8(fvec4) 7(float) 11 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 8(fvec4) 13 7(float)

-              15:             TypePointer Output 14(gl_PerVertex)

-              16:     15(ptr) Variable Output

-              17:             TypeInt 32 1

-              18:     17(int) Constant 0

-              19:             TypePointer Input 8(fvec4)

-         20(iv4):     19(ptr) Variable Input

-              22:             TypePointer Output 8(fvec4)

-              24:     17(int) Constant 1

-              25:             TypePointer UniformConstant 7(float)

-          26(ps):     25(ptr) Variable UniformConstant

-              28:             TypePointer Output 7(float)

-              30:     17(int) Constant 2

-              34:      9(int) Constant 3

-              35:             TypeArray 8(fvec4) 34

-          36(s1):             TypeStruct 17(int) 17(int) 35

-              37:             TypeArray 36(s1) 10

-          38(s2):             TypeStruct 17(int) 37

-              39:             TypePointer Output 38(s2)

-       40(s2out):     39(ptr) Variable Output

-              41:             TypePointer Function 17(int)

-              48:             TypePointer UniformConstant 17(int)

-          49(ui):     48(ptr) Variable UniformConstant

-              50:             TypePointer Input 17(int)

- 51(gl_VertexID):     50(ptr) Variable Input

-52(gl_InstanceID):     50(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypeInt 32 0

+               9:      8(int) Constant 4

+              10:             TypeArray 6(float) 9

+              11:      8(int) Constant 1

+              12:             TypeArray 7(fvec4) 11

+13(gl_PerVertex):             TypeStruct 7(fvec4) 6(float) 10 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 7(fvec4) 12 6(float)

+              14:             TypePointer Output 13(gl_PerVertex)

+              15:     14(ptr) Variable Output

+              16:             TypeInt 32 1

+              17:     16(int) Constant 0

+              18:             TypePointer Input 7(fvec4)

+         19(iv4):     18(ptr) Variable Input

+              21:             TypePointer Output 7(fvec4)

+              23:     16(int) Constant 1

+              24:             TypePointer UniformConstant 6(float)

+          25(ps):     24(ptr) Variable UniformConstant

+              27:             TypePointer Output 6(float)

+              29:     16(int) Constant 2

+              33:      8(int) Constant 3

+              34:             TypeArray 7(fvec4) 33

+          35(s1):             TypeStruct 16(int) 16(int) 34

+              36:             TypeArray 35(s1) 9

+          37(s2):             TypeStruct 16(int) 36

+              38:             TypePointer Output 37(s2)

+       39(s2out):     38(ptr) Variable Output

+              40:             TypePointer Function 16(int)

+              47:             TypePointer UniformConstant 16(int)

+          48(ui):     47(ptr) Variable UniformConstant

+              49:             TypePointer Input 16(int)

+ 50(gl_VertexID):     49(ptr) Variable Input

+51(gl_InstanceID):     49(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-           42(i):     41(ptr) Variable Function

-              21:    8(fvec4) Load 20(iv4)

-              23:     22(ptr) AccessChain 16 18

-                              Store 23 21

-              27:    7(float) Load 26(ps)

-              29:     28(ptr) AccessChain 16 24

-                              Store 29 27

-              31:    8(fvec4) Load 20(iv4)

-              32:    7(float) CompositeExtract 31 0

-              33:     28(ptr) AccessChain 16 30 30

-                              Store 33 32

-              43:     17(int) Load 42(i)

-              44:    7(float) Load 26(ps)

-              45:     22(ptr) AccessChain 40(s2out) 24 43 30 30

-              46:    8(fvec4) Load 45

-              47:    8(fvec4) CompositeInsert 44 46 3

-                              Store 45 47

-                              Branch 6

-               6:             Label

+           41(i):     40(ptr) Variable Function

+              20:    7(fvec4) Load 19(iv4)

+              22:     21(ptr) AccessChain 15 17

+                              Store 22 20

+              26:    6(float) Load 25(ps)

+              28:     27(ptr) AccessChain 15 23

+                              Store 28 26

+              30:    7(fvec4) Load 19(iv4)

+              31:    6(float) CompositeExtract 30 0

+              32:     27(ptr) AccessChain 15 29 29

+                              Store 32 31

+              42:     16(int) Load 41(i)

+              43:    6(float) Load 25(ps)

+              44:     21(ptr) AccessChain 39(s2out) 23 42 29 29

+              45:    7(fvec4) Load 44

+              46:    7(fvec4) CompositeInsert 43 45 3

+                              Store 44 46

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.300BuiltIns.vert.out b/Test/baseResults/spv.300BuiltIns.vert.out
index 916a5a9..c867e1c 100755
--- a/Test/baseResults/spv.300BuiltIns.vert.out
+++ b/Test/baseResults/spv.300BuiltIns.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 41

+// Id's are bound by 40

 

                               Source ESSL 300

                               Capability Shader

@@ -13,67 +13,65 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 12  "gl_VertexID"

-                              Name 17  "j"

-                              Name 24  "gl_Position"

-                              Name 26  "ps"

-                              Name 34  "gl_PointSize"

-                              Name 40  "gl_InstanceID"

-                              Decorate 9(i) RelaxedPrecision

-                              Decorate 12(gl_VertexID) BuiltIn VertexId

-                              Decorate 17(j) RelaxedPrecision

-                              Decorate 24(gl_Position) Invariant

-                              Decorate 24(gl_Position) BuiltIn Position

-                              Decorate 26(ps) RelaxedPrecision

-                              Decorate 34(gl_PointSize) BuiltIn PointSize

-                              Decorate 40(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 40(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 11  "gl_VertexID"

+                              Name 16  "j"

+                              Name 23  "gl_Position"

+                              Name 25  "ps"

+                              Name 33  "gl_PointSize"

+                              Name 39  "gl_InstanceID"

+                              Decorate 8(i) RelaxedPrecision

+                              Decorate 11(gl_VertexID) BuiltIn VertexId

+                              Decorate 16(j) RelaxedPrecision

+                              Decorate 23(gl_Position) Invariant

+                              Decorate 23(gl_Position) BuiltIn Position

+                              Decorate 25(ps) RelaxedPrecision

+                              Decorate 33(gl_PointSize) BuiltIn PointSize

+                              Decorate 39(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 39(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 4

-              11:             TypePointer Input 7(int)

- 12(gl_VertexID):     11(ptr) Variable Input

-              15:      7(int) Constant 10

-              21:             TypeFloat 32

-              22:             TypeVector 21(float) 4

-              23:             TypePointer Output 22(fvec4)

- 24(gl_Position):     23(ptr) Variable Output

-              25:             TypePointer Input 21(float)

-          26(ps):     25(ptr) Variable Input

-              33:             TypePointer Output 21(float)

-34(gl_PointSize):     33(ptr) Variable Output

-40(gl_InstanceID):     11(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 4

+              10:             TypePointer Input 6(int)

+ 11(gl_VertexID):     10(ptr) Variable Input

+              14:      6(int) Constant 10

+              20:             TypeFloat 32

+              21:             TypeVector 20(float) 4

+              22:             TypePointer Output 21(fvec4)

+ 23(gl_Position):     22(ptr) Variable Output

+              24:             TypePointer Input 20(float)

+          25(ps):     24(ptr) Variable Input

+              32:             TypePointer Output 20(float)

+33(gl_PointSize):     32(ptr) Variable Output

+39(gl_InstanceID):     10(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-           17(j):      8(ptr) Variable Function

-              13:      7(int) Load 12(gl_VertexID)

-              14:      7(int) IMul 10 13

-              16:      7(int) ISub 14 15

-                              Store 9(i) 16

-              18:      7(int) Load 12(gl_VertexID)

-              19:      7(int) IMul 10 18

-              20:      7(int) ISub 19 15

-                              Store 17(j) 20

-              27:   21(float) Load 26(ps)

-              28:   22(fvec4) CompositeConstruct 27 27 27 27

-                              Store 24(gl_Position) 28

-              29:      7(int) Load 9(i)

-              30:   21(float) ConvertSToF 29

-              31:   22(fvec4) Load 24(gl_Position)

-              32:   22(fvec4) VectorTimesScalar 31 30

-                              Store 24(gl_Position) 32

-              35:   21(float) Load 26(ps)

-                              Store 34(gl_PointSize) 35

-              36:      7(int) Load 17(j)

-              37:   21(float) ConvertSToF 36

-              38:   21(float) Load 34(gl_PointSize)

-              39:   21(float) FMul 38 37

-                              Store 34(gl_PointSize) 39

-                              Branch 6

-               6:             Label

+            8(i):      7(ptr) Variable Function

+           16(j):      7(ptr) Variable Function

+              12:      6(int) Load 11(gl_VertexID)

+              13:      6(int) IMul 9 12

+              15:      6(int) ISub 13 14

+                              Store 8(i) 15

+              17:      6(int) Load 11(gl_VertexID)

+              18:      6(int) IMul 9 17

+              19:      6(int) ISub 18 14

+                              Store 16(j) 19

+              26:   20(float) Load 25(ps)

+              27:   21(fvec4) CompositeConstruct 26 26 26 26

+                              Store 23(gl_Position) 27

+              28:      6(int) Load 8(i)

+              29:   20(float) ConvertSToF 28

+              30:   21(fvec4) Load 23(gl_Position)

+              31:   21(fvec4) VectorTimesScalar 30 29

+                              Store 23(gl_Position) 31

+              34:   20(float) Load 25(ps)

+                              Store 33(gl_PointSize) 34

+              35:      6(int) Load 16(j)

+              36:   20(float) ConvertSToF 35

+              37:   20(float) Load 33(gl_PointSize)

+              38:   20(float) FMul 37 36

+                              Store 33(gl_PointSize) 38

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.300layout.frag.out b/Test/baseResults/spv.300layout.frag.out
index 9845acf..3700efe 100755
--- a/Test/baseResults/spv.300layout.frag.out
+++ b/Test/baseResults/spv.300layout.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 38

+// Id's are bound by 37

 

                               Source ESSL 300

                               Capability Shader

@@ -14,62 +14,60 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "c"

-                              Name 12  "color"

-                              Name 14  "S"

-                              MemberName 14(S) 0  "c"

-                              MemberName 14(S) 1  "f"

-                              Name 16  "s"

-                              Name 27  "p"

-                              Name 30  "pos"

-                              Decorate 10(c) RelaxedPrecision

-                              Decorate 10(c) Location 7

-                              Decorate 12(color) RelaxedPrecision

-                              Decorate 12(color) Smooth

-                              MemberDecorate 14(S) 0 RelaxedPrecision

-                              MemberDecorate 14(S) 1 RelaxedPrecision

-                              Decorate 27(p) RelaxedPrecision

-                              Decorate 27(p) Location 3

-                              Decorate 30(pos) RelaxedPrecision

-                              Decorate 30(pos) Smooth

+                              Name 9  "c"

+                              Name 11  "color"

+                              Name 13  "S"

+                              MemberName 13(S) 0  "c"

+                              MemberName 13(S) 1  "f"

+                              Name 15  "s"

+                              Name 26  "p"

+                              Name 29  "pos"

+                              Decorate 9(c) RelaxedPrecision

+                              Decorate 9(c) Location 7

+                              Decorate 11(color) RelaxedPrecision

+                              Decorate 11(color) Smooth

+                              MemberDecorate 13(S) 0 RelaxedPrecision

+                              MemberDecorate 13(S) 1 RelaxedPrecision

+                              Decorate 26(p) RelaxedPrecision

+                              Decorate 26(p) Location 3

+                              Decorate 29(pos) RelaxedPrecision

+                              Decorate 29(pos) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 3

-               9:             TypePointer Output 8(fvec3)

-           10(c):      9(ptr) Variable Output

-              11:             TypePointer Input 8(fvec3)

-       12(color):     11(ptr) Variable Input

-           14(S):             TypeStruct 8(fvec3) 7(float)

-              15:             TypePointer Input 14(S)

-           16(s):     15(ptr) Variable Input

-              17:             TypeInt 32 1

-              18:     17(int) Constant 0

-              22:             TypeVector 7(float) 4

-              23:             TypeInt 32 0

-              24:     23(int) Constant 2

-              25:             TypeArray 22(fvec4) 24

-              26:             TypePointer Output 25

-           27(p):     26(ptr) Variable Output

-              28:     17(int) Constant 1

-              29:             TypePointer Input 22(fvec4)

-         30(pos):     29(ptr) Variable Input

-              32:             TypePointer Input 7(float)

-              36:             TypePointer Output 22(fvec4)

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 3

+               8:             TypePointer Output 7(fvec3)

+            9(c):      8(ptr) Variable Output

+              10:             TypePointer Input 7(fvec3)

+       11(color):     10(ptr) Variable Input

+           13(S):             TypeStruct 7(fvec3) 6(float)

+              14:             TypePointer Input 13(S)

+           15(s):     14(ptr) Variable Input

+              16:             TypeInt 32 1

+              17:     16(int) Constant 0

+              21:             TypeVector 6(float) 4

+              22:             TypeInt 32 0

+              23:     22(int) Constant 2

+              24:             TypeArray 21(fvec4) 23

+              25:             TypePointer Output 24

+           26(p):     25(ptr) Variable Output

+              27:     16(int) Constant 1

+              28:             TypePointer Input 21(fvec4)

+         29(pos):     28(ptr) Variable Input

+              31:             TypePointer Input 6(float)

+              35:             TypePointer Output 21(fvec4)

          4(main):           2 Function None 3

                5:             Label

-              13:    8(fvec3) Load 12(color)

-              19:     11(ptr) AccessChain 16(s) 18

-              20:    8(fvec3) Load 19

-              21:    8(fvec3) FAdd 13 20

-                              Store 10(c) 21

-              31:   22(fvec4) Load 30(pos)

-              33:     32(ptr) AccessChain 16(s) 28

-              34:    7(float) Load 33

-              35:   22(fvec4) VectorTimesScalar 31 34

-              37:     36(ptr) AccessChain 27(p) 28

-                              Store 37 35

-                              Branch 6

-               6:             Label

+              12:    7(fvec3) Load 11(color)

+              18:     10(ptr) AccessChain 15(s) 17

+              19:    7(fvec3) Load 18

+              20:    7(fvec3) FAdd 12 19

+                              Store 9(c) 20

+              30:   21(fvec4) Load 29(pos)

+              32:     31(ptr) AccessChain 15(s) 27

+              33:    6(float) Load 32

+              34:   21(fvec4) VectorTimesScalar 30 33

+              36:     35(ptr) AccessChain 26(p) 27

+                              Store 36 34

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.300layoutp.vert.out b/Test/baseResults/spv.300layoutp.vert.out
index 2f4104a..3a8d03f 100755
--- a/Test/baseResults/spv.300layoutp.vert.out
+++ b/Test/baseResults/spv.300layoutp.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 112

+// Id's are bound by 111

 

                               Source ESSL 300

                               Capability Shader

@@ -13,183 +13,181 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "pos"

-                              Name 12  "p"

-                              Name 18  "Transform"

-                              MemberName 18(Transform) 0  "M1"

-                              MemberName 18(Transform) 1  "M2"

-                              MemberName 18(Transform) 2  "N1"

-                              MemberName 18(Transform) 3  "iuin"

-                              Name 20  "tblock"

-                              Name 34  "T3"

-                              MemberName 34(T3) 0  "M3"

-                              MemberName 34(T3) 1  "M4"

-                              MemberName 34(T3) 2  "N2"

-                              MemberName 34(T3) 3  "uv3a"

-                              Name 36  ""

-                              Name 44  "T2"

-                              MemberName 44(T2) 0  "b"

-                              MemberName 44(T2) 1  "t2m"

-                              Name 46  ""

-                              Name 52  "color"

-                              Name 54  "c"

-                              Name 62  "iout"

-                              Name 68  "uiuin"

-                              Name 74  "aiv2"

-                              Name 78  "S"

-                              MemberName 78(S) 0  "c"

-                              MemberName 78(S) 1  "f"

-                              Name 80  "s"

-                              Name 110  "gl_VertexID"

-                              Name 111  "gl_InstanceID"

-                              Decorate 10(pos) Smooth

-                              Decorate 12(p) Location 3

-                              MemberDecorate 18(Transform) 0 RowMajor

-                              MemberDecorate 18(Transform) 0 Offset 0

-                              MemberDecorate 18(Transform) 0 MatrixStride 16

-                              MemberDecorate 18(Transform) 1 ColMajor

-                              MemberDecorate 18(Transform) 1 Offset 64

-                              MemberDecorate 18(Transform) 1 MatrixStride 16

-                              MemberDecorate 18(Transform) 2 RowMajor

-                              MemberDecorate 18(Transform) 2 Offset 128

-                              MemberDecorate 18(Transform) 2 MatrixStride 16

-                              MemberDecorate 18(Transform) 3 Offset 176

-                              Decorate 18(Transform) Block

-                              MemberDecorate 34(T3) 0 ColMajor

-                              MemberDecorate 34(T3) 1 RowMajor

-                              MemberDecorate 34(T3) 2 ColMajor

-                              Decorate 34(T3) GLSLShared

-                              Decorate 34(T3) Block

-                              MemberDecorate 44(T2) 1 RowMajor

-                              Decorate 44(T2) GLSLShared

-                              Decorate 44(T2) Block

-                              Decorate 52(color) Smooth

-                              Decorate 54(c) Location 7

-                              Decorate 62(iout) Flat

-                              Decorate 74(aiv2) Location 9

-                              Decorate 110(gl_VertexID) BuiltIn VertexId

-                              Decorate 110(gl_VertexID) NoStaticUse

-                              Decorate 111(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 111(gl_InstanceID) NoStaticUse

+                              Name 9  "pos"

+                              Name 11  "p"

+                              Name 17  "Transform"

+                              MemberName 17(Transform) 0  "M1"

+                              MemberName 17(Transform) 1  "M2"

+                              MemberName 17(Transform) 2  "N1"

+                              MemberName 17(Transform) 3  "iuin"

+                              Name 19  "tblock"

+                              Name 33  "T3"

+                              MemberName 33(T3) 0  "M3"

+                              MemberName 33(T3) 1  "M4"

+                              MemberName 33(T3) 2  "N2"

+                              MemberName 33(T3) 3  "uv3a"

+                              Name 35  ""

+                              Name 43  "T2"

+                              MemberName 43(T2) 0  "b"

+                              MemberName 43(T2) 1  "t2m"

+                              Name 45  ""

+                              Name 51  "color"

+                              Name 53  "c"

+                              Name 61  "iout"

+                              Name 67  "uiuin"

+                              Name 73  "aiv2"

+                              Name 77  "S"

+                              MemberName 77(S) 0  "c"

+                              MemberName 77(S) 1  "f"

+                              Name 79  "s"

+                              Name 109  "gl_VertexID"

+                              Name 110  "gl_InstanceID"

+                              Decorate 9(pos) Smooth

+                              Decorate 11(p) Location 3

+                              MemberDecorate 17(Transform) 0 RowMajor

+                              MemberDecorate 17(Transform) 0 Offset 0

+                              MemberDecorate 17(Transform) 0 MatrixStride 16

+                              MemberDecorate 17(Transform) 1 ColMajor

+                              MemberDecorate 17(Transform) 1 Offset 64

+                              MemberDecorate 17(Transform) 1 MatrixStride 16

+                              MemberDecorate 17(Transform) 2 RowMajor

+                              MemberDecorate 17(Transform) 2 Offset 128

+                              MemberDecorate 17(Transform) 2 MatrixStride 16

+                              MemberDecorate 17(Transform) 3 Offset 176

+                              Decorate 17(Transform) Block

+                              MemberDecorate 33(T3) 0 ColMajor

+                              MemberDecorate 33(T3) 1 RowMajor

+                              MemberDecorate 33(T3) 2 ColMajor

+                              Decorate 33(T3) GLSLShared

+                              Decorate 33(T3) Block

+                              MemberDecorate 43(T2) 1 RowMajor

+                              Decorate 43(T2) GLSLShared

+                              Decorate 43(T2) Block

+                              Decorate 51(color) Smooth

+                              Decorate 53(c) Location 7

+                              Decorate 61(iout) Flat

+                              Decorate 73(aiv2) Location 9

+                              Decorate 109(gl_VertexID) BuiltIn VertexId

+                              Decorate 109(gl_VertexID) NoStaticUse

+                              Decorate 110(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 110(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Output 8(fvec4)

-         10(pos):      9(ptr) Variable Output

-              11:             TypePointer Input 8(fvec4)

-           12(p):     11(ptr) Variable Input

-              14:             TypeMatrix 8(fvec4) 4

-              15:             TypeVector 7(float) 3

-              16:             TypeMatrix 15(fvec3) 3

-              17:             TypeInt 32 1

-   18(Transform):             TypeStruct 14 14 16 17(int)

-              19:             TypePointer Uniform 18(Transform)

-      20(tblock):     19(ptr) Variable Uniform

-              21:     17(int) Constant 0

-              22:             TypePointer Uniform 14

-              25:     17(int) Constant 1

-              29:             TypeMatrix 15(fvec3) 2

-              30:             TypeInt 32 0

-              31:             TypeVector 30(int) 3

-              32:     30(int) Constant 4

-              33:             TypeArray 31(ivec3) 32

-          34(T3):             TypeStruct 14 14 29 33

-              35:             TypePointer Uniform 34(T3)

-              36:     35(ptr) Variable Uniform

-              43:             TypeBool

-          44(T2):             TypeStruct 43(bool) 14

-              45:             TypePointer Uniform 44(T2)

-              46:     45(ptr) Variable Uniform

-              51:             TypePointer Output 15(fvec3)

-       52(color):     51(ptr) Variable Output

-              53:             TypePointer Input 15(fvec3)

-           54(c):     53(ptr) Variable Input

-              56:     17(int) Constant 2

-              57:             TypePointer Uniform 16

-              61:             TypePointer Output 17(int)

-        62(iout):     61(ptr) Variable Output

-              63:     17(int) Constant 3

-              64:             TypePointer Uniform 17(int)

-              67:             TypePointer UniformConstant 30(int)

-       68(uiuin):     67(ptr) Variable UniformConstant

-              72:             TypeVector 17(int) 2

-              73:             TypePointer Input 72(ivec2)

-        74(aiv2):     73(ptr) Variable Input

-           78(S):             TypeStruct 15(fvec3) 7(float)

-              79:             TypePointer Output 78(S)

-           80(s):     79(ptr) Variable Output

-              85:             TypePointer Output 7(float)

-              87:             TypePointer Uniform 15(fvec3)

-              90:    7(float) Constant 1065353216

-              91:   15(fvec3) ConstantComposite 90 90 90

-              92:             TypeVector 43(bool) 3

-              95:             TypePointer Uniform 31(ivec3)

-              98:     30(int) Constant 5

-              99:   31(ivec3) ConstantComposite 98 98 98

-             109:             TypePointer Input 17(int)

-110(gl_VertexID):    109(ptr) Variable Input

-111(gl_InstanceID):    109(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Output 7(fvec4)

+          9(pos):      8(ptr) Variable Output

+              10:             TypePointer Input 7(fvec4)

+           11(p):     10(ptr) Variable Input

+              13:             TypeMatrix 7(fvec4) 4

+              14:             TypeVector 6(float) 3

+              15:             TypeMatrix 14(fvec3) 3

+              16:             TypeInt 32 1

+   17(Transform):             TypeStruct 13 13 15 16(int)

+              18:             TypePointer Uniform 17(Transform)

+      19(tblock):     18(ptr) Variable Uniform

+              20:     16(int) Constant 0

+              21:             TypePointer Uniform 13

+              24:     16(int) Constant 1

+              28:             TypeMatrix 14(fvec3) 2

+              29:             TypeInt 32 0

+              30:             TypeVector 29(int) 3

+              31:     29(int) Constant 4

+              32:             TypeArray 30(ivec3) 31

+          33(T3):             TypeStruct 13 13 28 32

+              34:             TypePointer Uniform 33(T3)

+              35:     34(ptr) Variable Uniform

+              42:             TypeBool

+          43(T2):             TypeStruct 42(bool) 13

+              44:             TypePointer Uniform 43(T2)

+              45:     44(ptr) Variable Uniform

+              50:             TypePointer Output 14(fvec3)

+       51(color):     50(ptr) Variable Output

+              52:             TypePointer Input 14(fvec3)

+           53(c):     52(ptr) Variable Input

+              55:     16(int) Constant 2

+              56:             TypePointer Uniform 15

+              60:             TypePointer Output 16(int)

+        61(iout):     60(ptr) Variable Output

+              62:     16(int) Constant 3

+              63:             TypePointer Uniform 16(int)

+              66:             TypePointer UniformConstant 29(int)

+       67(uiuin):     66(ptr) Variable UniformConstant

+              71:             TypeVector 16(int) 2

+              72:             TypePointer Input 71(ivec2)

+        73(aiv2):     72(ptr) Variable Input

+           77(S):             TypeStruct 14(fvec3) 6(float)

+              78:             TypePointer Output 77(S)

+           79(s):     78(ptr) Variable Output

+              84:             TypePointer Output 6(float)

+              86:             TypePointer Uniform 14(fvec3)

+              89:    6(float) Constant 1065353216

+              90:   14(fvec3) ConstantComposite 89 89 89

+              91:             TypeVector 42(bool) 3

+              94:             TypePointer Uniform 30(ivec3)

+              97:     29(int) Constant 5

+              98:   30(ivec3) ConstantComposite 97 97 97

+             108:             TypePointer Input 16(int)

+109(gl_VertexID):    108(ptr) Variable Input

+110(gl_InstanceID):    108(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              13:    8(fvec4) Load 12(p)

-              23:     22(ptr) AccessChain 20(tblock) 21

-              24:          14 Load 23

-              26:     22(ptr) AccessChain 20(tblock) 25

-              27:          14 Load 26

-              28:          14 MatrixTimesMatrix 24 27

-              37:     22(ptr) AccessChain 36 25

-              38:          14 Load 37

-              39:          14 MatrixTimesMatrix 28 38

-              40:     22(ptr) AccessChain 36 21

-              41:          14 Load 40

-              42:          14 MatrixTimesMatrix 39 41

-              47:     22(ptr) AccessChain 46 25

-              48:          14 Load 47

-              49:          14 MatrixTimesMatrix 42 48

-              50:    8(fvec4) VectorTimesMatrix 13 49

-                              Store 10(pos) 50

-              55:   15(fvec3) Load 54(c)

-              58:     57(ptr) AccessChain 20(tblock) 56

-              59:          16 Load 58

-              60:   15(fvec3) VectorTimesMatrix 55 59

-                              Store 52(color) 60

-              65:     64(ptr) AccessChain 20(tblock) 63

-              66:     17(int) Load 65

-              69:     30(int) Load 68(uiuin)

-              70:     17(int) Bitcast 69

-              71:     17(int) IAdd 66 70

-              75:   72(ivec2) Load 74(aiv2)

-              76:     17(int) CompositeExtract 75 1

-              77:     17(int) IAdd 71 76

-                              Store 62(iout) 77

-              81:   15(fvec3) Load 54(c)

-              82:     51(ptr) AccessChain 80(s) 21

-                              Store 82 81

-              83:    8(fvec4) Load 12(p)

-              84:    7(float) CompositeExtract 83 0

-              86:     85(ptr) AccessChain 80(s) 25

-                              Store 86 84

-              88:     87(ptr) AccessChain 36 56 25

-              89:   15(fvec3) Load 88

-              93:   92(bvec3) FOrdNotEqual 89 91

-              94:    43(bool) Any 93

-              96:     95(ptr) AccessChain 36 63 56

-              97:   31(ivec3) Load 96

-             100:   92(bvec3) INotEqual 97 99

-             101:    43(bool) Any 100

-             102:    43(bool) LogicalOr 94 101

-                              SelectionMerge 104 None

-                              BranchConditional 102 103 104

-             103:               Label

-             105:     51(ptr)   AccessChain 80(s) 21

-             106:   15(fvec3)   Load 105

-             107:   15(fvec3)   CompositeConstruct 90 90 90

-             108:   15(fvec3)   FAdd 106 107

-                                Store 105 108

-                                Branch 104

-             104:             Label

-                              Branch 6

-               6:             Label

+              12:    7(fvec4) Load 11(p)

+              22:     21(ptr) AccessChain 19(tblock) 20

+              23:          13 Load 22

+              25:     21(ptr) AccessChain 19(tblock) 24

+              26:          13 Load 25

+              27:          13 MatrixTimesMatrix 23 26

+              36:     21(ptr) AccessChain 35 24

+              37:          13 Load 36

+              38:          13 MatrixTimesMatrix 27 37

+              39:     21(ptr) AccessChain 35 20

+              40:          13 Load 39

+              41:          13 MatrixTimesMatrix 38 40

+              46:     21(ptr) AccessChain 45 24

+              47:          13 Load 46

+              48:          13 MatrixTimesMatrix 41 47

+              49:    7(fvec4) VectorTimesMatrix 12 48

+                              Store 9(pos) 49

+              54:   14(fvec3) Load 53(c)

+              57:     56(ptr) AccessChain 19(tblock) 55

+              58:          15 Load 57

+              59:   14(fvec3) VectorTimesMatrix 54 58

+                              Store 51(color) 59

+              64:     63(ptr) AccessChain 19(tblock) 62

+              65:     16(int) Load 64

+              68:     29(int) Load 67(uiuin)

+              69:     16(int) Bitcast 68

+              70:     16(int) IAdd 65 69

+              74:   71(ivec2) Load 73(aiv2)

+              75:     16(int) CompositeExtract 74 1

+              76:     16(int) IAdd 70 75

+                              Store 61(iout) 76

+              80:   14(fvec3) Load 53(c)

+              81:     50(ptr) AccessChain 79(s) 20

+                              Store 81 80

+              82:    7(fvec4) Load 11(p)

+              83:    6(float) CompositeExtract 82 0

+              85:     84(ptr) AccessChain 79(s) 24

+                              Store 85 83

+              87:     86(ptr) AccessChain 35 55 24

+              88:   14(fvec3) Load 87

+              92:   91(bvec3) FOrdNotEqual 88 90

+              93:    42(bool) Any 92

+              95:     94(ptr) AccessChain 35 62 55

+              96:   30(ivec3) Load 95

+              99:   91(bvec3) INotEqual 96 98

+             100:    42(bool) Any 99

+             101:    42(bool) LogicalOr 93 100

+                              SelectionMerge 103 None

+                              BranchConditional 101 102 103

+             102:               Label

+             104:     50(ptr)   AccessChain 79(s) 20

+             105:   14(fvec3)   Load 104

+             106:   14(fvec3)   CompositeConstruct 89 89 89

+             107:   14(fvec3)   FAdd 105 106

+                                Store 104 107

+                                Branch 103

+             103:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.310.comp.out b/Test/baseResults/spv.310.comp.out
index b8c7b88..d6a53ac 100644
--- a/Test/baseResults/spv.310.comp.out
+++ b/Test/baseResults/spv.310.comp.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 68

+// Id's are bound by 67

 

                               Source ESSL 310

                               Capability Shader

@@ -15,107 +15,105 @@
                               MemoryModel Logical GLSL450

                               EntryPoint GLCompute 4  "main"

                               Name 4  "main"

-                              Name 14  "outb"

-                              MemberName 14(outb) 0  "f"

-                              MemberName 14(outb) 1  "g"

-                              MemberName 14(outb) 2  "h"

-                              MemberName 14(outb) 3  "uns"

-                              Name 16  "outbname"

-                              Name 20  "s"

-                              Name 25  "outbna"

-                              MemberName 25(outbna) 0  "k"

-                              MemberName 25(outbna) 1  "na"

-                              Name 27  "outbnamena"

-                              Name 44  "i"

-                              Name 50  "outs"

-                              MemberName 50(outs) 0  "s"

-                              MemberName 50(outs) 1  "va"

-                              Name 52  "outnames"

-                              Name 55  "gl_LocalInvocationID"

-                              Decorate 14(outb) GLSLShared

-                              Decorate 14(outb) BufferBlock

-                              Decorate 25(outbna) GLSLShared

-                              Decorate 25(outbna) BufferBlock

-                              Decorate 50(outs) GLSLShared

-                              Decorate 50(outs) BufferBlock

-                              Decorate 55(gl_LocalInvocationID) BuiltIn LocalInvocationId

-                              Decorate 67 BuiltIn WorkgroupSize

-                              Decorate 67 NoStaticUse

+                              Name 13  "outb"

+                              MemberName 13(outb) 0  "f"

+                              MemberName 13(outb) 1  "g"

+                              MemberName 13(outb) 2  "h"

+                              MemberName 13(outb) 3  "uns"

+                              Name 15  "outbname"

+                              Name 19  "s"

+                              Name 24  "outbna"

+                              MemberName 24(outbna) 0  "k"

+                              MemberName 24(outbna) 1  "na"

+                              Name 26  "outbnamena"

+                              Name 43  "i"

+                              Name 49  "outs"

+                              MemberName 49(outs) 0  "s"

+                              MemberName 49(outs) 1  "va"

+                              Name 51  "outnames"

+                              Name 54  "gl_LocalInvocationID"

+                              Decorate 13(outb) GLSLShared

+                              Decorate 13(outb) BufferBlock

+                              Decorate 24(outbna) GLSLShared

+                              Decorate 24(outbna) BufferBlock

+                              Decorate 49(outs) GLSLShared

+                              Decorate 49(outs) BufferBlock

+                              Decorate 54(gl_LocalInvocationID) BuiltIn LocalInvocationId

+                              Decorate 66 BuiltIn WorkgroupSize

+                              Decorate 66 NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 0

-               8:      7(int) Constant 1

-               9:      7(int) Constant 1023

-              10:      7(int) Constant 0

-              11:             TypeFloat 32

-              12:             TypeVector 11(float) 3

-              13:             TypeRuntimeArray 12(fvec3)

-        14(outb):             TypeStruct 11(float) 11(float) 11(float) 13

-              15:             TypePointer Uniform 14(outb)

-    16(outbname):     15(ptr) Variable Uniform

-              17:             TypeInt 32 1

-              18:     17(int) Constant 0

-              19:             TypePointer WorkgroupLocal 11(float)

-           20(s):     19(ptr) Variable WorkgroupLocal

-              22:             TypePointer Uniform 11(float)

-              24:             TypeVector 11(float) 4

-      25(outbna):             TypeStruct 17(int) 24(fvec4)

-              26:             TypePointer Uniform 25(outbna)

-  27(outbnamena):     26(ptr) Variable Uniform

-              28:     17(int) Constant 1

-              31:             TypePointer Uniform 24(fvec4)

-              33:     17(int) Constant 3

-              34:     17(int) Constant 18

-              35:             TypePointer Uniform 12(fvec3)

-              39:     17(int) Constant 17

-              40:   11(float) Constant 1077936128

-              41:   12(fvec3) ConstantComposite 40 40 40

-              43:             TypePointer WorkgroupLocal 17(int)

-           44(i):     43(ptr) Variable WorkgroupLocal

-              49:             TypeRuntimeArray 24(fvec4)

-        50(outs):             TypeStruct 17(int) 49

-              51:             TypePointer Uniform 50(outs)

-    52(outnames):     51(ptr) Variable Uniform

-              53:             TypeVector 7(int) 3

-              54:             TypePointer Input 53(ivec3)

-55(gl_LocalInvocationID):     54(ptr) Variable Input

-              62:             TypePointer Uniform 17(int)

-              64:      7(int) Constant 16

-              65:      7(int) Constant 32

-              66:      7(int) Constant 4

-              67:   53(ivec3) ConstantComposite 64 65 66

+               6:             TypeInt 32 0

+               7:      6(int) Constant 1

+               8:      6(int) Constant 1023

+               9:      6(int) Constant 0

+              10:             TypeFloat 32

+              11:             TypeVector 10(float) 3

+              12:             TypeRuntimeArray 11(fvec3)

+        13(outb):             TypeStruct 10(float) 10(float) 10(float) 12

+              14:             TypePointer Uniform 13(outb)

+    15(outbname):     14(ptr) Variable Uniform

+              16:             TypeInt 32 1

+              17:     16(int) Constant 0

+              18:             TypePointer WorkgroupLocal 10(float)

+           19(s):     18(ptr) Variable WorkgroupLocal

+              21:             TypePointer Uniform 10(float)

+              23:             TypeVector 10(float) 4

+      24(outbna):             TypeStruct 16(int) 23(fvec4)

+              25:             TypePointer Uniform 24(outbna)

+  26(outbnamena):     25(ptr) Variable Uniform

+              27:     16(int) Constant 1

+              30:             TypePointer Uniform 23(fvec4)

+              32:     16(int) Constant 3

+              33:     16(int) Constant 18

+              34:             TypePointer Uniform 11(fvec3)

+              38:     16(int) Constant 17

+              39:   10(float) Constant 1077936128

+              40:   11(fvec3) ConstantComposite 39 39 39

+              42:             TypePointer WorkgroupLocal 16(int)

+           43(i):     42(ptr) Variable WorkgroupLocal

+              48:             TypeRuntimeArray 23(fvec4)

+        49(outs):             TypeStruct 16(int) 48

+              50:             TypePointer Uniform 49(outs)

+    51(outnames):     50(ptr) Variable Uniform

+              52:             TypeVector 6(int) 3

+              53:             TypePointer Input 52(ivec3)

+54(gl_LocalInvocationID):     53(ptr) Variable Input

+              61:             TypePointer Uniform 16(int)

+              63:      6(int) Constant 16

+              64:      6(int) Constant 32

+              65:      6(int) Constant 4

+              66:   52(ivec3) ConstantComposite 63 64 65

          4(main):           2 Function None 3

                5:             Label

-                              MemoryBarrier 8 9

-                              ControlBarrier 8 8 10

-              21:   11(float) Load 20(s)

-              23:     22(ptr) AccessChain 16(outbname) 18

-                              Store 23 21

-              29:   11(float) Load 20(s)

-              30:   24(fvec4) CompositeConstruct 29 29 29 29

-              32:     31(ptr) AccessChain 27(outbnamena) 28

-                              Store 32 30

-              36:     35(ptr) AccessChain 16(outbname) 33 34

-              37:   12(fvec3) Load 36

-              38:   11(float) CompositeExtract 37 0

-                              Store 20(s) 38

-              42:     35(ptr) AccessChain 16(outbname) 33 39

-                              Store 42 41

-              45:     17(int) Load 44(i)

-              46:   11(float) Load 20(s)

-              47:   12(fvec3) CompositeConstruct 46 46 46

-              48:     35(ptr) AccessChain 16(outbname) 33 45

-                              Store 48 47

-              56:   53(ivec3) Load 55(gl_LocalInvocationID)

-              57:      7(int) CompositeExtract 56 0

-              58:   11(float) Load 20(s)

-              59:   24(fvec4) CompositeConstruct 58 58 58 58

-              60:     31(ptr) AccessChain 52(outnames) 28 57

-                              Store 60 59

-              61:     17(int) ArrayLength 16(outbname)

-              63:     62(ptr) AccessChain 52(outnames) 18

-                              Store 63 61

-                              Branch 6

-               6:             Label

+                              MemoryBarrier 7 8

+                              ControlBarrier 7 7 9

+              20:   10(float) Load 19(s)

+              22:     21(ptr) AccessChain 15(outbname) 17

+                              Store 22 20

+              28:   10(float) Load 19(s)

+              29:   23(fvec4) CompositeConstruct 28 28 28 28

+              31:     30(ptr) AccessChain 26(outbnamena) 27

+                              Store 31 29

+              35:     34(ptr) AccessChain 15(outbname) 32 33

+              36:   11(fvec3) Load 35

+              37:   10(float) CompositeExtract 36 0

+                              Store 19(s) 37

+              41:     34(ptr) AccessChain 15(outbname) 32 38

+                              Store 41 40

+              44:     16(int) Load 43(i)

+              45:   10(float) Load 19(s)

+              46:   11(fvec3) CompositeConstruct 45 45 45

+              47:     34(ptr) AccessChain 15(outbname) 32 44

+                              Store 47 46

+              55:   52(ivec3) Load 54(gl_LocalInvocationID)

+              56:      6(int) CompositeExtract 55 0

+              57:   10(float) Load 19(s)

+              58:   23(fvec4) CompositeConstruct 57 57 57 57

+              59:     30(ptr) AccessChain 51(outnames) 27 56

+                              Store 59 58

+              60:     16(int) ArrayLength 15(outbname)

+              62:     61(ptr) AccessChain 51(outnames) 17

+                              Store 62 60

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.330.geom.out b/Test/baseResults/spv.330.geom.out
index 7ce0eb4..1a77987 100755
--- a/Test/baseResults/spv.330.geom.out
+++ b/Test/baseResults/spv.330.geom.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 33

+// Id's are bound by 32

 

                               Source GLSL 330

                               SourceExtension  "GL_ARB_separate_shader_objects"

@@ -18,57 +18,55 @@
                               ExecutionMode 4 OutputTriangleStrip

                               ExecutionMode 4 OutputVertices 3

                               Name 4  "main"

-                              Name 12  "gl_PerVertex"

-                              MemberName 12(gl_PerVertex) 0  "gl_Position"

-                              MemberName 12(gl_PerVertex) 1  "gl_ClipDistance"

-                              Name 14  ""

-                              Name 17  "gl_PerVertex"

-                              MemberName 17(gl_PerVertex) 0  "gl_Position"

-                              MemberName 17(gl_PerVertex) 1  "gl_ClipDistance"

-                              Name 21  "gl_in"

-                              MemberDecorate 12(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 12(gl_PerVertex) 1 BuiltIn ClipDistance

-                              Decorate 12(gl_PerVertex) Block

-                              Decorate 12(gl_PerVertex) Stream 0

-                              Decorate 14 Stream 0

-                              MemberDecorate 17(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 17(gl_PerVertex) 1 BuiltIn ClipDistance

-                              Decorate 17(gl_PerVertex) Block

+                              Name 11  "gl_PerVertex"

+                              MemberName 11(gl_PerVertex) 0  "gl_Position"

+                              MemberName 11(gl_PerVertex) 1  "gl_ClipDistance"

+                              Name 13  ""

+                              Name 16  "gl_PerVertex"

+                              MemberName 16(gl_PerVertex) 0  "gl_Position"

+                              MemberName 16(gl_PerVertex) 1  "gl_ClipDistance"

+                              Name 20  "gl_in"

+                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 11(gl_PerVertex) 1 BuiltIn ClipDistance

+                              Decorate 11(gl_PerVertex) Block

+                              Decorate 11(gl_PerVertex) Stream 0

+                              Decorate 13 Stream 0

+                              MemberDecorate 16(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 16(gl_PerVertex) 1 BuiltIn ClipDistance

+                              Decorate 16(gl_PerVertex) Block

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypeInt 32 0

-              10:      9(int) Constant 1

-              11:             TypeArray 7(float) 10

-12(gl_PerVertex):             TypeStruct 8(fvec4) 11

-              13:             TypePointer Output 12(gl_PerVertex)

-              14:     13(ptr) Variable Output

-              15:             TypeInt 32 1

-              16:     15(int) Constant 0

-17(gl_PerVertex):             TypeStruct 8(fvec4) 11

-              18:      9(int) Constant 3

-              19:             TypeArray 17(gl_PerVertex) 18

-              20:             TypePointer Input 19

-       21(gl_in):     20(ptr) Variable Input

-              22:     15(int) Constant 1

-              23:             TypePointer Input 8(fvec4)

-              26:             TypePointer Output 8(fvec4)

-              28:             TypePointer Input 7(float)

-              31:             TypePointer Output 7(float)

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypeInt 32 0

+               9:      8(int) Constant 1

+              10:             TypeArray 6(float) 9

+11(gl_PerVertex):             TypeStruct 7(fvec4) 10

+              12:             TypePointer Output 11(gl_PerVertex)

+              13:     12(ptr) Variable Output

+              14:             TypeInt 32 1

+              15:     14(int) Constant 0

+16(gl_PerVertex):             TypeStruct 7(fvec4) 10

+              17:      8(int) Constant 3

+              18:             TypeArray 16(gl_PerVertex) 17

+              19:             TypePointer Input 18

+       20(gl_in):     19(ptr) Variable Input

+              21:     14(int) Constant 1

+              22:             TypePointer Input 7(fvec4)

+              25:             TypePointer Output 7(fvec4)

+              27:             TypePointer Input 6(float)

+              30:             TypePointer Output 6(float)

          4(main):           2 Function None 3

                5:             Label

-              24:     23(ptr) AccessChain 21(gl_in) 22 16

-              25:    8(fvec4) Load 24

-              27:     26(ptr) AccessChain 14 16

-                              Store 27 25

-              29:     28(ptr) AccessChain 21(gl_in) 22 22 16

-              30:    7(float) Load 29

-              32:     31(ptr) AccessChain 14 22 16

-                              Store 32 30

+              23:     22(ptr) AccessChain 20(gl_in) 21 15

+              24:    7(fvec4) Load 23

+              26:     25(ptr) AccessChain 13 15

+                              Store 26 24

+              28:     27(ptr) AccessChain 20(gl_in) 21 21 15

+              29:    6(float) Load 28

+              31:     30(ptr) AccessChain 13 21 15

+                              Store 31 29

                               EmitVertex

                               EndPrimitive

-                              Branch 6

-               6:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.400.tesc.out b/Test/baseResults/spv.400.tesc.out
index 49ff1b8..076bf6f 100755
--- a/Test/baseResults/spv.400.tesc.out
+++ b/Test/baseResults/spv.400.tesc.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 91

+// Id's are bound by 90

 

                               Source GLSL 400

                               SourceExtension  "GL_ARB_separate_shader_objects"

@@ -17,164 +17,162 @@
                               EntryPoint TessellationControl 4  "main"

                               ExecutionMode 4 OutputVertices 4

                               Name 4  "main"

-                              Name 13  "a"

-                              Name 18  "p"

-                              Name 20  "gl_PerVertex"

-                              MemberName 20(gl_PerVertex) 0  "gl_Position"

-                              MemberName 20(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 20(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 24  "gl_in"

-                              Name 31  "ps"

-                              Name 35  "cd"

-                              Name 39  "pvi"

-                              Name 41  "gl_PatchVerticesIn"

-                              Name 43  "pid"

-                              Name 44  "gl_PrimitiveID"

-                              Name 46  "iid"

-                              Name 47  "gl_InvocationID"

-                              Name 49  "gl_PerVertex"

-                              MemberName 49(gl_PerVertex) 0  "gl_Position"

-                              MemberName 49(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 49(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 53  "gl_out"

-                              Name 64  "gl_TessLevelOuter"

-                              Name 71  "gl_TessLevelInner"

-                              Name 76  "outa"

-                              Name 77  "patchOut"

-                              Name 81  "inb"

-                              Name 82  "ind"

-                              Name 85  "ivla"

-                              Name 86  "ivlb"

-                              Name 89  "ovla"

-                              Name 90  "ovlb"

-                              Decorate 20(gl_PerVertex) Block

-                              Decorate 41(gl_PatchVerticesIn) BuiltIn PatchVertices

-                              Decorate 44(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 47(gl_InvocationID) BuiltIn InvocationId

-                              MemberDecorate 49(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 49(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 49(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 49(gl_PerVertex) Block

-                              Decorate 64(gl_TessLevelOuter) Patch

-                              Decorate 64(gl_TessLevelOuter) BuiltIn TessLevelOuter

-                              Decorate 71(gl_TessLevelInner) Patch

-                              Decorate 71(gl_TessLevelInner) BuiltIn TessLevelInner

-                              Decorate 76(outa) NoStaticUse

-                              Decorate 77(patchOut) Patch

-                              Decorate 77(patchOut) NoStaticUse

-                              Decorate 81(inb) NoStaticUse

-                              Decorate 82(ind) NoStaticUse

-                              Decorate 85(ivla) Location 3

-                              Decorate 85(ivla) NoStaticUse

-                              Decorate 86(ivlb) Location 4

-                              Decorate 86(ivlb) NoStaticUse

-                              Decorate 89(ovla) Location 3

-                              Decorate 89(ovla) NoStaticUse

-                              Decorate 90(ovlb) Location 4

-                              Decorate 90(ovlb) NoStaticUse

+                              Name 12  "a"

+                              Name 17  "p"

+                              Name 19  "gl_PerVertex"

+                              MemberName 19(gl_PerVertex) 0  "gl_Position"

+                              MemberName 19(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 19(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 23  "gl_in"

+                              Name 30  "ps"

+                              Name 34  "cd"

+                              Name 38  "pvi"

+                              Name 40  "gl_PatchVerticesIn"

+                              Name 42  "pid"

+                              Name 43  "gl_PrimitiveID"

+                              Name 45  "iid"

+                              Name 46  "gl_InvocationID"

+                              Name 48  "gl_PerVertex"

+                              MemberName 48(gl_PerVertex) 0  "gl_Position"

+                              MemberName 48(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 48(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 52  "gl_out"

+                              Name 63  "gl_TessLevelOuter"

+                              Name 70  "gl_TessLevelInner"

+                              Name 75  "outa"

+                              Name 76  "patchOut"

+                              Name 80  "inb"

+                              Name 81  "ind"

+                              Name 84  "ivla"

+                              Name 85  "ivlb"

+                              Name 88  "ovla"

+                              Name 89  "ovlb"

+                              Decorate 19(gl_PerVertex) Block

+                              Decorate 40(gl_PatchVerticesIn) BuiltIn PatchVertices

+                              Decorate 43(gl_PrimitiveID) BuiltIn PrimitiveId

+                              Decorate 46(gl_InvocationID) BuiltIn InvocationId

+                              MemberDecorate 48(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 48(gl_PerVertex) 1 BuiltIn PointSize

+                              MemberDecorate 48(gl_PerVertex) 2 BuiltIn ClipDistance

+                              Decorate 48(gl_PerVertex) Block

+                              Decorate 63(gl_TessLevelOuter) Patch

+                              Decorate 63(gl_TessLevelOuter) BuiltIn TessLevelOuter

+                              Decorate 70(gl_TessLevelInner) Patch

+                              Decorate 70(gl_TessLevelInner) BuiltIn TessLevelInner

+                              Decorate 75(outa) NoStaticUse

+                              Decorate 76(patchOut) Patch

+                              Decorate 76(patchOut) NoStaticUse

+                              Decorate 80(inb) NoStaticUse

+                              Decorate 81(ind) NoStaticUse

+                              Decorate 84(ivla) Location 3

+                              Decorate 84(ivla) NoStaticUse

+                              Decorate 85(ivlb) Location 4

+                              Decorate 85(ivlb) NoStaticUse

+                              Decorate 88(ovla) Location 3

+                              Decorate 88(ovla) NoStaticUse

+                              Decorate 89(ovlb) Location 4

+                              Decorate 89(ovlb) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 0

-               8:      7(int) Constant 1

-               9:      7(int) Constant 1023

-              10:      7(int) Constant 0

-              11:             TypeInt 32 1

-              12:             TypePointer Function 11(int)

-              14:     11(int) Constant 5392

-              15:             TypeFloat 32

-              16:             TypeVector 15(float) 4

-              17:             TypePointer Function 16(fvec4)

-              19:             TypeArray 15(float) 8

-20(gl_PerVertex):             TypeStruct 16(fvec4) 15(float) 19

-              21:      7(int) Constant 32

-              22:             TypeArray 20(gl_PerVertex) 21

-              23:             TypePointer Input 22

-       24(gl_in):     23(ptr) Variable Input

-              25:     11(int) Constant 1

-              26:     11(int) Constant 0

-              27:             TypePointer Input 16(fvec4)

-              30:             TypePointer Function 15(float)

-              32:             TypePointer Input 15(float)

-              36:     11(int) Constant 2

-              40:             TypePointer Input 11(int)

-41(gl_PatchVerticesIn):     40(ptr) Variable Input

-44(gl_PrimitiveID):     40(ptr) Variable Input

-47(gl_InvocationID):     40(ptr) Variable Input

-49(gl_PerVertex):             TypeStruct 16(fvec4) 15(float) 19

-              50:      7(int) Constant 4

-              51:             TypeArray 49(gl_PerVertex) 50

-              52:             TypePointer Output 51

-      53(gl_out):     52(ptr) Variable Output

-              55:             TypePointer Output 16(fvec4)

-              58:             TypePointer Output 15(float)

-              62:             TypeArray 15(float) 50

-              63:             TypePointer Output 62

-64(gl_TessLevelOuter):     63(ptr) Variable Output

-              65:     11(int) Constant 3

-              66:   15(float) Constant 1078774989

-              68:      7(int) Constant 2

-              69:             TypeArray 15(float) 68

-              70:             TypePointer Output 69

-71(gl_TessLevelInner):     70(ptr) Variable Output

-              72:   15(float) Constant 1067869798

-              74:             TypeArray 11(int) 50

-              75:             TypePointer PrivateGlobal 74

-        76(outa):     75(ptr) Variable PrivateGlobal

-    77(patchOut):     55(ptr) Variable Output

-              78:             TypeVector 15(float) 2

-              79:             TypeArray 78(fvec2) 21

-              80:             TypePointer Input 79

-         81(inb):     80(ptr) Variable Input

-         82(ind):     80(ptr) Variable Input

-              83:             TypeArray 16(fvec4) 21

-              84:             TypePointer Input 83

-        85(ivla):     84(ptr) Variable Input

-        86(ivlb):     84(ptr) Variable Input

-              87:             TypeArray 16(fvec4) 50

-              88:             TypePointer Output 87

-        89(ovla):     88(ptr) Variable Output

-        90(ovlb):     88(ptr) Variable Output

+               6:             TypeInt 32 0

+               7:      6(int) Constant 1

+               8:      6(int) Constant 1023

+               9:      6(int) Constant 0

+              10:             TypeInt 32 1

+              11:             TypePointer Function 10(int)

+              13:     10(int) Constant 5392

+              14:             TypeFloat 32

+              15:             TypeVector 14(float) 4

+              16:             TypePointer Function 15(fvec4)

+              18:             TypeArray 14(float) 7

+19(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18

+              20:      6(int) Constant 32

+              21:             TypeArray 19(gl_PerVertex) 20

+              22:             TypePointer Input 21

+       23(gl_in):     22(ptr) Variable Input

+              24:     10(int) Constant 1

+              25:     10(int) Constant 0

+              26:             TypePointer Input 15(fvec4)

+              29:             TypePointer Function 14(float)

+              31:             TypePointer Input 14(float)

+              35:     10(int) Constant 2

+              39:             TypePointer Input 10(int)

+40(gl_PatchVerticesIn):     39(ptr) Variable Input

+43(gl_PrimitiveID):     39(ptr) Variable Input

+46(gl_InvocationID):     39(ptr) Variable Input

+48(gl_PerVertex):             TypeStruct 15(fvec4) 14(float) 18

+              49:      6(int) Constant 4

+              50:             TypeArray 48(gl_PerVertex) 49

+              51:             TypePointer Output 50

+      52(gl_out):     51(ptr) Variable Output

+              54:             TypePointer Output 15(fvec4)

+              57:             TypePointer Output 14(float)

+              61:             TypeArray 14(float) 49

+              62:             TypePointer Output 61

+63(gl_TessLevelOuter):     62(ptr) Variable Output

+              64:     10(int) Constant 3

+              65:   14(float) Constant 1078774989

+              67:      6(int) Constant 2

+              68:             TypeArray 14(float) 67

+              69:             TypePointer Output 68

+70(gl_TessLevelInner):     69(ptr) Variable Output

+              71:   14(float) Constant 1067869798

+              73:             TypeArray 10(int) 49

+              74:             TypePointer PrivateGlobal 73

+        75(outa):     74(ptr) Variable PrivateGlobal

+    76(patchOut):     54(ptr) Variable Output

+              77:             TypeVector 14(float) 2

+              78:             TypeArray 77(fvec2) 20

+              79:             TypePointer Input 78

+         80(inb):     79(ptr) Variable Input

+         81(ind):     79(ptr) Variable Input

+              82:             TypeArray 15(fvec4) 20

+              83:             TypePointer Input 82

+        84(ivla):     83(ptr) Variable Input

+        85(ivlb):     83(ptr) Variable Input

+              86:             TypeArray 15(fvec4) 49

+              87:             TypePointer Output 86

+        88(ovla):     87(ptr) Variable Output

+        89(ovlb):     87(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-           13(a):     12(ptr) Variable Function

-           18(p):     17(ptr) Variable Function

-          31(ps):     30(ptr) Variable Function

-          35(cd):     30(ptr) Variable Function

-         39(pvi):     12(ptr) Variable Function

-         43(pid):     12(ptr) Variable Function

-         46(iid):     12(ptr) Variable Function

-                              MemoryBarrier 8 9

-                              ControlBarrier 8 8 10

-                              Store 13(a) 14

-              28:     27(ptr) AccessChain 24(gl_in) 25 26

-              29:   16(fvec4) Load 28

-                              Store 18(p) 29

-              33:     32(ptr) AccessChain 24(gl_in) 25 25

-              34:   15(float) Load 33

-                              Store 31(ps) 34

-              37:     32(ptr) AccessChain 24(gl_in) 25 36 36

-              38:   15(float) Load 37

-                              Store 35(cd) 38

-              42:     11(int) Load 41(gl_PatchVerticesIn)

-                              Store 39(pvi) 42

-              45:     11(int) Load 44(gl_PrimitiveID)

-                              Store 43(pid) 45

-              48:     11(int) Load 47(gl_InvocationID)

-                              Store 46(iid) 48

-              54:   16(fvec4) Load 18(p)

-              56:     55(ptr) AccessChain 53(gl_out) 25 26

-                              Store 56 54

-              57:   15(float) Load 31(ps)

-              59:     58(ptr) AccessChain 53(gl_out) 25 25

-                              Store 59 57

-              60:   15(float) Load 35(cd)

-              61:     58(ptr) AccessChain 53(gl_out) 25 36 25

-                              Store 61 60

-              67:     58(ptr) AccessChain 64(gl_TessLevelOuter) 65

-                              Store 67 66

-              73:     58(ptr) AccessChain 71(gl_TessLevelInner) 25

-                              Store 73 72

-                              Branch 6

-               6:             Label

+           12(a):     11(ptr) Variable Function

+           17(p):     16(ptr) Variable Function

+          30(ps):     29(ptr) Variable Function

+          34(cd):     29(ptr) Variable Function

+         38(pvi):     11(ptr) Variable Function

+         42(pid):     11(ptr) Variable Function

+         45(iid):     11(ptr) Variable Function

+                              MemoryBarrier 7 8

+                              ControlBarrier 7 7 9

+                              Store 12(a) 13

+              27:     26(ptr) AccessChain 23(gl_in) 24 25

+              28:   15(fvec4) Load 27

+                              Store 17(p) 28

+              32:     31(ptr) AccessChain 23(gl_in) 24 24

+              33:   14(float) Load 32

+                              Store 30(ps) 33

+              36:     31(ptr) AccessChain 23(gl_in) 24 35 35

+              37:   14(float) Load 36

+                              Store 34(cd) 37

+              41:     10(int) Load 40(gl_PatchVerticesIn)

+                              Store 38(pvi) 41

+              44:     10(int) Load 43(gl_PrimitiveID)

+                              Store 42(pid) 44

+              47:     10(int) Load 46(gl_InvocationID)

+                              Store 45(iid) 47

+              53:   15(fvec4) Load 17(p)

+              55:     54(ptr) AccessChain 52(gl_out) 24 25

+                              Store 55 53

+              56:   14(float) Load 30(ps)

+              58:     57(ptr) AccessChain 52(gl_out) 24 24

+                              Store 58 56

+              59:   14(float) Load 34(cd)

+              60:     57(ptr) AccessChain 52(gl_out) 24 35 24

+                              Store 60 59

+              66:     57(ptr) AccessChain 63(gl_TessLevelOuter) 64

+                              Store 66 65

+              72:     57(ptr) AccessChain 70(gl_TessLevelInner) 24

+                              Store 72 71

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.400.tese.out b/Test/baseResults/spv.400.tese.out
index fab8235..9a63b16 100755
--- a/Test/baseResults/spv.400.tese.out
+++ b/Test/baseResults/spv.400.tese.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 99

+// Id's are bound by 98

 

                               Source GLSL 400

                               SourceExtension  "GL_ARB_separate_shader_objects"

@@ -17,177 +17,175 @@
                               EntryPoint TessellationEvaluation 4  "main"

                               ExecutionMode 4 InputTriangles

                               Name 4  "main"

-                              Name 9  "a"

-                              Name 14  "p"

-                              Name 18  "gl_PerVertex"

-                              MemberName 18(gl_PerVertex) 0  "gl_Position"

-                              MemberName 18(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 18(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 22  "gl_in"

-                              Name 29  "ps"

-                              Name 33  "cd"

-                              Name 37  "pvi"

-                              Name 39  "gl_PatchVerticesIn"

-                              Name 41  "pid"

-                              Name 42  "gl_PrimitiveID"

-                              Name 46  "tc"

-                              Name 48  "gl_TessCoord"

-                              Name 50  "tlo"

-                              Name 54  "gl_TessLevelOuter"

-                              Name 58  "tli"

-                              Name 62  "gl_TessLevelInner"

-                              Name 67  "gl_PerVertex"

-                              MemberName 67(gl_PerVertex) 0  "gl_Position"

-                              MemberName 67(gl_PerVertex) 1  "gl_PointSize"

-                              MemberName 67(gl_PerVertex) 2  "gl_ClipDistance"

-                              Name 69  ""

-                              Name 78  "patchIn"

-                              Name 82  "inb"

-                              Name 83  "ind"

-                              Name 84  "testblb"

-                              MemberName 84(testblb) 0  "f"

-                              Name 87  "blb"

-                              Name 88  "testbld"

-                              MemberName 88(testbld) 0  "f"

-                              Name 91  "bld"

-                              Name 94  "ivla"

-                              Name 95  "ivlb"

-                              Name 98  "ovla"

-                              Decorate 18(gl_PerVertex) Block

-                              Decorate 39(gl_PatchVerticesIn) BuiltIn PatchVertices

-                              Decorate 42(gl_PrimitiveID) BuiltIn PrimitiveId

-                              Decorate 48(gl_TessCoord) BuiltIn TessCoord

-                              Decorate 54(gl_TessLevelOuter) Patch

-                              Decorate 54(gl_TessLevelOuter) BuiltIn TessLevelOuter

-                              Decorate 62(gl_TessLevelInner) Patch

-                              Decorate 62(gl_TessLevelInner) BuiltIn TessLevelInner

-                              MemberDecorate 67(gl_PerVertex) 0 BuiltIn Position

-                              MemberDecorate 67(gl_PerVertex) 1 BuiltIn PointSize

-                              MemberDecorate 67(gl_PerVertex) 2 BuiltIn ClipDistance

-                              Decorate 67(gl_PerVertex) Block

-                              Decorate 78(patchIn) Patch

-                              Decorate 78(patchIn) NoStaticUse

-                              Decorate 82(inb) NoStaticUse

-                              Decorate 83(ind) NoStaticUse

-                              Decorate 84(testblb) Block

-                              Decorate 87(blb) NoStaticUse

-                              Decorate 88(testbld) Block

-                              Decorate 91(bld) NoStaticUse

-                              Decorate 94(ivla) Location 23

-                              Decorate 94(ivla) NoStaticUse

-                              Decorate 95(ivlb) Location 24

-                              Decorate 95(ivlb) NoStaticUse

-                              Decorate 98(ovla) Location 23

-                              Decorate 98(ovla) NoStaticUse

+                              Name 8  "a"

+                              Name 13  "p"

+                              Name 17  "gl_PerVertex"

+                              MemberName 17(gl_PerVertex) 0  "gl_Position"

+                              MemberName 17(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 17(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 21  "gl_in"

+                              Name 28  "ps"

+                              Name 32  "cd"

+                              Name 36  "pvi"

+                              Name 38  "gl_PatchVerticesIn"

+                              Name 40  "pid"

+                              Name 41  "gl_PrimitiveID"

+                              Name 45  "tc"

+                              Name 47  "gl_TessCoord"

+                              Name 49  "tlo"

+                              Name 53  "gl_TessLevelOuter"

+                              Name 57  "tli"

+                              Name 61  "gl_TessLevelInner"

+                              Name 66  "gl_PerVertex"

+                              MemberName 66(gl_PerVertex) 0  "gl_Position"

+                              MemberName 66(gl_PerVertex) 1  "gl_PointSize"

+                              MemberName 66(gl_PerVertex) 2  "gl_ClipDistance"

+                              Name 68  ""

+                              Name 77  "patchIn"

+                              Name 81  "inb"

+                              Name 82  "ind"

+                              Name 83  "testblb"

+                              MemberName 83(testblb) 0  "f"

+                              Name 86  "blb"

+                              Name 87  "testbld"

+                              MemberName 87(testbld) 0  "f"

+                              Name 90  "bld"

+                              Name 93  "ivla"

+                              Name 94  "ivlb"

+                              Name 97  "ovla"

+                              Decorate 17(gl_PerVertex) Block

+                              Decorate 38(gl_PatchVerticesIn) BuiltIn PatchVertices

+                              Decorate 41(gl_PrimitiveID) BuiltIn PrimitiveId

+                              Decorate 47(gl_TessCoord) BuiltIn TessCoord

+                              Decorate 53(gl_TessLevelOuter) Patch

+                              Decorate 53(gl_TessLevelOuter) BuiltIn TessLevelOuter

+                              Decorate 61(gl_TessLevelInner) Patch

+                              Decorate 61(gl_TessLevelInner) BuiltIn TessLevelInner

+                              MemberDecorate 66(gl_PerVertex) 0 BuiltIn Position

+                              MemberDecorate 66(gl_PerVertex) 1 BuiltIn PointSize

+                              MemberDecorate 66(gl_PerVertex) 2 BuiltIn ClipDistance

+                              Decorate 66(gl_PerVertex) Block

+                              Decorate 77(patchIn) Patch

+                              Decorate 77(patchIn) NoStaticUse

+                              Decorate 81(inb) NoStaticUse

+                              Decorate 82(ind) NoStaticUse

+                              Decorate 83(testblb) Block

+                              Decorate 86(blb) NoStaticUse

+                              Decorate 87(testbld) Block

+                              Decorate 90(bld) NoStaticUse

+                              Decorate 93(ivla) Location 23

+                              Decorate 93(ivla) NoStaticUse

+                              Decorate 94(ivlb) Location 24

+                              Decorate 94(ivlb) NoStaticUse

+                              Decorate 97(ovla) Location 23

+                              Decorate 97(ovla) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 1512

-              11:             TypeFloat 32

-              12:             TypeVector 11(float) 4

-              13:             TypePointer Function 12(fvec4)

-              15:             TypeInt 32 0

-              16:     15(int) Constant 1

-              17:             TypeArray 11(float) 16

-18(gl_PerVertex):             TypeStruct 12(fvec4) 11(float) 17

-              19:     15(int) Constant 32

-              20:             TypeArray 18(gl_PerVertex) 19

-              21:             TypePointer Input 20

-       22(gl_in):     21(ptr) Variable Input

-              23:      7(int) Constant 1

-              24:      7(int) Constant 0

-              25:             TypePointer Input 12(fvec4)

-              28:             TypePointer Function 11(float)

-              30:             TypePointer Input 11(float)

-              34:      7(int) Constant 2

-              38:             TypePointer Input 7(int)

-39(gl_PatchVerticesIn):     38(ptr) Variable Input

-42(gl_PrimitiveID):     38(ptr) Variable Input

-              44:             TypeVector 11(float) 3

-              45:             TypePointer Function 44(fvec3)

-              47:             TypePointer Input 44(fvec3)

-48(gl_TessCoord):     47(ptr) Variable Input

-              51:     15(int) Constant 4

-              52:             TypeArray 11(float) 51

-              53:             TypePointer Input 52

-54(gl_TessLevelOuter):     53(ptr) Variable Input

-              55:      7(int) Constant 3

-              59:     15(int) Constant 2

-              60:             TypeArray 11(float) 59

-              61:             TypePointer Input 60

-62(gl_TessLevelInner):     61(ptr) Variable Input

-              65:     15(int) Constant 3

-              66:             TypeArray 11(float) 65

-67(gl_PerVertex):             TypeStruct 12(fvec4) 11(float) 66

-              68:             TypePointer Output 67(gl_PerVertex)

-              69:     68(ptr) Variable Output

-              71:             TypePointer Output 12(fvec4)

-              74:             TypePointer Output 11(float)

-     78(patchIn):     25(ptr) Variable Input

-              79:             TypeVector 11(float) 2

-              80:             TypeArray 79(fvec2) 19

-              81:             TypePointer Input 80

-         82(inb):     81(ptr) Variable Input

-         83(ind):     81(ptr) Variable Input

-     84(testblb):             TypeStruct 7(int)

-              85:             TypeArray 84(testblb) 19

-              86:             TypePointer Input 85

-         87(blb):     86(ptr) Variable Input

-     88(testbld):             TypeStruct 7(int)

-              89:             TypeArray 88(testbld) 19

-              90:             TypePointer Input 89

-         91(bld):     90(ptr) Variable Input

-              92:             TypeArray 12(fvec4) 19

-              93:             TypePointer Input 92

-        94(ivla):     93(ptr) Variable Input

-        95(ivlb):     93(ptr) Variable Input

-              96:             TypeArray 12(fvec4) 59

-              97:             TypePointer Output 96

-        98(ovla):     97(ptr) Variable Output

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 1512

+              10:             TypeFloat 32

+              11:             TypeVector 10(float) 4

+              12:             TypePointer Function 11(fvec4)

+              14:             TypeInt 32 0

+              15:     14(int) Constant 1

+              16:             TypeArray 10(float) 15

+17(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 16

+              18:     14(int) Constant 32

+              19:             TypeArray 17(gl_PerVertex) 18

+              20:             TypePointer Input 19

+       21(gl_in):     20(ptr) Variable Input

+              22:      6(int) Constant 1

+              23:      6(int) Constant 0

+              24:             TypePointer Input 11(fvec4)

+              27:             TypePointer Function 10(float)

+              29:             TypePointer Input 10(float)

+              33:      6(int) Constant 2

+              37:             TypePointer Input 6(int)

+38(gl_PatchVerticesIn):     37(ptr) Variable Input

+41(gl_PrimitiveID):     37(ptr) Variable Input

+              43:             TypeVector 10(float) 3

+              44:             TypePointer Function 43(fvec3)

+              46:             TypePointer Input 43(fvec3)

+47(gl_TessCoord):     46(ptr) Variable Input

+              50:     14(int) Constant 4

+              51:             TypeArray 10(float) 50

+              52:             TypePointer Input 51

+53(gl_TessLevelOuter):     52(ptr) Variable Input

+              54:      6(int) Constant 3

+              58:     14(int) Constant 2

+              59:             TypeArray 10(float) 58

+              60:             TypePointer Input 59

+61(gl_TessLevelInner):     60(ptr) Variable Input

+              64:     14(int) Constant 3

+              65:             TypeArray 10(float) 64

+66(gl_PerVertex):             TypeStruct 11(fvec4) 10(float) 65

+              67:             TypePointer Output 66(gl_PerVertex)

+              68:     67(ptr) Variable Output

+              70:             TypePointer Output 11(fvec4)

+              73:             TypePointer Output 10(float)

+     77(patchIn):     24(ptr) Variable Input

+              78:             TypeVector 10(float) 2

+              79:             TypeArray 78(fvec2) 18

+              80:             TypePointer Input 79

+         81(inb):     80(ptr) Variable Input

+         82(ind):     80(ptr) Variable Input

+     83(testblb):             TypeStruct 6(int)

+              84:             TypeArray 83(testblb) 18

+              85:             TypePointer Input 84

+         86(blb):     85(ptr) Variable Input

+     87(testbld):             TypeStruct 6(int)

+              88:             TypeArray 87(testbld) 18

+              89:             TypePointer Input 88

+         90(bld):     89(ptr) Variable Input

+              91:             TypeArray 11(fvec4) 18

+              92:             TypePointer Input 91

+        93(ivla):     92(ptr) Variable Input

+        94(ivlb):     92(ptr) Variable Input

+              95:             TypeArray 11(fvec4) 58

+              96:             TypePointer Output 95

+        97(ovla):     96(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-            9(a):      8(ptr) Variable Function

-           14(p):     13(ptr) Variable Function

-          29(ps):     28(ptr) Variable Function

-          33(cd):     28(ptr) Variable Function

-         37(pvi):      8(ptr) Variable Function

-         41(pid):      8(ptr) Variable Function

-          46(tc):     45(ptr) Variable Function

-         50(tlo):     28(ptr) Variable Function

-         58(tli):     28(ptr) Variable Function

-                              Store 9(a) 10

-              26:     25(ptr) AccessChain 22(gl_in) 23 24

-              27:   12(fvec4) Load 26

-                              Store 14(p) 27

-              31:     30(ptr) AccessChain 22(gl_in) 23 23

-              32:   11(float) Load 31

-                              Store 29(ps) 32

-              35:     30(ptr) AccessChain 22(gl_in) 23 34 34

-              36:   11(float) Load 35

-                              Store 33(cd) 36

-              40:      7(int) Load 39(gl_PatchVerticesIn)

-                              Store 37(pvi) 40

-              43:      7(int) Load 42(gl_PrimitiveID)

-                              Store 41(pid) 43

-              49:   44(fvec3) Load 48(gl_TessCoord)

-                              Store 46(tc) 49

-              56:     30(ptr) AccessChain 54(gl_TessLevelOuter) 55

-              57:   11(float) Load 56

-                              Store 50(tlo) 57

-              63:     30(ptr) AccessChain 62(gl_TessLevelInner) 23

-              64:   11(float) Load 63

-                              Store 58(tli) 64

-              70:   12(fvec4) Load 14(p)

-              72:     71(ptr) AccessChain 69 24

-                              Store 72 70

-              73:   11(float) Load 29(ps)

-              75:     74(ptr) AccessChain 69 23

-                              Store 75 73

-              76:   11(float) Load 33(cd)

-              77:     74(ptr) AccessChain 69 34 34

-                              Store 77 76

-                              Branch 6

-               6:             Label

+            8(a):      7(ptr) Variable Function

+           13(p):     12(ptr) Variable Function

+          28(ps):     27(ptr) Variable Function

+          32(cd):     27(ptr) Variable Function

+         36(pvi):      7(ptr) Variable Function

+         40(pid):      7(ptr) Variable Function

+          45(tc):     44(ptr) Variable Function

+         49(tlo):     27(ptr) Variable Function

+         57(tli):     27(ptr) Variable Function

+                              Store 8(a) 9

+              25:     24(ptr) AccessChain 21(gl_in) 22 23

+              26:   11(fvec4) Load 25

+                              Store 13(p) 26

+              30:     29(ptr) AccessChain 21(gl_in) 22 22

+              31:   10(float) Load 30

+                              Store 28(ps) 31

+              34:     29(ptr) AccessChain 21(gl_in) 22 33 33

+              35:   10(float) Load 34

+                              Store 32(cd) 35

+              39:      6(int) Load 38(gl_PatchVerticesIn)

+                              Store 36(pvi) 39

+              42:      6(int) Load 41(gl_PrimitiveID)

+                              Store 40(pid) 42

+              48:   43(fvec3) Load 47(gl_TessCoord)

+                              Store 45(tc) 48

+              55:     29(ptr) AccessChain 53(gl_TessLevelOuter) 54

+              56:   10(float) Load 55

+                              Store 49(tlo) 56

+              62:     29(ptr) AccessChain 61(gl_TessLevelInner) 22

+              63:   10(float) Load 62

+                              Store 57(tli) 63

+              69:   11(fvec4) Load 13(p)

+              71:     70(ptr) AccessChain 68 23

+                              Store 71 69

+              72:   10(float) Load 28(ps)

+              74:     73(ptr) AccessChain 68 22

+                              Store 74 72

+              75:   10(float) Load 32(cd)

+              76:     73(ptr) AccessChain 68 33 33

+                              Store 76 75

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.430.vert.out b/Test/baseResults/spv.430.vert.out
index 082ae0a..15485c2 100755
--- a/Test/baseResults/spv.430.vert.out
+++ b/Test/baseResults/spv.430.vert.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 63

+// Id's are bound by 62

 

                               Source GLSL 430

                               Capability Shader

@@ -15,122 +15,120 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 11  "gl_PerVertex"

-                              MemberName 11(gl_PerVertex) 0  "gl_ClipDistance"

-                              Name 13  ""

-                              Name 24  "bad"

-                              Name 35  "badorder3"

-                              Name 39  "f"

-                              Name 43  "uv4"

-                              Name 44  "badorder"

-                              Name 45  "badorder2"

-                              Name 46  "boundblock"

-                              MemberName 46(boundblock) 0  "aoeu"

-                              Name 48  "boundInst"

-                              Name 49  "anonblock"

-                              MemberName 49(anonblock) 0  "aoeu"

-                              Name 51  ""

-                              Name 55  "sampb1"

-                              Name 58  "sampb2"

-                              Name 59  "sampb4"

-                              Name 61  "gl_VertexID"

-                              Name 62  "gl_InstanceID"

-                              MemberDecorate 11(gl_PerVertex) 0 BuiltIn ClipDistance

-                              Decorate 11(gl_PerVertex) Block

-                              Decorate 35(badorder3) Flat

-                              Decorate 43(uv4) Location 4

-                              Decorate 43(uv4) NoStaticUse

-                              Decorate 29 NoStaticUse

-                              Decorate 29 NoStaticUse

-                              Decorate 44(badorder) NoStaticUse

-                              Decorate 45(badorder2) Smooth

-                              Decorate 45(badorder2) Invariant

-                              Decorate 45(badorder2) NoStaticUse

-                              Decorate 46(boundblock) GLSLShared

-                              Decorate 46(boundblock) Block

-                              Decorate 48(boundInst) Binding 3

-                              Decorate 48(boundInst) NoStaticUse

-                              Decorate 49(anonblock) GLSLShared

-                              Decorate 49(anonblock) Block

-                              Decorate 51 Binding 7

-                              Decorate 51 NoStaticUse

-                              Decorate 55(sampb1) Binding 4

-                              Decorate 55(sampb1) NoStaticUse

-                              Decorate 58(sampb2) Binding 5

-                              Decorate 58(sampb2) NoStaticUse

-                              Decorate 59(sampb4) Binding 31

-                              Decorate 59(sampb4) NoStaticUse

-                              Decorate 61(gl_VertexID) BuiltIn VertexId

-                              Decorate 61(gl_VertexID) NoStaticUse

-                              Decorate 62(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 62(gl_InstanceID) NoStaticUse

+                              Name 10  "gl_PerVertex"

+                              MemberName 10(gl_PerVertex) 0  "gl_ClipDistance"

+                              Name 12  ""

+                              Name 23  "bad"

+                              Name 34  "badorder3"

+                              Name 38  "f"

+                              Name 42  "uv4"

+                              Name 43  "badorder"

+                              Name 44  "badorder2"

+                              Name 45  "boundblock"

+                              MemberName 45(boundblock) 0  "aoeu"

+                              Name 47  "boundInst"

+                              Name 48  "anonblock"

+                              MemberName 48(anonblock) 0  "aoeu"

+                              Name 50  ""

+                              Name 54  "sampb1"

+                              Name 57  "sampb2"

+                              Name 58  "sampb4"

+                              Name 60  "gl_VertexID"

+                              Name 61  "gl_InstanceID"

+                              MemberDecorate 10(gl_PerVertex) 0 BuiltIn ClipDistance

+                              Decorate 10(gl_PerVertex) Block

+                              Decorate 34(badorder3) Flat

+                              Decorate 42(uv4) Location 4

+                              Decorate 42(uv4) NoStaticUse

+                              Decorate 28 NoStaticUse

+                              Decorate 28 NoStaticUse

+                              Decorate 43(badorder) NoStaticUse

+                              Decorate 44(badorder2) Smooth

+                              Decorate 44(badorder2) Invariant

+                              Decorate 44(badorder2) NoStaticUse

+                              Decorate 45(boundblock) GLSLShared

+                              Decorate 45(boundblock) Block

+                              Decorate 47(boundInst) Binding 3

+                              Decorate 47(boundInst) NoStaticUse

+                              Decorate 48(anonblock) GLSLShared

+                              Decorate 48(anonblock) Block

+                              Decorate 50 Binding 7

+                              Decorate 50 NoStaticUse

+                              Decorate 54(sampb1) Binding 4

+                              Decorate 54(sampb1) NoStaticUse

+                              Decorate 57(sampb2) Binding 5

+                              Decorate 57(sampb2) NoStaticUse

+                              Decorate 58(sampb4) Binding 31

+                              Decorate 58(sampb4) NoStaticUse

+                              Decorate 60(gl_VertexID) BuiltIn VertexId

+                              Decorate 60(gl_VertexID) NoStaticUse

+                              Decorate 61(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 61(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeInt 32 0

-               9:      8(int) Constant 3

-              10:             TypeArray 7(float) 9

-11(gl_PerVertex):             TypeStruct 10

-              12:             TypePointer Output 11(gl_PerVertex)

-              13:     12(ptr) Variable Output

-              14:             TypeInt 32 1

-              15:     14(int) Constant 0

-              16:     14(int) Constant 2

-              17:    7(float) Constant 1080872141

-              18:             TypePointer Output 7(float)

-              20:             TypeVector 7(float) 4

-              21:      8(int) Constant 10

-              22:             TypeArray 20(fvec4) 21

-              23:             TypePointer Input 22

-         24(bad):     23(ptr) Variable Input

-              25:             TypePointer Input 20(fvec4)

-              29:    7(float) Constant 1082549862

-              30:             TypeBool

-              34:             TypePointer Output 20(fvec4)

-   35(badorder3):     34(ptr) Variable Output

-              38:             TypePointer UniformConstant 7(float)

-           39(f):     38(ptr) Variable UniformConstant

-              42:             TypePointer UniformConstant 20(fvec4)

-         43(uv4):     42(ptr) Variable UniformConstant

-    44(badorder):     25(ptr) Variable Input

-   45(badorder2):     34(ptr) Variable Output

-  46(boundblock):             TypeStruct 14(int)

-              47:             TypePointer Uniform 46(boundblock)

-   48(boundInst):     47(ptr) Variable Uniform

-   49(anonblock):             TypeStruct 14(int)

-              50:             TypePointer Uniform 49(anonblock)

-              51:     50(ptr) Variable Uniform

-              52:             TypeImage 7(float) 2D sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-      55(sampb1):     54(ptr) Variable UniformConstant

-              56:             TypeArray 53 21

-              57:             TypePointer UniformConstant 56

-      58(sampb2):     57(ptr) Variable UniformConstant

-      59(sampb4):     54(ptr) Variable UniformConstant

-              60:             TypePointer Input 14(int)

- 61(gl_VertexID):     60(ptr) Variable Input

-62(gl_InstanceID):     60(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeInt 32 0

+               8:      7(int) Constant 3

+               9:             TypeArray 6(float) 8

+10(gl_PerVertex):             TypeStruct 9

+              11:             TypePointer Output 10(gl_PerVertex)

+              12:     11(ptr) Variable Output

+              13:             TypeInt 32 1

+              14:     13(int) Constant 0

+              15:     13(int) Constant 2

+              16:    6(float) Constant 1080872141

+              17:             TypePointer Output 6(float)

+              19:             TypeVector 6(float) 4

+              20:      7(int) Constant 10

+              21:             TypeArray 19(fvec4) 20

+              22:             TypePointer Input 21

+         23(bad):     22(ptr) Variable Input

+              24:             TypePointer Input 19(fvec4)

+              28:    6(float) Constant 1082549862

+              29:             TypeBool

+              33:             TypePointer Output 19(fvec4)

+   34(badorder3):     33(ptr) Variable Output

+              37:             TypePointer UniformConstant 6(float)

+           38(f):     37(ptr) Variable UniformConstant

+              41:             TypePointer UniformConstant 19(fvec4)

+         42(uv4):     41(ptr) Variable UniformConstant

+    43(badorder):     24(ptr) Variable Input

+   44(badorder2):     33(ptr) Variable Output

+  45(boundblock):             TypeStruct 13(int)

+              46:             TypePointer Uniform 45(boundblock)

+   47(boundInst):     46(ptr) Variable Uniform

+   48(anonblock):             TypeStruct 13(int)

+              49:             TypePointer Uniform 48(anonblock)

+              50:     49(ptr) Variable Uniform

+              51:             TypeImage 6(float) 2D sampled format:Unknown

+              52:             TypeSampledImage 51

+              53:             TypePointer UniformConstant 52

+      54(sampb1):     53(ptr) Variable UniformConstant

+              55:             TypeArray 52 20

+              56:             TypePointer UniformConstant 55

+      57(sampb2):     56(ptr) Variable UniformConstant

+      58(sampb4):     53(ptr) Variable UniformConstant

+              59:             TypePointer Input 13(int)

+ 60(gl_VertexID):     59(ptr) Variable Input

+61(gl_InstanceID):     59(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              19:     18(ptr) AccessChain 13 15 16

-                              Store 19 17

-              26:     25(ptr) AccessChain 24(bad) 15

-              27:   20(fvec4) Load 26

-              28:    7(float) CompositeExtract 27 0

-              31:    30(bool) FOrdEqual 28 29

-                              SelectionMerge 33 None

-                              BranchConditional 31 32 33

-              32:               Label

-              36:     25(ptr)   AccessChain 24(bad) 15

-              37:   20(fvec4)   Load 36

-                                Store 35(badorder3) 37

-                                Branch 33

-              33:             Label

-              40:    7(float) Load 39(f)

-              41:     18(ptr) AccessChain 13 15 15

-                              Store 41 40

-                              Branch 6

-               6:             Label

+              18:     17(ptr) AccessChain 12 14 15

+                              Store 18 16

+              25:     24(ptr) AccessChain 23(bad) 14

+              26:   19(fvec4) Load 25

+              27:    6(float) CompositeExtract 26 0

+              30:    29(bool) FOrdEqual 27 28

+                              SelectionMerge 32 None

+                              BranchConditional 30 31 32

+              31:               Label

+              35:     24(ptr)   AccessChain 23(bad) 14

+              36:   19(fvec4)   Load 35

+                                Store 34(badorder3) 36

+                                Branch 32

+              32:             Label

+              39:    6(float) Load 38(f)

+              40:     17(ptr) AccessChain 12 14 14

+                              Store 40 39

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.AofA.frag.out b/Test/baseResults/spv.AofA.frag.out
index bda0df3..d24355f 100644
--- a/Test/baseResults/spv.AofA.frag.out
+++ b/Test/baseResults/spv.AofA.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 104

+// Id's are bound by 103

 

                               Source GLSL 430

                               Capability Shader

@@ -16,139 +16,137 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 18  "foo(f1[5][7];"

-                              Name 17  "a"

-                              Name 21  "r"

-                              Name 39  "outfloat"

-                              Name 42  "g4"

-                              Name 44  "g5"

-                              Name 45  "param"

-                              Name 48  "u"

-                              Name 52  "param"

-                              Name 66  "many"

-                              Name 68  "i"

-                              Name 70  "j"

-                              Name 72  "k"

-                              Name 78  "infloat"

-                              Name 94  "uAofA"

-                              MemberName 94(uAofA) 0  "f"

-                              Name 98  "nameAofA"

-                              Decorate 44(g5) Smooth

-                              Decorate 78(infloat) Smooth

-                              Decorate 94(uAofA) GLSLShared

-                              Decorate 94(uAofA) Block

+                              Name 17  "foo(f1[5][7];"

+                              Name 16  "a"

+                              Name 20  "r"

+                              Name 38  "outfloat"

+                              Name 41  "g4"

+                              Name 43  "g5"

+                              Name 44  "param"

+                              Name 47  "u"

+                              Name 51  "param"

+                              Name 65  "many"

+                              Name 67  "i"

+                              Name 69  "j"

+                              Name 71  "k"

+                              Name 77  "infloat"

+                              Name 93  "uAofA"

+                              MemberName 93(uAofA) 0  "f"

+                              Name 97  "nameAofA"

+                              Decorate 43(g5) Smooth

+                              Decorate 77(infloat) Smooth

+                              Decorate 93(uAofA) GLSLShared

+                              Decorate 93(uAofA) Block

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeInt 32 0

-               9:      8(int) Constant 7

-              10:             TypeArray 7(float) 9

-              11:      8(int) Constant 5

-              12:             TypeArray 10 11

-              13:             TypePointer Function 12

-              14:      8(int) Constant 4

-              15:             TypeArray 10 14

-              16:             TypeFunction 15 13(ptr)

-              20:             TypePointer Function 10

-              22:             TypeInt 32 1

-              23:     22(int) Constant 2

-              26:     22(int) Constant 0

-              29:     22(int) Constant 1

-              33:     22(int) Constant 3

-              38:             TypePointer Output 7(float)

-    39(outfloat):     38(ptr) Variable Output

-              40:    7(float) Constant 0

-              41:             TypePointer PrivateGlobal 15

-          42(g4):     41(ptr) Variable PrivateGlobal

-              43:             TypePointer Input 12

-          44(g5):     43(ptr) Variable Input

-              49:    7(float) Constant 1077936128

-              50:             TypePointer Function 7(float)

-              55:      8(int) Constant 6

-              56:             TypeArray 7(float) 55

-              57:             TypeArray 56 11

-              58:             TypeArray 57 14

-              59:      8(int) Constant 3

-              60:             TypeArray 58 59

-              61:      8(int) Constant 2

-              62:             TypeArray 60 61

-              63:      8(int) Constant 1

-              64:             TypeArray 62 63

-              65:             TypePointer PrivateGlobal 64

-        66(many):     65(ptr) Variable PrivateGlobal

-              67:             TypePointer UniformConstant 22(int)

-           68(i):     67(ptr) Variable UniformConstant

-           70(j):     67(ptr) Variable UniformConstant

-           72(k):     67(ptr) Variable UniformConstant

-              77:             TypePointer Input 7(float)

-     78(infloat):     77(ptr) Variable Input

-              80:             TypePointer PrivateGlobal 7(float)

-              92:             TypeArray 7(float) 14

-              93:             TypeArray 92 61

-       94(uAofA):             TypeStruct 93

-              95:             TypeArray 94(uAofA) 11

-              96:             TypeArray 95 59

-              97:             TypePointer Uniform 96

-    98(nameAofA):     97(ptr) Variable Uniform

-              99:             TypePointer Uniform 7(float)

+               6:             TypeFloat 32

+               7:             TypeInt 32 0

+               8:      7(int) Constant 7

+               9:             TypeArray 6(float) 8

+              10:      7(int) Constant 5

+              11:             TypeArray 9 10

+              12:             TypePointer Function 11

+              13:      7(int) Constant 4

+              14:             TypeArray 9 13

+              15:             TypeFunction 14 12(ptr)

+              19:             TypePointer Function 9

+              21:             TypeInt 32 1

+              22:     21(int) Constant 2

+              25:     21(int) Constant 0

+              28:     21(int) Constant 1

+              32:     21(int) Constant 3

+              37:             TypePointer Output 6(float)

+    38(outfloat):     37(ptr) Variable Output

+              39:    6(float) Constant 0

+              40:             TypePointer PrivateGlobal 14

+          41(g4):     40(ptr) Variable PrivateGlobal

+              42:             TypePointer Input 11

+          43(g5):     42(ptr) Variable Input

+              48:    6(float) Constant 1077936128

+              49:             TypePointer Function 6(float)

+              54:      7(int) Constant 6

+              55:             TypeArray 6(float) 54

+              56:             TypeArray 55 10

+              57:             TypeArray 56 13

+              58:      7(int) Constant 3

+              59:             TypeArray 57 58

+              60:      7(int) Constant 2

+              61:             TypeArray 59 60

+              62:      7(int) Constant 1

+              63:             TypeArray 61 62

+              64:             TypePointer PrivateGlobal 63

+        65(many):     64(ptr) Variable PrivateGlobal

+              66:             TypePointer UniformConstant 21(int)

+           67(i):     66(ptr) Variable UniformConstant

+           69(j):     66(ptr) Variable UniformConstant

+           71(k):     66(ptr) Variable UniformConstant

+              76:             TypePointer Input 6(float)

+     77(infloat):     76(ptr) Variable Input

+              79:             TypePointer PrivateGlobal 6(float)

+              91:             TypeArray 6(float) 13

+              92:             TypeArray 91 60

+       93(uAofA):             TypeStruct 92

+              94:             TypeArray 93(uAofA) 10

+              95:             TypeArray 94 58

+              96:             TypePointer Uniform 95

+    97(nameAofA):     96(ptr) Variable Uniform

+              98:             TypePointer Uniform 6(float)

          4(main):           2 Function None 3

                5:             Label

-       45(param):     13(ptr) Variable Function

-           48(u):     13(ptr) Variable Function

-       52(param):     13(ptr) Variable Function

-                              Store 39(outfloat) 40

-              46:          12 Load 44(g5)

-                              Store 45(param) 46

-              47:          15 FunctionCall 18(foo(f1[5][7];) 45(param)

-                              Store 42(g4) 47

-              51:     50(ptr) AccessChain 48(u) 23 23

-                              Store 51 49

-              53:          12 Load 48(u)

-                              Store 52(param) 53

-              54:          15 FunctionCall 18(foo(f1[5][7];) 52(param)

-              69:     22(int) Load 68(i)

-              71:     22(int) Load 70(j)

-              73:     22(int) Load 72(k)

-              74:     22(int) Load 68(i)

-              75:     22(int) Load 70(j)

-              76:     22(int) Load 72(k)

-              79:    7(float) Load 78(infloat)

-              81:     80(ptr) AccessChain 66(many) 69 71 73 74 75 76

-                              Store 81 79

-              82:     22(int) Load 70(j)

-              83:     22(int) Load 70(j)

-              84:     22(int) Load 70(j)

-              85:     22(int) Load 70(j)

-              86:     22(int) Load 70(j)

-              87:     22(int) Load 70(j)

-              88:     80(ptr) AccessChain 66(many) 82 83 84 85 86 87

-              89:    7(float) Load 88

-              90:    7(float) Load 39(outfloat)

-              91:    7(float) FAdd 90 89

-                              Store 39(outfloat) 91

-             100:     99(ptr) AccessChain 98(nameAofA) 29 23 26 26 33

-             101:    7(float) Load 100

-             102:    7(float) Load 39(outfloat)

-             103:    7(float) FAdd 102 101

-                              Store 39(outfloat) 103

-                              Branch 6

-               6:             Label

+       44(param):     12(ptr) Variable Function

+           47(u):     12(ptr) Variable Function

+       51(param):     12(ptr) Variable Function

+                              Store 38(outfloat) 39

+              45:          11 Load 43(g5)

+                              Store 44(param) 45

+              46:          14 FunctionCall 17(foo(f1[5][7];) 44(param)

+                              Store 41(g4) 46

+              50:     49(ptr) AccessChain 47(u) 22 22

+                              Store 50 48

+              52:          11 Load 47(u)

+                              Store 51(param) 52

+              53:          14 FunctionCall 17(foo(f1[5][7];) 51(param)

+              68:     21(int) Load 67(i)

+              70:     21(int) Load 69(j)

+              72:     21(int) Load 71(k)

+              73:     21(int) Load 67(i)

+              74:     21(int) Load 69(j)

+              75:     21(int) Load 71(k)

+              78:    6(float) Load 77(infloat)

+              80:     79(ptr) AccessChain 65(many) 68 70 72 73 74 75

+                              Store 80 78

+              81:     21(int) Load 69(j)

+              82:     21(int) Load 69(j)

+              83:     21(int) Load 69(j)

+              84:     21(int) Load 69(j)

+              85:     21(int) Load 69(j)

+              86:     21(int) Load 69(j)

+              87:     79(ptr) AccessChain 65(many) 81 82 83 84 85 86

+              88:    6(float) Load 87

+              89:    6(float) Load 38(outfloat)

+              90:    6(float) FAdd 89 88

+                              Store 38(outfloat) 90

+              99:     98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32

+             100:    6(float) Load 99

+             101:    6(float) Load 38(outfloat)

+             102:    6(float) FAdd 101 100

+                              Store 38(outfloat) 102

                               Return

                               FunctionEnd

-18(foo(f1[5][7];):          15 Function None 16

-           17(a):     13(ptr) FunctionParameter

-              19:             Label

-           21(r):     20(ptr) Variable Function

-              24:     20(ptr) AccessChain 17(a) 23

-              25:          10 Load 24

-                              Store 21(r) 25

-              27:     20(ptr) AccessChain 17(a) 26

-              28:          10 Load 27

-              30:     20(ptr) AccessChain 17(a) 29

-              31:          10 Load 30

-              32:          10 Load 21(r)

-              34:     20(ptr) AccessChain 17(a) 33

-              35:          10 Load 34

-              36:          15 CompositeConstruct 28 31 32 35

-                              ReturnValue 36

+17(foo(f1[5][7];):          14 Function None 15

+           16(a):     12(ptr) FunctionParameter

+              18:             Label

+           20(r):     19(ptr) Variable Function

+              23:     19(ptr) AccessChain 16(a) 22

+              24:           9 Load 23

+                              Store 20(r) 24

+              26:     19(ptr) AccessChain 16(a) 25

+              27:           9 Load 26

+              29:     19(ptr) AccessChain 16(a) 28

+              30:           9 Load 29

+              31:           9 Load 20(r)

+              33:     19(ptr) AccessChain 16(a) 32

+              34:           9 Load 33

+              35:          14 CompositeConstruct 27 30 31 34

+                              ReturnValue 35

                               FunctionEnd

diff --git a/Test/baseResults/spv.Operations.frag.out b/Test/baseResults/spv.Operations.frag.out
index 909bb23..26960ce 100755
--- a/Test/baseResults/spv.Operations.frag.out
+++ b/Test/baseResults/spv.Operations.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 399

+// Id's are bound by 398

 

                               Source GLSL 130

                               Capability Shader

@@ -14,502 +14,500 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "v"

-                              Name 12  "uv4"

-                              Name 21  "i"

-                              Name 23  "ui"

-                              Name 170  "uf"

-                              Name 217  "b"

-                              Name 243  "ub41"

-                              Name 245  "ub42"

-                              Name 302  "f"

-                              Name 378  "gl_FragColor"

-                              Name 396  "uiv4"

-                              Name 398  "ub"

-                              Decorate 378(gl_FragColor) BuiltIn FragColor

-                              Decorate 396(uiv4) NoStaticUse

-                              Decorate 398(ub) NoStaticUse

+                              Name 9  "v"

+                              Name 11  "uv4"

+                              Name 20  "i"

+                              Name 22  "ui"

+                              Name 169  "uf"

+                              Name 216  "b"

+                              Name 242  "ub41"

+                              Name 244  "ub42"

+                              Name 301  "f"

+                              Name 377  "gl_FragColor"

+                              Name 395  "uiv4"

+                              Name 397  "ub"

+                              Decorate 377(gl_FragColor) BuiltIn FragColor

+                              Decorate 395(uiv4) NoStaticUse

+                              Decorate 397(ub) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer UniformConstant 8(fvec4)

-         12(uv4):     11(ptr) Variable UniformConstant

-              19:             TypeInt 32 1

-              20:             TypePointer Function 19(int)

-              22:             TypePointer UniformConstant 19(int)

-          23(ui):     22(ptr) Variable UniformConstant

-             169:             TypePointer UniformConstant 7(float)

-         170(uf):    169(ptr) Variable UniformConstant

-             215:             TypeBool

-             216:             TypePointer Function 215(bool)

-             220:             TypeVector 215(bool) 4

-             242:             TypePointer UniformConstant 220(bvec4)

-       243(ub41):    242(ptr) Variable UniformConstant

-       245(ub42):    242(ptr) Variable UniformConstant

-             292:     19(int) Constant 2

-             299:     19(int) Constant 1

-             301:             TypePointer Function 7(float)

-             331:             TypeVector 7(float) 3

-             347:    7(float) Constant 1073741824

-             354:    7(float) Constant 1065353216

-             359:     19(int) Constant 66

-             365:     19(int) Constant 17

-             377:             TypePointer Output 8(fvec4)

-378(gl_FragColor):    377(ptr) Variable Output

-             394:             TypeVector 19(int) 4

-             395:             TypePointer UniformConstant 394(ivec4)

-       396(uiv4):    395(ptr) Variable UniformConstant

-             397:             TypePointer UniformConstant 215(bool)

-         398(ub):    397(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer UniformConstant 7(fvec4)

+         11(uv4):     10(ptr) Variable UniformConstant

+              18:             TypeInt 32 1

+              19:             TypePointer Function 18(int)

+              21:             TypePointer UniformConstant 18(int)

+          22(ui):     21(ptr) Variable UniformConstant

+             168:             TypePointer UniformConstant 6(float)

+         169(uf):    168(ptr) Variable UniformConstant

+             214:             TypeBool

+             215:             TypePointer Function 214(bool)

+             219:             TypeVector 214(bool) 4

+             241:             TypePointer UniformConstant 219(bvec4)

+       242(ub41):    241(ptr) Variable UniformConstant

+       244(ub42):    241(ptr) Variable UniformConstant

+             291:     18(int) Constant 2

+             298:     18(int) Constant 1

+             300:             TypePointer Function 6(float)

+             330:             TypeVector 6(float) 3

+             346:    6(float) Constant 1073741824

+             353:    6(float) Constant 1065353216

+             358:     18(int) Constant 66

+             364:     18(int) Constant 17

+             376:             TypePointer Output 7(fvec4)

+377(gl_FragColor):    376(ptr) Variable Output

+             393:             TypeVector 18(int) 4

+             394:             TypePointer UniformConstant 393(ivec4)

+       395(uiv4):    394(ptr) Variable UniformConstant

+             396:             TypePointer UniformConstant 214(bool)

+         397(ub):    396(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-           10(v):      9(ptr) Variable Function

-           21(i):     20(ptr) Variable Function

-          217(b):    216(ptr) Variable Function

-          302(f):    301(ptr) Variable Function

-             379:      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(uv4)

-              14:    8(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 13

-                              Store 10(v) 14

-              15:    8(fvec4) Load 10(v)

-              16:    8(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 15

-              17:    8(fvec4) Load 10(v)

-              18:    8(fvec4) FAdd 17 16

-                              Store 10(v) 18

-              24:     19(int) Load 23(ui)

-              25:     19(int) Load 23(ui)

-              26:     19(int) IMul 24 25

-                              Store 21(i) 26

-              27:    8(fvec4) Load 10(v)

-              28:    8(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 27

-              29:    8(fvec4) Load 10(v)

-              30:    8(fvec4) FAdd 29 28

-                              Store 10(v) 30

-              31:    8(fvec4) Load 10(v)

-              32:    8(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 31

-              33:    8(fvec4) Load 10(v)

-              34:    8(fvec4) FAdd 33 32

-                              Store 10(v) 34

-              35:    8(fvec4) Load 10(v)

-              36:    8(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 35

-              37:    8(fvec4) Load 10(v)

-              38:    8(fvec4) FAdd 37 36

-                              Store 10(v) 38

-              39:    8(fvec4) Load 10(v)

-              40:    8(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 39

-              41:    8(fvec4) Load 10(v)

-              42:    8(fvec4) FAdd 41 40

-                              Store 10(v) 42

-              43:    8(fvec4) Load 10(v)

-              44:    8(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 43

-              45:    8(fvec4) Load 10(v)

-              46:    8(fvec4) FAdd 45 44

-                              Store 10(v) 46

-              47:    8(fvec4) Load 10(v)

-              48:    8(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 47

-              49:    8(fvec4) Load 10(v)

-              50:    8(fvec4) FAdd 49 48

-                              Store 10(v) 50

-              51:    8(fvec4) Load 10(v)

-              52:    8(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 51

-              53:    8(fvec4) Load 10(v)

-              54:    8(fvec4) FAdd 53 52

-                              Store 10(v) 54

-              55:    8(fvec4) Load 10(v)

-              56:    8(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 55

-              57:    8(fvec4) Load 10(v)

-              58:    8(fvec4) FAdd 57 56

-                              Store 10(v) 58

-              59:    8(fvec4) Load 10(v)

-              60:    8(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 59

-              61:    8(fvec4) Load 10(v)

-              62:    8(fvec4) FAdd 61 60

-                              Store 10(v) 62

-              63:    8(fvec4) Load 10(v)

-              64:    8(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 63

-              65:    8(fvec4) Load 10(v)

-              66:    8(fvec4) FAdd 65 64

-                              Store 10(v) 66

-              67:    8(fvec4) Load 10(v)

-              68:    8(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 67

-              69:    8(fvec4) Load 10(v)

-              70:    8(fvec4) FAdd 69 68

-                              Store 10(v) 70

-              71:    8(fvec4) Load 10(v)

-              72:    8(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 71

-              73:    8(fvec4) Load 10(v)

-              74:    8(fvec4) FAdd 73 72

-                              Store 10(v) 74

-              75:    8(fvec4) Load 10(v)

-              76:    8(fvec4) Load 10(v)

-              77:    8(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 75 76

-              78:    8(fvec4) Load 10(v)

-              79:    8(fvec4) FAdd 78 77

-                              Store 10(v) 79

-              80:    8(fvec4) Load 10(v)

-              81:    8(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 80

-              82:    8(fvec4) Load 10(v)

-              83:    8(fvec4) FAdd 82 81

-                              Store 10(v) 83

-              84:    8(fvec4) Load 10(v)

-              85:    8(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 84

-              86:    8(fvec4) Load 10(v)

-              87:    8(fvec4) FAdd 86 85

-                              Store 10(v) 87

-              88:    8(fvec4) Load 10(v)

-              89:    8(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 88

-              90:    8(fvec4) Load 10(v)

-              91:    8(fvec4) FAdd 90 89

-                              Store 10(v) 91

-              92:    8(fvec4) Load 10(v)

-              93:    8(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 92

-              94:    8(fvec4) Load 10(v)

-              95:    8(fvec4) FAdd 94 93

-                              Store 10(v) 95

-              96:    8(fvec4) Load 10(v)

-              97:    8(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 96

-              98:    8(fvec4) Load 10(v)

-              99:    8(fvec4) FAdd 98 97

-                              Store 10(v) 99

-             100:    8(fvec4) Load 10(v)

-             101:    8(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 100

-             102:    8(fvec4) Load 10(v)

-             103:    8(fvec4) FAdd 102 101

-                              Store 10(v) 103

-             104:    8(fvec4) Load 10(v)

-             105:    8(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 104

-             106:    8(fvec4) Load 10(v)

-             107:    8(fvec4) FAdd 106 105

-                              Store 10(v) 107

-             108:    8(fvec4) Load 10(v)

-             109:    8(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 108

-             110:    8(fvec4) Load 10(v)

-             111:    8(fvec4) FAdd 110 109

-                              Store 10(v) 111

-             112:    8(fvec4) Load 10(v)

-             113:    8(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 112

-             114:    8(fvec4) Load 10(v)

-             115:    8(fvec4) FAdd 114 113

-                              Store 10(v) 115

-             116:    8(fvec4) Load 10(v)

-             117:    8(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 116

-             118:    8(fvec4) Load 10(v)

-             119:    8(fvec4) FAdd 118 117

-                              Store 10(v) 119

-             120:    8(fvec4) Load 10(v)

-             121:    8(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 120

-             122:    8(fvec4) Load 10(v)

-             123:    8(fvec4) FAdd 122 121

-                              Store 10(v) 123

-             124:    8(fvec4) Load 10(v)

-             125:    8(fvec4) Load 10(v)

-             126:    8(fvec4) FMod 124 125

-             127:    8(fvec4) Load 10(v)

-             128:    8(fvec4) FAdd 127 126

-                              Store 10(v) 128

-             129:    8(fvec4) Load 10(v)

-             130:    8(fvec4) Load 10(v)

-             131:    7(float) CompositeExtract 130 0

-             132:    8(fvec4) CompositeConstruct 131 131 131 131

-             133:    8(fvec4) FMod 129 132

-             134:    8(fvec4) Load 10(v)

-             135:    8(fvec4) FAdd 134 133

-                              Store 10(v) 135

-             136:    8(fvec4) Load 10(v)

-             137:    8(fvec4) Load 12(uv4)

-             138:    8(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 136 137

-             139:    8(fvec4) Load 10(v)

-             140:    8(fvec4) FAdd 139 138

-                              Store 10(v) 140

-             141:    8(fvec4) Load 10(v)

-             142:    8(fvec4) Load 12(uv4)

-             143:    8(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 141 142

-             144:    8(fvec4) Load 10(v)

-             145:    8(fvec4) FAdd 144 143

-                              Store 10(v) 145

-             146:    8(fvec4) Load 10(v)

-             147:    8(fvec4) Load 12(uv4)

-             148:    8(fvec4) Load 12(uv4)

-             149:    8(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 146 147 148

-             150:    8(fvec4) Load 10(v)

-             151:    8(fvec4) FAdd 150 149

-                              Store 10(v) 151

-             152:    8(fvec4) Load 10(v)

-             153:    8(fvec4) Load 10(v)

-             154:    8(fvec4) Load 10(v)

-             155:    8(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 152 153 154

-             156:    8(fvec4) Load 10(v)

-             157:    8(fvec4) FAdd 156 155

-                              Store 10(v) 157

-             158:    8(fvec4) Load 10(v)

-             159:    8(fvec4) Load 10(v)

-             160:    8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 158 159

-             161:    8(fvec4) Load 10(v)

-             162:    8(fvec4) FAdd 161 160

-                              Store 10(v) 162

-             163:    8(fvec4) Load 10(v)

-             164:    8(fvec4) Load 10(v)

-             165:    8(fvec4) Load 10(v)

-             166:    8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 163 164 165

-             167:    8(fvec4) Load 10(v)

-             168:    8(fvec4) FAdd 167 166

-                              Store 10(v) 168

-             171:    7(float) Load 170(uf)

-             172:    8(fvec4) Load 10(v)

-             173:    8(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 171 172

-             174:    8(fvec4) Load 10(v)

-             175:    8(fvec4) FAdd 174 173

-                              Store 10(v) 175

-             176:    7(float) Load 170(uf)

-             177:    7(float) Load 170(uf)

-             178:    8(fvec4) Load 10(v)

-             179:    8(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 176 177 178

-             180:    8(fvec4) Load 10(v)

-             181:    8(fvec4) FAdd 180 179

-                              Store 10(v) 181

-             182:    8(fvec4) Load 10(v)

-             183:    8(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 182

-             184:    8(fvec4) Load 10(v)

-             185:    8(fvec4) FAdd 184 183

-                              Store 10(v) 185

-             186:    8(fvec4) Load 10(v)

-             187:    8(fvec4) Load 10(v)

-             188:    8(fvec4) Load 10(v)

-             189:    8(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 186 187 188

-             190:    8(fvec4) Load 10(v)

-             191:    8(fvec4) FAdd 190 189

-                              Store 10(v) 191

-             192:    8(fvec4) Load 10(v)

-             193:    8(fvec4) Load 10(v)

-             194:    8(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 192 193

-             195:    8(fvec4) Load 10(v)

-             196:    8(fvec4) FAdd 195 194

-                              Store 10(v) 196

-             197:    8(fvec4) Load 10(v)

-             198:    8(fvec4) Load 10(v)

-             199:    7(float) Load 170(uf)

-             200:    8(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 197 198 199

-             201:    8(fvec4) Load 10(v)

-             202:    8(fvec4) FAdd 201 200

-                              Store 10(v) 202

-             203:    8(fvec4) Load 10(v)

-             204:    8(fvec4) DPdx 203

-             205:    8(fvec4) Load 10(v)

-             206:    8(fvec4) FAdd 205 204

-                              Store 10(v) 206

-             207:    8(fvec4) Load 10(v)

-             208:    8(fvec4) DPdy 207

-             209:    8(fvec4) Load 10(v)

-             210:    8(fvec4) FAdd 209 208

-                              Store 10(v) 210

-             211:    8(fvec4) Load 10(v)

-             212:    8(fvec4) Fwidth 211

-             213:    8(fvec4) Load 10(v)

-             214:    8(fvec4) FAdd 213 212

-                              Store 10(v) 214

-             218:    8(fvec4) Load 10(v)

-             219:    8(fvec4) Load 12(uv4)

-             221:  220(bvec4) FOrdLessThan 218 219

-             222:   215(bool) Any 221

-                              Store 217(b) 222

-             223:   215(bool) Load 217(b)

-             224:    8(fvec4) Load 10(v)

-             225:    8(fvec4) Load 12(uv4)

-             226:  220(bvec4) FOrdLessThanEqual 224 225

-             227:   215(bool) Any 226

-             228:   215(bool) LogicalAnd 223 227

-                              Store 217(b) 228

-             229:   215(bool) Load 217(b)

-             230:    8(fvec4) Load 10(v)

-             231:    8(fvec4) Load 12(uv4)

-             232:  220(bvec4) FOrdGreaterThan 230 231

-             233:   215(bool) Any 232

-             234:   215(bool) LogicalAnd 229 233

-                              Store 217(b) 234

-             235:   215(bool) Load 217(b)

-             236:    8(fvec4) Load 10(v)

-             237:    8(fvec4) Load 12(uv4)

-             238:  220(bvec4) FOrdGreaterThanEqual 236 237

-             239:   215(bool) Any 238

-             240:   215(bool) LogicalAnd 235 239

-                              Store 217(b) 240

-             241:   215(bool) Load 217(b)

-             244:  220(bvec4) Load 243(ub41)

-             246:  220(bvec4) Load 245(ub42)

-             247:  220(bvec4) IEqual 244 246

-             248:   215(bool) Any 247

-             249:   215(bool) LogicalAnd 241 248

-                              Store 217(b) 249

-             250:   215(bool) Load 217(b)

-             251:  220(bvec4) Load 243(ub41)

-             252:  220(bvec4) Load 245(ub42)

-             253:  220(bvec4) INotEqual 251 252

-             254:   215(bool) Any 253

-             255:   215(bool) LogicalAnd 250 254

-                              Store 217(b) 255

-             256:   215(bool) Load 217(b)

-             257:  220(bvec4) Load 243(ub41)

-             258:   215(bool) Any 257

-             259:   215(bool) LogicalAnd 256 258

-                              Store 217(b) 259

-             260:   215(bool) Load 217(b)

-             261:  220(bvec4) Load 243(ub41)

-             262:   215(bool) All 261

-             263:   215(bool) LogicalAnd 260 262

-                              Store 217(b) 263

-             264:   215(bool) Load 217(b)

-             265:  220(bvec4) Load 243(ub41)

-             266:  220(bvec4) LogicalNot 265

-             267:   215(bool) Any 266

-             268:   215(bool) LogicalAnd 264 267

-                              Store 217(b) 268

-             269:     19(int) Load 21(i)

-             270:     19(int) Load 23(ui)

-             271:     19(int) IAdd 269 270

-             272:     19(int) Load 21(i)

-             273:     19(int) IMul 271 272

-             274:     19(int) Load 23(ui)

-             275:     19(int) ISub 273 274

-             276:     19(int) Load 21(i)

-             277:     19(int) SDiv 275 276

-                              Store 21(i) 277

-             278:     19(int) Load 21(i)

-             279:     19(int) Load 23(ui)

-             280:     19(int) SMod 278 279

-                              Store 21(i) 280

-             281:     19(int) Load 21(i)

-             282:     19(int) Load 23(ui)

-             283:   215(bool) IEqual 281 282

-             284:     19(int) Load 21(i)

-             285:     19(int) Load 23(ui)

-             286:   215(bool) INotEqual 284 285

-             287:     19(int) Load 21(i)

-             288:     19(int) Load 23(ui)

-             289:   215(bool) IEqual 287 288

-             290:   215(bool) LogicalAnd 286 289

-             291:     19(int) Load 21(i)

-             293:   215(bool) INotEqual 291 292

-             294:   215(bool) LogicalNotEqual 290 293

-             295:   215(bool) LogicalOr 283 294

-                              SelectionMerge 297 None

-                              BranchConditional 295 296 297

-             296:               Label

-             298:     19(int)   Load 21(i)

-             300:     19(int)   IAdd 298 299

-                                Store 21(i) 300

-                                Branch 297

-             297:             Label

-             303:    7(float) Load 170(uf)

-             304:    7(float) Load 170(uf)

-             305:    7(float) FAdd 303 304

-             306:    7(float) Load 170(uf)

-             307:    7(float) FMul 305 306

-             308:    7(float) Load 170(uf)

-             309:    7(float) FSub 307 308

-             310:    7(float) Load 170(uf)

-             311:    7(float) FDiv 309 310

-                              Store 302(f) 311

-             312:    8(fvec4) Load 10(v)

-             313:    7(float) ExtInst 1(GLSL.std.450) 65(Length) 312

-             314:    7(float) Load 302(f)

-             315:    7(float) FAdd 314 313

-                              Store 302(f) 315

-             316:    8(fvec4) Load 10(v)

-             317:    8(fvec4) Load 10(v)

-             318:    7(float) ExtInst 1(GLSL.std.450) 66(Distance) 316 317

-             319:    7(float) Load 302(f)

-             320:    7(float) FAdd 319 318

-                              Store 302(f) 320

-             321:    8(fvec4) Load 10(v)

-             322:    8(fvec4) Load 10(v)

-             323:    7(float) Dot 321 322

-             324:    7(float) Load 302(f)

-             325:    7(float) FAdd 324 323

-                              Store 302(f) 325

-             326:    7(float) Load 302(f)

-             327:    7(float) Load 170(uf)

-             328:    7(float) FMul 326 327

-             329:    7(float) Load 302(f)

-             330:    7(float) FAdd 329 328

-                              Store 302(f) 330

-             332:    8(fvec4) Load 10(v)

-             333:  331(fvec3) VectorShuffle 332 332 0 1 2

-             334:    8(fvec4) Load 10(v)

-             335:  331(fvec3) VectorShuffle 334 334 0 1 2

-             336:  331(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 333 335

-             337:    7(float) CompositeExtract 336 0

-             338:    7(float) Load 302(f)

-             339:    7(float) FAdd 338 337

-                              Store 302(f) 339

-             340:    7(float) Load 302(f)

-             341:    7(float) Load 170(uf)

-             342:   215(bool) FOrdEqual 340 341

-             343:    7(float) Load 302(f)

-             344:    7(float) Load 170(uf)

-             345:   215(bool) FOrdNotEqual 343 344

-             346:    7(float) Load 302(f)

-             348:   215(bool) FOrdNotEqual 346 347

-             349:   215(bool) LogicalAnd 345 348

-             350:   215(bool) LogicalOr 342 349

-                              SelectionMerge 352 None

-                              BranchConditional 350 351 352

-             351:               Label

-             353:    7(float)   Load 302(f)

-             355:    7(float)   FAdd 353 354

-                                Store 302(f) 355

-                                Branch 352

-             352:             Label

-             356:     19(int) Load 23(ui)

-             357:     19(int) Load 21(i)

-             358:     19(int) BitwiseAnd 357 356

-                              Store 21(i) 358

-             360:     19(int) Load 21(i)

-             361:     19(int) BitwiseOr 360 359

-                              Store 21(i) 361

-             362:     19(int) Load 23(ui)

-             363:     19(int) Load 21(i)

-             364:     19(int) BitwiseXor 363 362

-                              Store 21(i) 364

-             366:     19(int) Load 21(i)

-             367:     19(int) SMod 366 365

-                              Store 21(i) 367

-             368:     19(int) Load 21(i)

-             369:     19(int) ShiftRightArithmetic 368 292

-                              Store 21(i) 369

-             370:     19(int) Load 23(ui)

-             371:     19(int) Load 21(i)

-             372:     19(int) ShiftLeftLogical 371 370

-                              Store 21(i) 372

-             373:     19(int) Load 21(i)

-             374:     19(int) Not 373

-                              Store 21(i) 374

-             375:   215(bool) Load 217(b)

-             376:   215(bool) LogicalNot 375

-                              Store 217(b) 376

-             380:   215(bool) Load 217(b)

-                              SelectionMerge 382 None

-                              BranchConditional 380 381 391

-             381:               Label

-             383:     19(int)   Load 21(i)

-             384:    7(float)   ConvertSToF 383

-             385:    8(fvec4)   CompositeConstruct 384 384 384 384

-             386:    7(float)   Load 302(f)

-             387:    8(fvec4)   CompositeConstruct 386 386 386 386

-             388:    8(fvec4)   FAdd 385 387

-             389:    8(fvec4)   Load 10(v)

-             390:    8(fvec4)   FAdd 388 389

-                                Store 379 390

-                                Branch 382

-             391:               Label

-             392:    8(fvec4)   Load 10(v)

-                                Store 379 392

-                                Branch 382

-             382:             Label

-             393:    8(fvec4) Load 379

-                              Store 378(gl_FragColor) 393

-                              Branch 6

-               6:             Label

+            9(v):      8(ptr) Variable Function

+           20(i):     19(ptr) Variable Function

+          216(b):    215(ptr) Variable Function

+          301(f):    300(ptr) Variable Function

+             378:      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(uv4)

+              13:    7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12

+                              Store 9(v) 13

+              14:    7(fvec4) Load 9(v)

+              15:    7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14

+              16:    7(fvec4) Load 9(v)

+              17:    7(fvec4) FAdd 16 15

+                              Store 9(v) 17

+              23:     18(int) Load 22(ui)

+              24:     18(int) Load 22(ui)

+              25:     18(int) IMul 23 24

+                              Store 20(i) 25

+              26:    7(fvec4) Load 9(v)

+              27:    7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26

+              28:    7(fvec4) Load 9(v)

+              29:    7(fvec4) FAdd 28 27

+                              Store 9(v) 29

+              30:    7(fvec4) Load 9(v)

+              31:    7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30

+              32:    7(fvec4) Load 9(v)

+              33:    7(fvec4) FAdd 32 31

+                              Store 9(v) 33

+              34:    7(fvec4) Load 9(v)

+              35:    7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34

+              36:    7(fvec4) Load 9(v)

+              37:    7(fvec4) FAdd 36 35

+                              Store 9(v) 37

+              38:    7(fvec4) Load 9(v)

+              39:    7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38

+              40:    7(fvec4) Load 9(v)

+              41:    7(fvec4) FAdd 40 39

+                              Store 9(v) 41

+              42:    7(fvec4) Load 9(v)

+              43:    7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42

+              44:    7(fvec4) Load 9(v)

+              45:    7(fvec4) FAdd 44 43

+                              Store 9(v) 45

+              46:    7(fvec4) Load 9(v)

+              47:    7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46

+              48:    7(fvec4) Load 9(v)

+              49:    7(fvec4) FAdd 48 47

+                              Store 9(v) 49

+              50:    7(fvec4) Load 9(v)

+              51:    7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50

+              52:    7(fvec4) Load 9(v)

+              53:    7(fvec4) FAdd 52 51

+                              Store 9(v) 53

+              54:    7(fvec4) Load 9(v)

+              55:    7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54

+              56:    7(fvec4) Load 9(v)

+              57:    7(fvec4) FAdd 56 55

+                              Store 9(v) 57

+              58:    7(fvec4) Load 9(v)

+              59:    7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58

+              60:    7(fvec4) Load 9(v)

+              61:    7(fvec4) FAdd 60 59

+                              Store 9(v) 61

+              62:    7(fvec4) Load 9(v)

+              63:    7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62

+              64:    7(fvec4) Load 9(v)

+              65:    7(fvec4) FAdd 64 63

+                              Store 9(v) 65

+              66:    7(fvec4) Load 9(v)

+              67:    7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66

+              68:    7(fvec4) Load 9(v)

+              69:    7(fvec4) FAdd 68 67

+                              Store 9(v) 69

+              70:    7(fvec4) Load 9(v)

+              71:    7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70

+              72:    7(fvec4) Load 9(v)

+              73:    7(fvec4) FAdd 72 71

+                              Store 9(v) 73

+              74:    7(fvec4) Load 9(v)

+              75:    7(fvec4) Load 9(v)

+              76:    7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75

+              77:    7(fvec4) Load 9(v)

+              78:    7(fvec4) FAdd 77 76

+                              Store 9(v) 78

+              79:    7(fvec4) Load 9(v)

+              80:    7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79

+              81:    7(fvec4) Load 9(v)

+              82:    7(fvec4) FAdd 81 80

+                              Store 9(v) 82

+              83:    7(fvec4) Load 9(v)

+              84:    7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83

+              85:    7(fvec4) Load 9(v)

+              86:    7(fvec4) FAdd 85 84

+                              Store 9(v) 86

+              87:    7(fvec4) Load 9(v)

+              88:    7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87

+              89:    7(fvec4) Load 9(v)

+              90:    7(fvec4) FAdd 89 88

+                              Store 9(v) 90

+              91:    7(fvec4) Load 9(v)

+              92:    7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91

+              93:    7(fvec4) Load 9(v)

+              94:    7(fvec4) FAdd 93 92

+                              Store 9(v) 94

+              95:    7(fvec4) Load 9(v)

+              96:    7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95

+              97:    7(fvec4) Load 9(v)

+              98:    7(fvec4) FAdd 97 96

+                              Store 9(v) 98

+              99:    7(fvec4) Load 9(v)

+             100:    7(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 99

+             101:    7(fvec4) Load 9(v)

+             102:    7(fvec4) FAdd 101 100

+                              Store 9(v) 102

+             103:    7(fvec4) Load 9(v)

+             104:    7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103

+             105:    7(fvec4) Load 9(v)

+             106:    7(fvec4) FAdd 105 104

+                              Store 9(v) 106

+             107:    7(fvec4) Load 9(v)

+             108:    7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107

+             109:    7(fvec4) Load 9(v)

+             110:    7(fvec4) FAdd 109 108

+                              Store 9(v) 110

+             111:    7(fvec4) Load 9(v)

+             112:    7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111

+             113:    7(fvec4) Load 9(v)

+             114:    7(fvec4) FAdd 113 112

+                              Store 9(v) 114

+             115:    7(fvec4) Load 9(v)

+             116:    7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115

+             117:    7(fvec4) Load 9(v)

+             118:    7(fvec4) FAdd 117 116

+                              Store 9(v) 118

+             119:    7(fvec4) Load 9(v)

+             120:    7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119

+             121:    7(fvec4) Load 9(v)

+             122:    7(fvec4) FAdd 121 120

+                              Store 9(v) 122

+             123:    7(fvec4) Load 9(v)

+             124:    7(fvec4) Load 9(v)

+             125:    7(fvec4) FMod 123 124

+             126:    7(fvec4) Load 9(v)

+             127:    7(fvec4) FAdd 126 125

+                              Store 9(v) 127

+             128:    7(fvec4) Load 9(v)

+             129:    7(fvec4) Load 9(v)

+             130:    6(float) CompositeExtract 129 0

+             131:    7(fvec4) CompositeConstruct 130 130 130 130

+             132:    7(fvec4) FMod 128 131

+             133:    7(fvec4) Load 9(v)

+             134:    7(fvec4) FAdd 133 132

+                              Store 9(v) 134

+             135:    7(fvec4) Load 9(v)

+             136:    7(fvec4) Load 11(uv4)

+             137:    7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 135 136

+             138:    7(fvec4) Load 9(v)

+             139:    7(fvec4) FAdd 138 137

+                              Store 9(v) 139

+             140:    7(fvec4) Load 9(v)

+             141:    7(fvec4) Load 11(uv4)

+             142:    7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 140 141

+             143:    7(fvec4) Load 9(v)

+             144:    7(fvec4) FAdd 143 142

+                              Store 9(v) 144

+             145:    7(fvec4) Load 9(v)

+             146:    7(fvec4) Load 11(uv4)

+             147:    7(fvec4) Load 11(uv4)

+             148:    7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 145 146 147

+             149:    7(fvec4) Load 9(v)

+             150:    7(fvec4) FAdd 149 148

+                              Store 9(v) 150

+             151:    7(fvec4) Load 9(v)

+             152:    7(fvec4) Load 9(v)

+             153:    7(fvec4) Load 9(v)

+             154:    7(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 151 152 153

+             155:    7(fvec4) Load 9(v)

+             156:    7(fvec4) FAdd 155 154

+                              Store 9(v) 156

+             157:    7(fvec4) Load 9(v)

+             158:    7(fvec4) Load 9(v)

+             159:    7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 157 158

+             160:    7(fvec4) Load 9(v)

+             161:    7(fvec4) FAdd 160 159

+                              Store 9(v) 161

+             162:    7(fvec4) Load 9(v)

+             163:    7(fvec4) Load 9(v)

+             164:    7(fvec4) Load 9(v)

+             165:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 162 163 164

+             166:    7(fvec4) Load 9(v)

+             167:    7(fvec4) FAdd 166 165

+                              Store 9(v) 167

+             170:    6(float) Load 169(uf)

+             171:    7(fvec4) Load 9(v)

+             172:    7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 170 171

+             173:    7(fvec4) Load 9(v)

+             174:    7(fvec4) FAdd 173 172

+                              Store 9(v) 174

+             175:    6(float) Load 169(uf)

+             176:    6(float) Load 169(uf)

+             177:    7(fvec4) Load 9(v)

+             178:    7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 175 176 177

+             179:    7(fvec4) Load 9(v)

+             180:    7(fvec4) FAdd 179 178

+                              Store 9(v) 180

+             181:    7(fvec4) Load 9(v)

+             182:    7(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 181

+             183:    7(fvec4) Load 9(v)

+             184:    7(fvec4) FAdd 183 182

+                              Store 9(v) 184

+             185:    7(fvec4) Load 9(v)

+             186:    7(fvec4) Load 9(v)

+             187:    7(fvec4) Load 9(v)

+             188:    7(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 185 186 187

+             189:    7(fvec4) Load 9(v)

+             190:    7(fvec4) FAdd 189 188

+                              Store 9(v) 190

+             191:    7(fvec4) Load 9(v)

+             192:    7(fvec4) Load 9(v)

+             193:    7(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 191 192

+             194:    7(fvec4) Load 9(v)

+             195:    7(fvec4) FAdd 194 193

+                              Store 9(v) 195

+             196:    7(fvec4) Load 9(v)

+             197:    7(fvec4) Load 9(v)

+             198:    6(float) Load 169(uf)

+             199:    7(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 196 197 198

+             200:    7(fvec4) Load 9(v)

+             201:    7(fvec4) FAdd 200 199

+                              Store 9(v) 201

+             202:    7(fvec4) Load 9(v)

+             203:    7(fvec4) DPdx 202

+             204:    7(fvec4) Load 9(v)

+             205:    7(fvec4) FAdd 204 203

+                              Store 9(v) 205

+             206:    7(fvec4) Load 9(v)

+             207:    7(fvec4) DPdy 206

+             208:    7(fvec4) Load 9(v)

+             209:    7(fvec4) FAdd 208 207

+                              Store 9(v) 209

+             210:    7(fvec4) Load 9(v)

+             211:    7(fvec4) Fwidth 210

+             212:    7(fvec4) Load 9(v)

+             213:    7(fvec4) FAdd 212 211

+                              Store 9(v) 213

+             217:    7(fvec4) Load 9(v)

+             218:    7(fvec4) Load 11(uv4)

+             220:  219(bvec4) FOrdLessThan 217 218

+             221:   214(bool) Any 220

+                              Store 216(b) 221

+             222:   214(bool) Load 216(b)

+             223:    7(fvec4) Load 9(v)

+             224:    7(fvec4) Load 11(uv4)

+             225:  219(bvec4) FOrdLessThanEqual 223 224

+             226:   214(bool) Any 225

+             227:   214(bool) LogicalAnd 222 226

+                              Store 216(b) 227

+             228:   214(bool) Load 216(b)

+             229:    7(fvec4) Load 9(v)

+             230:    7(fvec4) Load 11(uv4)

+             231:  219(bvec4) FOrdGreaterThan 229 230

+             232:   214(bool) Any 231

+             233:   214(bool) LogicalAnd 228 232

+                              Store 216(b) 233

+             234:   214(bool) Load 216(b)

+             235:    7(fvec4) Load 9(v)

+             236:    7(fvec4) Load 11(uv4)

+             237:  219(bvec4) FOrdGreaterThanEqual 235 236

+             238:   214(bool) Any 237

+             239:   214(bool) LogicalAnd 234 238

+                              Store 216(b) 239

+             240:   214(bool) Load 216(b)

+             243:  219(bvec4) Load 242(ub41)

+             245:  219(bvec4) Load 244(ub42)

+             246:  219(bvec4) IEqual 243 245

+             247:   214(bool) Any 246

+             248:   214(bool) LogicalAnd 240 247

+                              Store 216(b) 248

+             249:   214(bool) Load 216(b)

+             250:  219(bvec4) Load 242(ub41)

+             251:  219(bvec4) Load 244(ub42)

+             252:  219(bvec4) INotEqual 250 251

+             253:   214(bool) Any 252

+             254:   214(bool) LogicalAnd 249 253

+                              Store 216(b) 254

+             255:   214(bool) Load 216(b)

+             256:  219(bvec4) Load 242(ub41)

+             257:   214(bool) Any 256

+             258:   214(bool) LogicalAnd 255 257

+                              Store 216(b) 258

+             259:   214(bool) Load 216(b)

+             260:  219(bvec4) Load 242(ub41)

+             261:   214(bool) All 260

+             262:   214(bool) LogicalAnd 259 261

+                              Store 216(b) 262

+             263:   214(bool) Load 216(b)

+             264:  219(bvec4) Load 242(ub41)

+             265:  219(bvec4) LogicalNot 264

+             266:   214(bool) Any 265

+             267:   214(bool) LogicalAnd 263 266

+                              Store 216(b) 267

+             268:     18(int) Load 20(i)

+             269:     18(int) Load 22(ui)

+             270:     18(int) IAdd 268 269

+             271:     18(int) Load 20(i)

+             272:     18(int) IMul 270 271

+             273:     18(int) Load 22(ui)

+             274:     18(int) ISub 272 273

+             275:     18(int) Load 20(i)

+             276:     18(int) SDiv 274 275

+                              Store 20(i) 276

+             277:     18(int) Load 20(i)

+             278:     18(int) Load 22(ui)

+             279:     18(int) SMod 277 278

+                              Store 20(i) 279

+             280:     18(int) Load 20(i)

+             281:     18(int) Load 22(ui)

+             282:   214(bool) IEqual 280 281

+             283:     18(int) Load 20(i)

+             284:     18(int) Load 22(ui)

+             285:   214(bool) INotEqual 283 284

+             286:     18(int) Load 20(i)

+             287:     18(int) Load 22(ui)

+             288:   214(bool) IEqual 286 287

+             289:   214(bool) LogicalAnd 285 288

+             290:     18(int) Load 20(i)

+             292:   214(bool) INotEqual 290 291

+             293:   214(bool) LogicalNotEqual 289 292

+             294:   214(bool) LogicalOr 282 293

+                              SelectionMerge 296 None

+                              BranchConditional 294 295 296

+             295:               Label

+             297:     18(int)   Load 20(i)

+             299:     18(int)   IAdd 297 298

+                                Store 20(i) 299

+                                Branch 296

+             296:             Label

+             302:    6(float) Load 169(uf)

+             303:    6(float) Load 169(uf)

+             304:    6(float) FAdd 302 303

+             305:    6(float) Load 169(uf)

+             306:    6(float) FMul 304 305

+             307:    6(float) Load 169(uf)

+             308:    6(float) FSub 306 307

+             309:    6(float) Load 169(uf)

+             310:    6(float) FDiv 308 309

+                              Store 301(f) 310

+             311:    7(fvec4) Load 9(v)

+             312:    6(float) ExtInst 1(GLSL.std.450) 65(Length) 311

+             313:    6(float) Load 301(f)

+             314:    6(float) FAdd 313 312

+                              Store 301(f) 314

+             315:    7(fvec4) Load 9(v)

+             316:    7(fvec4) Load 9(v)

+             317:    6(float) ExtInst 1(GLSL.std.450) 66(Distance) 315 316

+             318:    6(float) Load 301(f)

+             319:    6(float) FAdd 318 317

+                              Store 301(f) 319

+             320:    7(fvec4) Load 9(v)

+             321:    7(fvec4) Load 9(v)

+             322:    6(float) Dot 320 321

+             323:    6(float) Load 301(f)

+             324:    6(float) FAdd 323 322

+                              Store 301(f) 324

+             325:    6(float) Load 301(f)

+             326:    6(float) Load 169(uf)

+             327:    6(float) FMul 325 326

+             328:    6(float) Load 301(f)

+             329:    6(float) FAdd 328 327

+                              Store 301(f) 329

+             331:    7(fvec4) Load 9(v)

+             332:  330(fvec3) VectorShuffle 331 331 0 1 2

+             333:    7(fvec4) Load 9(v)

+             334:  330(fvec3) VectorShuffle 333 333 0 1 2

+             335:  330(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 332 334

+             336:    6(float) CompositeExtract 335 0

+             337:    6(float) Load 301(f)

+             338:    6(float) FAdd 337 336

+                              Store 301(f) 338

+             339:    6(float) Load 301(f)

+             340:    6(float) Load 169(uf)

+             341:   214(bool) FOrdEqual 339 340

+             342:    6(float) Load 301(f)

+             343:    6(float) Load 169(uf)

+             344:   214(bool) FOrdNotEqual 342 343

+             345:    6(float) Load 301(f)

+             347:   214(bool) FOrdNotEqual 345 346

+             348:   214(bool) LogicalAnd 344 347

+             349:   214(bool) LogicalOr 341 348

+                              SelectionMerge 351 None

+                              BranchConditional 349 350 351

+             350:               Label

+             352:    6(float)   Load 301(f)

+             354:    6(float)   FAdd 352 353

+                                Store 301(f) 354

+                                Branch 351

+             351:             Label

+             355:     18(int) Load 22(ui)

+             356:     18(int) Load 20(i)

+             357:     18(int) BitwiseAnd 356 355

+                              Store 20(i) 357

+             359:     18(int) Load 20(i)

+             360:     18(int) BitwiseOr 359 358

+                              Store 20(i) 360

+             361:     18(int) Load 22(ui)

+             362:     18(int) Load 20(i)

+             363:     18(int) BitwiseXor 362 361

+                              Store 20(i) 363

+             365:     18(int) Load 20(i)

+             366:     18(int) SMod 365 364

+                              Store 20(i) 366

+             367:     18(int) Load 20(i)

+             368:     18(int) ShiftRightArithmetic 367 291

+                              Store 20(i) 368

+             369:     18(int) Load 22(ui)

+             370:     18(int) Load 20(i)

+             371:     18(int) ShiftLeftLogical 370 369

+                              Store 20(i) 371

+             372:     18(int) Load 20(i)

+             373:     18(int) Not 372

+                              Store 20(i) 373

+             374:   214(bool) Load 216(b)

+             375:   214(bool) LogicalNot 374

+                              Store 216(b) 375

+             379:   214(bool) Load 216(b)

+                              SelectionMerge 381 None

+                              BranchConditional 379 380 390

+             380:               Label

+             382:     18(int)   Load 20(i)

+             383:    6(float)   ConvertSToF 382

+             384:    7(fvec4)   CompositeConstruct 383 383 383 383

+             385:    6(float)   Load 301(f)

+             386:    7(fvec4)   CompositeConstruct 385 385 385 385

+             387:    7(fvec4)   FAdd 384 386

+             388:    7(fvec4)   Load 9(v)

+             389:    7(fvec4)   FAdd 387 388

+                                Store 378 389

+                                Branch 381

+             390:               Label

+             391:    7(fvec4)   Load 9(v)

+                                Store 378 391

+                                Branch 381

+             381:             Label

+             392:    7(fvec4) Load 378

+                              Store 377(gl_FragColor) 392

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.accessChain.frag.out b/Test/baseResults/spv.accessChain.frag.out
index c280bff..e3392f2 100755
--- a/Test/baseResults/spv.accessChain.frag.out
+++ b/Test/baseResults/spv.accessChain.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 198

+// Id's are bound by 197

 

                               Source GLSL 420

                               Capability Shader

@@ -16,309 +16,307 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "S"

-                              MemberName 9(S) 0  "color"

-                              Name 12  "GetColor1(struct-S-vf31;"

-                              Name 11  "i"

-                              Name 19  "GetColor2(struct-S-vf31;i1;"

-                              Name 17  "i"

-                              Name 18  "comp"

-                              Name 23  "GetColor3(struct-S-vf31;i1;"

-                              Name 21  "i"

-                              Name 22  "comp"

-                              Name 27  "GetColor4(struct-S-vf31;i1;"

-                              Name 25  "i"

-                              Name 26  "comp"

-                              Name 31  "GetColor5(struct-S-vf31;i1;"

-                              Name 29  "i"

-                              Name 30  "comp"

-                              Name 35  "GetColor6(struct-S-vf31;i1;"

-                              Name 33  "i"

-                              Name 34  "comp"

-                              Name 39  "GetColor7(struct-S-vf31;i1;"

-                              Name 37  "i"

-                              Name 38  "comp"

-                              Name 43  "GetColor8(struct-S-vf31;i1;"

-                              Name 41  "i"

-                              Name 42  "comp"

-                              Name 47  "GetColor9(struct-S-vf31;i1;"

-                              Name 45  "i"

-                              Name 46  "comp"

-                              Name 51  "GetColor10(struct-S-vf31;i1;"

-                              Name 49  "i"

-                              Name 50  "comp"

-                              Name 55  "GetColor11(struct-S-vf31;i1;"

-                              Name 53  "i"

-                              Name 54  "comp"

-                              Name 59  "GetColor12(struct-S-vf31;i1;"

-                              Name 57  "i"

-                              Name 58  "comp"

-                              Name 63  "GetColor13(struct-S-vf31;i1;"

-                              Name 61  "i"

-                              Name 62  "comp"

-                              Name 66  "OutColor"

-                              Name 145  "s"

-                              Name 150  "u"

-                              Name 151  "param"

-                              Name 155  "param"

-                              Name 159  "param"

-                              Name 163  "param"

-                              Name 167  "param"

-                              Name 171  "param"

-                              Name 175  "param"

-                              Name 179  "param"

-                              Name 183  "param"

-                              Name 187  "param"

-                              Name 191  "param"

-                              Name 195  "param"

-                              Decorate 66(OutColor) Location 0

+                              Name 8  "S"

+                              MemberName 8(S) 0  "color"

+                              Name 11  "GetColor1(struct-S-vf31;"

+                              Name 10  "i"

+                              Name 18  "GetColor2(struct-S-vf31;i1;"

+                              Name 16  "i"

+                              Name 17  "comp"

+                              Name 22  "GetColor3(struct-S-vf31;i1;"

+                              Name 20  "i"

+                              Name 21  "comp"

+                              Name 26  "GetColor4(struct-S-vf31;i1;"

+                              Name 24  "i"

+                              Name 25  "comp"

+                              Name 30  "GetColor5(struct-S-vf31;i1;"

+                              Name 28  "i"

+                              Name 29  "comp"

+                              Name 34  "GetColor6(struct-S-vf31;i1;"

+                              Name 32  "i"

+                              Name 33  "comp"

+                              Name 38  "GetColor7(struct-S-vf31;i1;"

+                              Name 36  "i"

+                              Name 37  "comp"

+                              Name 42  "GetColor8(struct-S-vf31;i1;"

+                              Name 40  "i"

+                              Name 41  "comp"

+                              Name 46  "GetColor9(struct-S-vf31;i1;"

+                              Name 44  "i"

+                              Name 45  "comp"

+                              Name 50  "GetColor10(struct-S-vf31;i1;"

+                              Name 48  "i"

+                              Name 49  "comp"

+                              Name 54  "GetColor11(struct-S-vf31;i1;"

+                              Name 52  "i"

+                              Name 53  "comp"

+                              Name 58  "GetColor12(struct-S-vf31;i1;"

+                              Name 56  "i"

+                              Name 57  "comp"

+                              Name 62  "GetColor13(struct-S-vf31;i1;"

+                              Name 60  "i"

+                              Name 61  "comp"

+                              Name 65  "OutColor"

+                              Name 144  "s"

+                              Name 149  "u"

+                              Name 150  "param"

+                              Name 154  "param"

+                              Name 158  "param"

+                              Name 162  "param"

+                              Name 166  "param"

+                              Name 170  "param"

+                              Name 174  "param"

+                              Name 178  "param"

+                              Name 182  "param"

+                              Name 186  "param"

+                              Name 190  "param"

+                              Name 194  "param"

+                              Decorate 65(OutColor) Location 0

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 3

-            9(S):             TypeStruct 8(fvec3)

-              10:             TypeFunction 2 9(S)

-              14:             TypeInt 32 1

-              15:             TypePointer Function 14(int)

-              16:             TypeFunction 2 9(S) 15(ptr)

-              65:             TypePointer Output 8(fvec3)

-    66(OutColor):     65(ptr) Variable Output

-              67:     14(int) Constant 0

-              68:             TypeInt 32 0

-              69:     68(int) Constant 0

-              96:             TypeVector 7(float) 2

-             110:     68(int) Constant 2

-             142:    7(float) Constant 0

-             143:    8(fvec3) ConstantComposite 142 142 142

-             144:             TypePointer Function 9(S)

-             149:             TypePointer UniformConstant 14(int)

-          150(u):    149(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 3

+            8(S):             TypeStruct 7(fvec3)

+               9:             TypeFunction 2 8(S)

+              13:             TypeInt 32 1

+              14:             TypePointer Function 13(int)

+              15:             TypeFunction 2 8(S) 14(ptr)

+              64:             TypePointer Output 7(fvec3)

+    65(OutColor):     64(ptr) Variable Output

+              66:     13(int) Constant 0

+              67:             TypeInt 32 0

+              68:     67(int) Constant 0

+              95:             TypeVector 6(float) 2

+             109:     67(int) Constant 2

+             141:    6(float) Constant 0

+             142:    7(fvec3) ConstantComposite 141 141 141

+             143:             TypePointer Function 8(S)

+             148:             TypePointer UniformConstant 13(int)

+          149(u):    148(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-          145(s):    144(ptr) Variable Function

-      151(param):     15(ptr) Variable Function

-      155(param):     15(ptr) Variable Function

-      159(param):     15(ptr) Variable Function

-      163(param):     15(ptr) Variable Function

-      167(param):     15(ptr) Variable Function

-      171(param):     15(ptr) Variable Function

-      175(param):     15(ptr) Variable Function

-      179(param):     15(ptr) Variable Function

-      183(param):     15(ptr) Variable Function

-      187(param):     15(ptr) Variable Function

-      191(param):     15(ptr) Variable Function

-      195(param):     15(ptr) Variable Function

-                              Store 66(OutColor) 143

-             146:        9(S) Load 145(s)

-             147:           2 FunctionCall 12(GetColor1(struct-S-vf31;) 146

-             148:        9(S) Load 145(s)

-             152:     14(int) Load 150(u)

-                              Store 151(param) 152

-             153:           2 FunctionCall 19(GetColor2(struct-S-vf31;i1;) 148 151(param)

-             154:        9(S) Load 145(s)

-             156:     14(int) Load 150(u)

-                              Store 155(param) 156

-             157:           2 FunctionCall 23(GetColor3(struct-S-vf31;i1;) 154 155(param)

-             158:        9(S) Load 145(s)

-             160:     14(int) Load 150(u)

-                              Store 159(param) 160

-             161:           2 FunctionCall 27(GetColor4(struct-S-vf31;i1;) 158 159(param)

-             162:        9(S) Load 145(s)

-             164:     14(int) Load 150(u)

-                              Store 163(param) 164

-             165:           2 FunctionCall 31(GetColor5(struct-S-vf31;i1;) 162 163(param)

-             166:        9(S) Load 145(s)

-             168:     14(int) Load 150(u)

-                              Store 167(param) 168

-             169:           2 FunctionCall 35(GetColor6(struct-S-vf31;i1;) 166 167(param)

-             170:        9(S) Load 145(s)

-             172:     14(int) Load 150(u)

-                              Store 171(param) 172

-             173:           2 FunctionCall 39(GetColor7(struct-S-vf31;i1;) 170 171(param)

-             174:        9(S) Load 145(s)

-             176:     14(int) Load 150(u)

-                              Store 175(param) 176

-             177:           2 FunctionCall 43(GetColor8(struct-S-vf31;i1;) 174 175(param)

-             178:        9(S) Load 145(s)

-             180:     14(int) Load 150(u)

-                              Store 179(param) 180

-             181:           2 FunctionCall 47(GetColor9(struct-S-vf31;i1;) 178 179(param)

-             182:        9(S) Load 145(s)

-             184:     14(int) Load 150(u)

-                              Store 183(param) 184

-             185:           2 FunctionCall 51(GetColor10(struct-S-vf31;i1;) 182 183(param)

-             186:        9(S) Load 145(s)

-             188:     14(int) Load 150(u)

-                              Store 187(param) 188

-             189:           2 FunctionCall 55(GetColor11(struct-S-vf31;i1;) 186 187(param)

-             190:        9(S) Load 145(s)

-             192:     14(int) Load 150(u)

-                              Store 191(param) 192

-             193:           2 FunctionCall 59(GetColor12(struct-S-vf31;i1;) 190 191(param)

-             194:        9(S) Load 145(s)

-             196:     14(int) Load 150(u)

-                              Store 195(param) 196

-             197:           2 FunctionCall 63(GetColor13(struct-S-vf31;i1;) 194 195(param)

-                              Branch 6

-               6:             Label

+          144(s):    143(ptr) Variable Function

+      150(param):     14(ptr) Variable Function

+      154(param):     14(ptr) Variable Function

+      158(param):     14(ptr) Variable Function

+      162(param):     14(ptr) Variable Function

+      166(param):     14(ptr) Variable Function

+      170(param):     14(ptr) Variable Function

+      174(param):     14(ptr) Variable Function

+      178(param):     14(ptr) Variable Function

+      182(param):     14(ptr) Variable Function

+      186(param):     14(ptr) Variable Function

+      190(param):     14(ptr) Variable Function

+      194(param):     14(ptr) Variable Function

+                              Store 65(OutColor) 142

+             145:        8(S) Load 144(s)

+             146:           2 FunctionCall 11(GetColor1(struct-S-vf31;) 145

+             147:        8(S) Load 144(s)

+             151:     13(int) Load 149(u)

+                              Store 150(param) 151

+             152:           2 FunctionCall 18(GetColor2(struct-S-vf31;i1;) 147 150(param)

+             153:        8(S) Load 144(s)

+             155:     13(int) Load 149(u)

+                              Store 154(param) 155

+             156:           2 FunctionCall 22(GetColor3(struct-S-vf31;i1;) 153 154(param)

+             157:        8(S) Load 144(s)

+             159:     13(int) Load 149(u)

+                              Store 158(param) 159

+             160:           2 FunctionCall 26(GetColor4(struct-S-vf31;i1;) 157 158(param)

+             161:        8(S) Load 144(s)

+             163:     13(int) Load 149(u)

+                              Store 162(param) 163

+             164:           2 FunctionCall 30(GetColor5(struct-S-vf31;i1;) 161 162(param)

+             165:        8(S) Load 144(s)

+             167:     13(int) Load 149(u)

+                              Store 166(param) 167

+             168:           2 FunctionCall 34(GetColor6(struct-S-vf31;i1;) 165 166(param)

+             169:        8(S) Load 144(s)

+             171:     13(int) Load 149(u)

+                              Store 170(param) 171

+             172:           2 FunctionCall 38(GetColor7(struct-S-vf31;i1;) 169 170(param)

+             173:        8(S) Load 144(s)

+             175:     13(int) Load 149(u)

+                              Store 174(param) 175

+             176:           2 FunctionCall 42(GetColor8(struct-S-vf31;i1;) 173 174(param)

+             177:        8(S) Load 144(s)

+             179:     13(int) Load 149(u)

+                              Store 178(param) 179

+             180:           2 FunctionCall 46(GetColor9(struct-S-vf31;i1;) 177 178(param)

+             181:        8(S) Load 144(s)

+             183:     13(int) Load 149(u)

+                              Store 182(param) 183

+             184:           2 FunctionCall 50(GetColor10(struct-S-vf31;i1;) 181 182(param)

+             185:        8(S) Load 144(s)

+             187:     13(int) Load 149(u)

+                              Store 186(param) 187

+             188:           2 FunctionCall 54(GetColor11(struct-S-vf31;i1;) 185 186(param)

+             189:        8(S) Load 144(s)

+             191:     13(int) Load 149(u)

+                              Store 190(param) 191

+             192:           2 FunctionCall 58(GetColor12(struct-S-vf31;i1;) 189 190(param)

+             193:        8(S) Load 144(s)

+             195:     13(int) Load 149(u)

+                              Store 194(param) 195

+             196:           2 FunctionCall 62(GetColor13(struct-S-vf31;i1;) 193 194(param)

                               Return

                               FunctionEnd

-12(GetColor1(struct-S-vf31;):           2 Function None 10

-           11(i):        9(S) FunctionParameter

-              13:             Label

-              70:    7(float) CompositeExtract 11(i) 0 0

-              71:    8(fvec3) Load 66(OutColor)

-              72:    8(fvec3) CompositeConstruct 70 70 70

-              73:    8(fvec3) FAdd 71 72

-                              Store 66(OutColor) 73

+11(GetColor1(struct-S-vf31;):           2 Function None 9

+           10(i):        8(S) FunctionParameter

+              12:             Label

+              69:    6(float) CompositeExtract 10(i) 0 0

+              70:    7(fvec3) Load 65(OutColor)

+              71:    7(fvec3) CompositeConstruct 69 69 69

+              72:    7(fvec3) FAdd 70 71

+                              Store 65(OutColor) 72

                               Return

                               FunctionEnd

-19(GetColor2(struct-S-vf31;i1;):           2 Function None 16

-           17(i):        9(S) FunctionParameter

-        18(comp):     15(ptr) FunctionParameter

-              20:             Label

-              74:     14(int) Load 18(comp)

-              75:    8(fvec3) CompositeExtract 17(i) 0

-              76:    7(float) VectorExtractDynamic 75 74

-              77:    8(fvec3) Load 66(OutColor)

-              78:    8(fvec3) CompositeConstruct 76 76 76

-              79:    8(fvec3) FAdd 77 78

-                              Store 66(OutColor) 79

+18(GetColor2(struct-S-vf31;i1;):           2 Function None 15

+           16(i):        8(S) FunctionParameter

+        17(comp):     14(ptr) FunctionParameter

+              19:             Label

+              73:     13(int) Load 17(comp)

+              74:    7(fvec3) CompositeExtract 16(i) 0

+              75:    6(float) VectorExtractDynamic 74 73

+              76:    7(fvec3) Load 65(OutColor)

+              77:    7(fvec3) CompositeConstruct 75 75 75

+              78:    7(fvec3) FAdd 76 77

+                              Store 65(OutColor) 78

                               Return

                               FunctionEnd

-23(GetColor3(struct-S-vf31;i1;):           2 Function None 16

-           21(i):        9(S) FunctionParameter

-        22(comp):     15(ptr) FunctionParameter

-              24:             Label

-              80:     14(int) Load 22(comp)

-              81:    8(fvec3) CompositeExtract 21(i) 0

-              82:    7(float) VectorExtractDynamic 81 80

-              83:    8(fvec3) Load 66(OutColor)

-              84:    8(fvec3) CompositeConstruct 82 82 82

-              85:    8(fvec3) FAdd 83 84

-                              Store 66(OutColor) 85

+22(GetColor3(struct-S-vf31;i1;):           2 Function None 15

+           20(i):        8(S) FunctionParameter

+        21(comp):     14(ptr) FunctionParameter

+              23:             Label

+              79:     13(int) Load 21(comp)

+              80:    7(fvec3) CompositeExtract 20(i) 0

+              81:    6(float) VectorExtractDynamic 80 79

+              82:    7(fvec3) Load 65(OutColor)

+              83:    7(fvec3) CompositeConstruct 81 81 81

+              84:    7(fvec3) FAdd 82 83

+                              Store 65(OutColor) 84

                               Return

                               FunctionEnd

-27(GetColor4(struct-S-vf31;i1;):           2 Function None 16

-           25(i):        9(S) FunctionParameter

-        26(comp):     15(ptr) FunctionParameter

-              28:             Label

-              86:     14(int) Load 26(comp)

-              87:    8(fvec3) CompositeExtract 25(i) 0

-              88:    7(float) VectorExtractDynamic 87 86

-              89:    8(fvec3) Load 66(OutColor)

-              90:    8(fvec3) CompositeConstruct 88 88 88

-              91:    8(fvec3) FAdd 89 90

-                              Store 66(OutColor) 91

+26(GetColor4(struct-S-vf31;i1;):           2 Function None 15

+           24(i):        8(S) FunctionParameter

+        25(comp):     14(ptr) FunctionParameter

+              27:             Label

+              85:     13(int) Load 25(comp)

+              86:    7(fvec3) CompositeExtract 24(i) 0

+              87:    6(float) VectorExtractDynamic 86 85

+              88:    7(fvec3) Load 65(OutColor)

+              89:    7(fvec3) CompositeConstruct 87 87 87

+              90:    7(fvec3) FAdd 88 89

+                              Store 65(OutColor) 90

                               Return

                               FunctionEnd

-31(GetColor5(struct-S-vf31;i1;):           2 Function None 16

-           29(i):        9(S) FunctionParameter

-        30(comp):     15(ptr) FunctionParameter

-              32:             Label

-              92:    8(fvec3) CompositeExtract 29(i) 0

-              93:    8(fvec3) Load 66(OutColor)

-              94:    8(fvec3) FAdd 93 92

-                              Store 66(OutColor) 94

+30(GetColor5(struct-S-vf31;i1;):           2 Function None 15

+           28(i):        8(S) FunctionParameter

+        29(comp):     14(ptr) FunctionParameter

+              31:             Label

+              91:    7(fvec3) CompositeExtract 28(i) 0

+              92:    7(fvec3) Load 65(OutColor)

+              93:    7(fvec3) FAdd 92 91

+                              Store 65(OutColor) 93

                               Return

                               FunctionEnd

-35(GetColor6(struct-S-vf31;i1;):           2 Function None 16

-           33(i):        9(S) FunctionParameter

-        34(comp):     15(ptr) FunctionParameter

-              36:             Label

-              95:     14(int) Load 34(comp)

-              97:    8(fvec3) CompositeExtract 33(i) 0

-              98:   96(fvec2) VectorShuffle 97 97 1 0

-              99:    7(float) VectorExtractDynamic 98 95

-             100:    8(fvec3) Load 66(OutColor)

-             101:    8(fvec3) CompositeConstruct 99 99 99

-             102:    8(fvec3) FAdd 100 101

-                              Store 66(OutColor) 102

+34(GetColor6(struct-S-vf31;i1;):           2 Function None 15

+           32(i):        8(S) FunctionParameter

+        33(comp):     14(ptr) FunctionParameter

+              35:             Label

+              94:     13(int) Load 33(comp)

+              96:    7(fvec3) CompositeExtract 32(i) 0

+              97:   95(fvec2) VectorShuffle 96 96 1 0

+              98:    6(float) VectorExtractDynamic 97 94

+              99:    7(fvec3) Load 65(OutColor)

+             100:    7(fvec3) CompositeConstruct 98 98 98

+             101:    7(fvec3) FAdd 99 100

+                              Store 65(OutColor) 101

                               Return

                               FunctionEnd

-39(GetColor7(struct-S-vf31;i1;):           2 Function None 16

-           37(i):        9(S) FunctionParameter

-        38(comp):     15(ptr) FunctionParameter

-              40:             Label

-             103:    8(fvec3) CompositeExtract 37(i) 0

-             104:   96(fvec2) VectorShuffle 103 103 0 1

-             105:    8(fvec3) Load 66(OutColor)

-             106:   96(fvec2) VectorShuffle 105 105 0 1

-             107:   96(fvec2) FAdd 106 104

-             108:    8(fvec3) Load 66(OutColor)

-             109:    8(fvec3) VectorShuffle 108 107 3 4 2

-                              Store 66(OutColor) 109

+38(GetColor7(struct-S-vf31;i1;):           2 Function None 15

+           36(i):        8(S) FunctionParameter

+        37(comp):     14(ptr) FunctionParameter

+              39:             Label

+             102:    7(fvec3) CompositeExtract 36(i) 0

+             103:   95(fvec2) VectorShuffle 102 102 0 1

+             104:    7(fvec3) Load 65(OutColor)

+             105:   95(fvec2) VectorShuffle 104 104 0 1

+             106:   95(fvec2) FAdd 105 103

+             107:    7(fvec3) Load 65(OutColor)

+             108:    7(fvec3) VectorShuffle 107 106 3 4 2

+                              Store 65(OutColor) 108

                               Return

                               FunctionEnd

-43(GetColor8(struct-S-vf31;i1;):           2 Function None 16

-           41(i):        9(S) FunctionParameter

-        42(comp):     15(ptr) FunctionParameter

-              44:             Label

-             111:    7(float) CompositeExtract 41(i) 0 2

-             112:    8(fvec3) Load 66(OutColor)

-             113:    8(fvec3) CompositeConstruct 111 111 111

-             114:    8(fvec3) FAdd 112 113

-                              Store 66(OutColor) 114

+42(GetColor8(struct-S-vf31;i1;):           2 Function None 15

+           40(i):        8(S) FunctionParameter

+        41(comp):     14(ptr) FunctionParameter

+              43:             Label

+             110:    6(float) CompositeExtract 40(i) 0 2

+             111:    7(fvec3) Load 65(OutColor)

+             112:    7(fvec3) CompositeConstruct 110 110 110

+             113:    7(fvec3) FAdd 111 112

+                              Store 65(OutColor) 113

                               Return

                               FunctionEnd

-47(GetColor9(struct-S-vf31;i1;):           2 Function None 16

-           45(i):        9(S) FunctionParameter

-        46(comp):     15(ptr) FunctionParameter

-              48:             Label

-             115:    8(fvec3) CompositeExtract 45(i) 0

-             116:    8(fvec3) Load 66(OutColor)

-             117:    8(fvec3) VectorShuffle 116 116 2 0 1

-             118:    8(fvec3) FAdd 117 115

-             119:    8(fvec3) Load 66(OutColor)

-             120:    8(fvec3) VectorShuffle 119 118 4 5 3

-                              Store 66(OutColor) 120

+46(GetColor9(struct-S-vf31;i1;):           2 Function None 15

+           44(i):        8(S) FunctionParameter

+        45(comp):     14(ptr) FunctionParameter

+              47:             Label

+             114:    7(fvec3) CompositeExtract 44(i) 0

+             115:    7(fvec3) Load 65(OutColor)

+             116:    7(fvec3) VectorShuffle 115 115 2 0 1

+             117:    7(fvec3) FAdd 116 114

+             118:    7(fvec3) Load 65(OutColor)

+             119:    7(fvec3) VectorShuffle 118 117 4 5 3

+                              Store 65(OutColor) 119

                               Return

                               FunctionEnd

-51(GetColor10(struct-S-vf31;i1;):           2 Function None 16

-           49(i):        9(S) FunctionParameter

-        50(comp):     15(ptr) FunctionParameter

-              52:             Label

-             121:    8(fvec3) CompositeExtract 49(i) 0

-             122:   96(fvec2) VectorShuffle 121 121 0 1

-             123:    8(fvec3) Load 66(OutColor)

-             124:   96(fvec2) VectorShuffle 123 123 2 1

-             125:   96(fvec2) FAdd 124 122

-             126:    8(fvec3) Load 66(OutColor)

-             127:    8(fvec3) VectorShuffle 126 125 0 4 3

-                              Store 66(OutColor) 127

+50(GetColor10(struct-S-vf31;i1;):           2 Function None 15

+           48(i):        8(S) FunctionParameter

+        49(comp):     14(ptr) FunctionParameter

+              51:             Label

+             120:    7(fvec3) CompositeExtract 48(i) 0

+             121:   95(fvec2) VectorShuffle 120 120 0 1

+             122:    7(fvec3) Load 65(OutColor)

+             123:   95(fvec2) VectorShuffle 122 122 2 1

+             124:   95(fvec2) FAdd 123 121

+             125:    7(fvec3) Load 65(OutColor)

+             126:    7(fvec3) VectorShuffle 125 124 0 4 3

+                              Store 65(OutColor) 126

                               Return

                               FunctionEnd

-55(GetColor11(struct-S-vf31;i1;):           2 Function None 16

-           53(i):        9(S) FunctionParameter

-        54(comp):     15(ptr) FunctionParameter

-              56:             Label

-             128:    8(fvec3) CompositeExtract 53(i) 0

-             129:   96(fvec2) VectorShuffle 128 128 0 1

-             130:    8(fvec3) Load 66(OutColor)

-             131:   96(fvec2) VectorShuffle 130 130 0 2

-             132:   96(fvec2) FAdd 131 129

-             133:    8(fvec3) Load 66(OutColor)

-             134:    8(fvec3) VectorShuffle 133 132 3 1 4

-                              Store 66(OutColor) 134

+54(GetColor11(struct-S-vf31;i1;):           2 Function None 15

+           52(i):        8(S) FunctionParameter

+        53(comp):     14(ptr) FunctionParameter

+              55:             Label

+             127:    7(fvec3) CompositeExtract 52(i) 0

+             128:   95(fvec2) VectorShuffle 127 127 0 1

+             129:    7(fvec3) Load 65(OutColor)

+             130:   95(fvec2) VectorShuffle 129 129 0 2

+             131:   95(fvec2) FAdd 130 128

+             132:    7(fvec3) Load 65(OutColor)

+             133:    7(fvec3) VectorShuffle 132 131 3 1 4

+                              Store 65(OutColor) 133

                               Return

                               FunctionEnd

-59(GetColor12(struct-S-vf31;i1;):           2 Function None 16

-           57(i):        9(S) FunctionParameter

-        58(comp):     15(ptr) FunctionParameter

-              60:             Label

-             135:     14(int) Load 58(comp)

-             136:    7(float) CompositeExtract 57(i) 0 0

-             137:    8(fvec3) Load 66(OutColor)

-             138:    7(float) VectorExtractDynamic 137 135

-             139:    7(float) FAdd 138 136

-             140:    8(fvec3) Load 66(OutColor)

-             141:    8(fvec3) VectorInsertDynamic 140 139 135

-                              Store 66(OutColor) 141

+58(GetColor12(struct-S-vf31;i1;):           2 Function None 15

+           56(i):        8(S) FunctionParameter

+        57(comp):     14(ptr) FunctionParameter

+              59:             Label

+             134:     13(int) Load 57(comp)

+             135:    6(float) CompositeExtract 56(i) 0 0

+             136:    7(fvec3) Load 65(OutColor)

+             137:    6(float) VectorExtractDynamic 136 134

+             138:    6(float) FAdd 137 135

+             139:    7(fvec3) Load 65(OutColor)

+             140:    7(fvec3) VectorInsertDynamic 139 138 134

+                              Store 65(OutColor) 140

                               Return

                               FunctionEnd

-63(GetColor13(struct-S-vf31;i1;):           2 Function None 16

-           61(i):        9(S) FunctionParameter

-        62(comp):     15(ptr) FunctionParameter

-              64:             Label

+62(GetColor13(struct-S-vf31;i1;):           2 Function None 15

+           60(i):        8(S) FunctionParameter

+        61(comp):     14(ptr) FunctionParameter

+              63:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.always-discard.frag.out b/Test/baseResults/spv.always-discard.frag.out
index ffcd1a9..24b6ec5 100755
--- a/Test/baseResults/spv.always-discard.frag.out
+++ b/Test/baseResults/spv.always-discard.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 81

+// Id's are bound by 80

 

                               Source GLSL 110

                               Capability Shader

@@ -14,119 +14,117 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "white"

-                              Name 13  "black"

-                              Name 16  "color"

-                              Name 19  "x"

-                              Name 22  "tex_coord"

-                              Name 28  "y"

-                              Name 33  "radius"

-                              Name 56  "gl_FragColor"

-                              Decorate 22(tex_coord) Smooth

-                              Decorate 56(gl_FragColor) BuiltIn FragColor

+                              Name 9  "white"

+                              Name 12  "black"

+                              Name 15  "color"

+                              Name 18  "x"

+                              Name 21  "tex_coord"

+                              Name 27  "y"

+                              Name 32  "radius"

+                              Name 55  "gl_FragColor"

+                              Decorate 21(tex_coord) Smooth

+                              Decorate 55(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:    7(float) Constant 1065353216

-              12:    8(fvec4) ConstantComposite 11 11 11 11

-              14:    7(float) Constant 1045220557

-              15:    8(fvec4) ConstantComposite 14 14 14 14

-              18:             TypePointer Function 7(float)

-              20:             TypeVector 7(float) 2

-              21:             TypePointer Input 20(fvec2)

-   22(tex_coord):     21(ptr) Variable Input

-              25:    7(float) Constant 1073741824

-              43:             TypeBool

-              48:    7(float) Constant 1066192077

-              55:             TypePointer Output 8(fvec4)

-56(gl_FragColor):     55(ptr) Variable Output

-              59:    7(float) Constant 1067030938

-              68:    7(float) Constant 1061158912

-              73:    7(float) Constant 1098907648

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:    6(float) Constant 1065353216

+              11:    7(fvec4) ConstantComposite 10 10 10 10

+              13:    6(float) Constant 1045220557

+              14:    7(fvec4) ConstantComposite 13 13 13 13

+              17:             TypePointer Function 6(float)

+              19:             TypeVector 6(float) 2

+              20:             TypePointer Input 19(fvec2)

+   21(tex_coord):     20(ptr) Variable Input

+              24:    6(float) Constant 1073741824

+              42:             TypeBool

+              47:    6(float) Constant 1066192077

+              54:             TypePointer Output 7(fvec4)

+55(gl_FragColor):     54(ptr) Variable Output

+              58:    6(float) Constant 1067030938

+              67:    6(float) Constant 1061158912

+              72:    6(float) Constant 1098907648

          4(main):           2 Function None 3

                5:             Label

-       10(white):      9(ptr) Variable Function

-       13(black):      9(ptr) Variable Function

-       16(color):      9(ptr) Variable Function

-           19(x):     18(ptr) Variable Function

-           28(y):     18(ptr) Variable Function

-      33(radius):     18(ptr) Variable Function

-                              Store 10(white) 12

-                              Store 13(black) 15

-              17:    8(fvec4) Load 10(white)

-                              Store 16(color) 17

-              23:   20(fvec2) Load 22(tex_coord)

-              24:    7(float) CompositeExtract 23 0

-              26:    7(float) FMul 24 25

-              27:    7(float) FSub 26 11

-                              Store 19(x) 27

-              29:   20(fvec2) Load 22(tex_coord)

-              30:    7(float) CompositeExtract 29 1

-              31:    7(float) FMul 30 25

-              32:    7(float) FSub 31 11

-                              Store 28(y) 32

-              34:    7(float) Load 19(x)

-              35:    7(float) Load 19(x)

-              36:    7(float) FMul 34 35

-              37:    7(float) Load 28(y)

-              38:    7(float) Load 28(y)

-              39:    7(float) FMul 37 38

-              40:    7(float) FAdd 36 39

-              41:    7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40

-                              Store 33(radius) 41

-              42:    7(float) Load 33(radius)

-              44:    43(bool) FOrdGreaterThan 42 11

-                              SelectionMerge 46 None

-                              BranchConditional 44 45 46

-              45:               Label

-              47:    7(float)   Load 33(radius)

-              49:    43(bool)   FOrdGreaterThan 47 48

-                                SelectionMerge 51 None

-                                BranchConditional 49 50 51

-              50:                 Label

-              52:    8(fvec4)     Load 16(color)

-              53:    8(fvec4)     CompositeConstruct 11 11 11 11

-              54:    8(fvec4)     FAdd 52 53

-                                  Store 16(color) 54

-                                  Branch 51

-              51:               Label

-              57:    8(fvec4)   Load 16(color)

-                                Store 56(gl_FragColor) 57

-              58:    7(float)   Load 33(radius)

-              60:    43(bool)   FOrdGreaterThan 58 59

-                                SelectionMerge 62 None

-                                BranchConditional 60 61 62

-              61:                 Label

-              63:    8(fvec4)     Load 16(color)

-              64:    8(fvec4)     CompositeConstruct 11 11 11 11

-              65:    8(fvec4)     FAdd 63 64

-                                  Store 16(color) 65

-                                  Branch 62

-              62:               Label

-                                Branch 46

-              46:             Label

+        9(white):      8(ptr) Variable Function

+       12(black):      8(ptr) Variable Function

+       15(color):      8(ptr) Variable Function

+           18(x):     17(ptr) Variable Function

+           27(y):     17(ptr) Variable Function

+      32(radius):     17(ptr) Variable Function

+                              Store 9(white) 11

+                              Store 12(black) 14

+              16:    7(fvec4) Load 9(white)

+                              Store 15(color) 16

+              22:   19(fvec2) Load 21(tex_coord)

+              23:    6(float) CompositeExtract 22 0

+              25:    6(float) FMul 23 24

+              26:    6(float) FSub 25 10

+                              Store 18(x) 26

+              28:   19(fvec2) Load 21(tex_coord)

+              29:    6(float) CompositeExtract 28 1

+              30:    6(float) FMul 29 24

+              31:    6(float) FSub 30 10

+                              Store 27(y) 31

+              33:    6(float) Load 18(x)

+              34:    6(float) Load 18(x)

+              35:    6(float) FMul 33 34

+              36:    6(float) Load 27(y)

+              37:    6(float) Load 27(y)

+              38:    6(float) FMul 36 37

+              39:    6(float) FAdd 35 38

+              40:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 39

+                              Store 32(radius) 40

+              41:    6(float) Load 32(radius)

+              43:    42(bool) FOrdGreaterThan 41 10

+                              SelectionMerge 45 None

+                              BranchConditional 43 44 45

+              44:               Label

+              46:    6(float)   Load 32(radius)

+              48:    42(bool)   FOrdGreaterThan 46 47

+                                SelectionMerge 50 None

+                                BranchConditional 48 49 50

+              49:                 Label

+              51:    7(fvec4)     Load 15(color)

+              52:    7(fvec4)     CompositeConstruct 10 10 10 10

+              53:    7(fvec4)     FAdd 51 52

+                                  Store 15(color) 53

+                                  Branch 50

+              50:               Label

+              56:    7(fvec4)   Load 15(color)

+                                Store 55(gl_FragColor) 56

+              57:    6(float)   Load 32(radius)

+              59:    42(bool)   FOrdGreaterThan 57 58

+                                SelectionMerge 61 None

+                                BranchConditional 59 60 61

+              60:                 Label

+              62:    7(fvec4)     Load 15(color)

+              63:    7(fvec4)     CompositeConstruct 10 10 10 10

+              64:    7(fvec4)     FAdd 62 63

+                                  Store 15(color) 64

+                                  Branch 61

+              61:               Label

+                                Branch 45

+              45:             Label

                               Kill

-              66:             Label

-              67:    7(float) Load 33(radius)

-              69:    43(bool) FOrdGreaterThanEqual 67 68

-                              SelectionMerge 71 None

-                              BranchConditional 69 70 71

-              70:               Label

-              72:    7(float)   Load 33(radius)

-              74:    7(float)   ExtInst 1(GLSL.std.450) 26(Pow) 72 73

-              75:    7(float)   FDiv 74 25

-              76:    7(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 75

-              77:    8(fvec4)   Load 16(color)

-              78:    8(fvec4)   CompositeConstruct 76 76 76 76

-              79:    8(fvec4)   FSub 77 78

-                                Store 16(color) 79

-                                Branch 71

-              71:             Label

-              80:    8(fvec4) Load 16(color)

-                              Store 56(gl_FragColor) 80

-                              Branch 6

-               6:             Label

+              65:             Label

+              66:    6(float) Load 32(radius)

+              68:    42(bool) FOrdGreaterThanEqual 66 67

+                              SelectionMerge 70 None

+                              BranchConditional 68 69 70

+              69:               Label

+              71:    6(float)   Load 32(radius)

+              73:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 71 72

+              74:    6(float)   FDiv 73 24

+              75:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 74

+              76:    7(fvec4)   Load 15(color)

+              77:    7(fvec4)   CompositeConstruct 75 75 75 75

+              78:    7(fvec4)   FSub 76 77

+                                Store 15(color) 78

+                                Branch 70

+              70:             Label

+              79:    7(fvec4) Load 15(color)

+                              Store 55(gl_FragColor) 79

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.always-discard2.frag.out b/Test/baseResults/spv.always-discard2.frag.out
index 767558e..e2d03b4 100755
--- a/Test/baseResults/spv.always-discard2.frag.out
+++ b/Test/baseResults/spv.always-discard2.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 37

+// Id's are bound by 36

 

                               Source GLSL 110

                               Capability Shader

@@ -14,53 +14,51 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "white"

-                              Name 13  "black"

-                              Name 16  "color"

-                              Name 19  "x"

-                              Name 22  "tex_coord"

-                              Name 28  "y"

-                              Name 35  "gl_FragColor"

-                              Decorate 22(tex_coord) Smooth

-                              Decorate 35(gl_FragColor) BuiltIn FragColor

+                              Name 9  "white"

+                              Name 12  "black"

+                              Name 15  "color"

+                              Name 18  "x"

+                              Name 21  "tex_coord"

+                              Name 27  "y"

+                              Name 34  "gl_FragColor"

+                              Decorate 21(tex_coord) Smooth

+                              Decorate 34(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:    7(float) Constant 1065353216

-              12:    8(fvec4) ConstantComposite 11 11 11 11

-              14:    7(float) Constant 1045220557

-              15:    8(fvec4) ConstantComposite 14 14 14 14

-              18:             TypePointer Function 7(float)

-              20:             TypeVector 7(float) 2

-              21:             TypePointer Input 20(fvec2)

-   22(tex_coord):     21(ptr) Variable Input

-              25:    7(float) Constant 1073741824

-              34:             TypePointer Output 8(fvec4)

-35(gl_FragColor):     34(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:    6(float) Constant 1065353216

+              11:    7(fvec4) ConstantComposite 10 10 10 10

+              13:    6(float) Constant 1045220557

+              14:    7(fvec4) ConstantComposite 13 13 13 13

+              17:             TypePointer Function 6(float)

+              19:             TypeVector 6(float) 2

+              20:             TypePointer Input 19(fvec2)

+   21(tex_coord):     20(ptr) Variable Input

+              24:    6(float) Constant 1073741824

+              33:             TypePointer Output 7(fvec4)

+34(gl_FragColor):     33(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-       10(white):      9(ptr) Variable Function

-       13(black):      9(ptr) Variable Function

-       16(color):      9(ptr) Variable Function

-           19(x):     18(ptr) Variable Function

-           28(y):     18(ptr) Variable Function

-                              Store 10(white) 12

-                              Store 13(black) 15

-              17:    8(fvec4) Load 10(white)

-                              Store 16(color) 17

-              23:   20(fvec2) Load 22(tex_coord)

-              24:    7(float) CompositeExtract 23 0

-              26:    7(float) FMul 24 25

-              27:    7(float) FSub 26 11

-                              Store 19(x) 27

-              29:   20(fvec2) Load 22(tex_coord)

-              30:    7(float) CompositeExtract 29 1

-              31:    7(float) FMul 30 25

-              32:    7(float) FSub 31 11

-                              Store 28(y) 32

+        9(white):      8(ptr) Variable Function

+       12(black):      8(ptr) Variable Function

+       15(color):      8(ptr) Variable Function

+           18(x):     17(ptr) Variable Function

+           27(y):     17(ptr) Variable Function

+                              Store 9(white) 11

+                              Store 12(black) 14

+              16:    7(fvec4) Load 9(white)

+                              Store 15(color) 16

+              22:   19(fvec2) Load 21(tex_coord)

+              23:    6(float) CompositeExtract 22 0

+              25:    6(float) FMul 23 24

+              26:    6(float) FSub 25 10

+                              Store 18(x) 26

+              28:   19(fvec2) Load 21(tex_coord)

+              29:    6(float) CompositeExtract 28 1

+              30:    6(float) FMul 29 24

+              31:    6(float) FSub 30 10

+                              Store 27(y) 31

                               Kill

-               6:             Label

-                              Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.atomic.comp.out b/Test/baseResults/spv.atomic.comp.out
index d8650e7..359d8da 100755
--- a/Test/baseResults/spv.atomic.comp.out
+++ b/Test/baseResults/spv.atomic.comp.out
@@ -8,7 +8,7 @@
 TBD functionality: Is atomic_uint an opaque handle in the uniform storage class, or an addresses in the atomic storage class?

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 75

+// Id's are bound by 74

 

                               Source ESSL 310

                               Capability Shader

@@ -16,113 +16,111 @@
                               MemoryModel Logical GLSL450

                               EntryPoint GLCompute 4  "main"

                               Name 4  "main"

-                              Name 11  "func(au1;"

-                              Name 10  "c"

-                              Name 13  "atoms("

-                              Name 22  "counter"

-                              Name 23  "param"

-                              Name 26  "val"

-                              Name 30  "countArr"

-                              Name 39  "origi"

-                              Name 41  "atomi"

-                              Name 45  "origu"

-                              Name 47  "atomu"

-                              Name 49  "value"

-                              Name 72  "arrX"

-                              Name 73  "arrY"

-                              Name 74  "arrZ"

-                              Decorate 22(counter) Binding 0

-                              Decorate 30(countArr) Binding 0

-                              Decorate 72(arrX) NoStaticUse

-                              Decorate 73(arrY) NoStaticUse

-                              Decorate 74(arrZ) NoStaticUse

+                              Name 10  "func(au1;"

+                              Name 9  "c"

+                              Name 12  "atoms("

+                              Name 21  "counter"

+                              Name 22  "param"

+                              Name 25  "val"

+                              Name 29  "countArr"

+                              Name 38  "origi"

+                              Name 40  "atomi"

+                              Name 44  "origu"

+                              Name 46  "atomu"

+                              Name 48  "value"

+                              Name 71  "arrX"

+                              Name 72  "arrY"

+                              Name 73  "arrZ"

+                              Decorate 21(counter) Binding 0

+                              Decorate 29(countArr) Binding 0

+                              Decorate 71(arrX) NoStaticUse

+                              Decorate 72(arrY) NoStaticUse

+                              Decorate 73(arrZ) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 0

-               8:             TypePointer Function 7(int)

-               9:             TypeFunction 7(int) 8(ptr)

-              16:      7(int) Constant 1

-              17:      7(int) Constant 0

-              20:      7(int) Constant 256

-              21:             TypePointer UniformConstant 7(int)

-     22(counter):     21(ptr) Variable UniformConstant

-              27:      7(int) Constant 4

-              28:             TypeArray 7(int) 27

-              29:             TypePointer UniformConstant 28

-    30(countArr):     29(ptr) Variable UniformConstant

-              31:             TypeInt 32 1

-              32:     31(int) Constant 2

-              38:             TypePointer Function 31(int)

-              40:             TypePointer WorkgroupLocal 31(int)

-       41(atomi):     40(ptr) Variable WorkgroupLocal

-              43:     31(int) Constant 3

-              46:             TypePointer WorkgroupLocal 7(int)

-       47(atomu):     46(ptr) Variable WorkgroupLocal

-       49(value):     21(ptr) Variable UniformConstant

-              53:      7(int) Constant 7

-              61:     31(int) Constant 7

-              67:      7(int) Constant 10

-              70:             TypeArray 31(int) 16

-              71:             TypePointer PrivateGlobal 70

-        72(arrX):     71(ptr) Variable PrivateGlobal

-        73(arrY):     71(ptr) Variable PrivateGlobal

-        74(arrZ):     71(ptr) Variable PrivateGlobal

+               6:             TypeInt 32 0

+               7:             TypePointer Function 6(int)

+               8:             TypeFunction 6(int) 7(ptr)

+              15:      6(int) Constant 1

+              16:      6(int) Constant 0

+              19:      6(int) Constant 256

+              20:             TypePointer UniformConstant 6(int)

+     21(counter):     20(ptr) Variable UniformConstant

+              26:      6(int) Constant 4

+              27:             TypeArray 6(int) 26

+              28:             TypePointer UniformConstant 27

+    29(countArr):     28(ptr) Variable UniformConstant

+              30:             TypeInt 32 1

+              31:     30(int) Constant 2

+              37:             TypePointer Function 30(int)

+              39:             TypePointer WorkgroupLocal 30(int)

+       40(atomi):     39(ptr) Variable WorkgroupLocal

+              42:     30(int) Constant 3

+              45:             TypePointer WorkgroupLocal 6(int)

+       46(atomu):     45(ptr) Variable WorkgroupLocal

+       48(value):     20(ptr) Variable UniformConstant

+              52:      6(int) Constant 7

+              60:     30(int) Constant 7

+              66:      6(int) Constant 10

+              69:             TypeArray 30(int) 15

+              70:             TypePointer PrivateGlobal 69

+        71(arrX):     70(ptr) Variable PrivateGlobal

+        72(arrY):     70(ptr) Variable PrivateGlobal

+        73(arrZ):     70(ptr) Variable PrivateGlobal

          4(main):           2 Function None 3

                5:             Label

-       23(param):      8(ptr) Variable Function

-         26(val):      8(ptr) Variable Function

-                              MemoryBarrier 16 20

-              24:      7(int) Load 22(counter)

-                              Store 23(param) 24

-              25:      7(int) FunctionCall 11(func(au1;) 23(param)

-              33:     21(ptr) AccessChain 30(countArr) 32

-              34:      7(int) Load 33

-              35:      7(int) AtomicLoad 34 16 17

-                              Store 26(val) 35

-              36:      7(int) Load 22(counter)

-              37:      7(int) AtomicIDecrement 36 16 17

-                              Branch 6

-               6:             Label

+       22(param):      7(ptr) Variable Function

+         25(val):      7(ptr) Variable Function

+                              MemoryBarrier 15 19

+              23:      6(int) Load 21(counter)

+                              Store 22(param) 23

+              24:      6(int) FunctionCall 10(func(au1;) 22(param)

+              32:     20(ptr) AccessChain 29(countArr) 31

+              33:      6(int) Load 32

+              34:      6(int) AtomicLoad 33 15 16

+                              Store 25(val) 34

+              35:      6(int) Load 21(counter)

+              36:      6(int) AtomicIDecrement 35 15 16

                               Return

                               FunctionEnd

-   11(func(au1;):      7(int) Function None 9

-           10(c):      8(ptr) FunctionParameter

-              12:             Label

-              15:      7(int) Load 10(c)

-              18:      7(int) AtomicIIncrement 15 16 17

-                              ReturnValue 18

+   10(func(au1;):      6(int) Function None 8

+            9(c):      7(ptr) FunctionParameter

+              11:             Label

+              14:      6(int) Load 9(c)

+              17:      6(int) AtomicIIncrement 14 15 16

+                              ReturnValue 17

                               FunctionEnd

-      13(atoms():           2 Function None 3

-              14:             Label

-       39(origi):     38(ptr) Variable Function

-       45(origu):      8(ptr) Variable Function

-              42:     31(int) Load 41(atomi)

-              44:     31(int) AtomicIAdd 42 16 17 43

-                              Store 39(origi) 44

-              48:      7(int) Load 47(atomu)

-              50:      7(int) Load 49(value)

-              51:      7(int) AtomicAnd 48 16 17 50

-                              Store 45(origu) 51

-              52:      7(int) Load 47(atomu)

-              54:      7(int) AtomicOr 52 16 17 53

-                              Store 45(origu) 54

-              55:      7(int) Load 47(atomu)

-              56:      7(int) AtomicXor 55 16 17 53

-                              Store 45(origu) 56

-              57:      7(int) Load 47(atomu)

-              58:      7(int) Load 49(value)

-              59:      7(int) AtomicSMin 57 16 17 58

-                              Store 45(origu) 59

-              60:     31(int) Load 41(atomi)

-              62:     31(int) AtomicSMax 60 16 17 61

-                              Store 39(origi) 62

-              63:     31(int) Load 41(atomi)

-              64:     31(int) Load 39(origi)

-              65:     31(int) AtomicExchange 63 16 17 64

-                              Store 39(origi) 65

-              66:      7(int) Load 47(atomu)

-              68:      7(int) Load 49(value)

-              69:      7(int) AtomicCompareExchange 66 16 17 67 68

-                              Store 45(origu) 69

+      12(atoms():           2 Function None 3

+              13:             Label

+       38(origi):     37(ptr) Variable Function

+       44(origu):      7(ptr) Variable Function

+              41:     30(int) Load 40(atomi)

+              43:     30(int) AtomicIAdd 41 15 16 42

+                              Store 38(origi) 43

+              47:      6(int) Load 46(atomu)

+              49:      6(int) Load 48(value)

+              50:      6(int) AtomicAnd 47 15 16 49

+                              Store 44(origu) 50

+              51:      6(int) Load 46(atomu)

+              53:      6(int) AtomicOr 51 15 16 52

+                              Store 44(origu) 53

+              54:      6(int) Load 46(atomu)

+              55:      6(int) AtomicXor 54 15 16 52

+                              Store 44(origu) 55

+              56:      6(int) Load 46(atomu)

+              57:      6(int) Load 48(value)

+              58:      6(int) AtomicSMin 56 15 16 57

+                              Store 44(origu) 58

+              59:     30(int) Load 40(atomi)

+              61:     30(int) AtomicSMax 59 15 16 60

+                              Store 38(origi) 61

+              62:     30(int) Load 40(atomi)

+              63:     30(int) Load 38(origi)

+              64:     30(int) AtomicExchange 62 15 16 63

+                              Store 38(origi) 64

+              65:      6(int) Load 46(atomu)

+              67:      6(int) Load 48(value)

+              68:      6(int) AtomicCompareExchange 65 15 16 66 67

+                              Store 44(origu) 68

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.conditionalDiscard.frag.out b/Test/baseResults/spv.conditionalDiscard.frag.out
index b5488af..f727174 100755
--- a/Test/baseResults/spv.conditionalDiscard.frag.out
+++ b/Test/baseResults/spv.conditionalDiscard.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 37

+// Id's are bound by 36

 

                               Source GLSL 110

                               Capability Shader

@@ -14,51 +14,49 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "v"

-                              Name 14  "tex"

-                              Name 18  "coord"

-                              Name 35  "gl_FragColor"

-                              Decorate 18(coord) Smooth

-                              Decorate 35(gl_FragColor) BuiltIn FragColor

+                              Name 9  "v"

+                              Name 13  "tex"

+                              Name 17  "coord"

+                              Name 34  "gl_FragColor"

+                              Decorate 17(coord) Smooth

+                              Decorate 34(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypeImage 7(float) 2D sampled format:Unknown

-              12:             TypeSampledImage 11

-              13:             TypePointer UniformConstant 12

-         14(tex):     13(ptr) Variable UniformConstant

-              16:             TypeVector 7(float) 2

-              17:             TypePointer Input 16(fvec2)

-       18(coord):     17(ptr) Variable Input

-              22:    7(float) Constant 1036831949

-              23:    7(float) Constant 1045220557

-              24:    7(float) Constant 1050253722

-              25:    7(float) Constant 1053609165

-              26:    8(fvec4) ConstantComposite 22 23 24 25

-              27:             TypeBool

-              28:             TypeVector 27(bool) 4

-              34:             TypePointer Output 8(fvec4)

-35(gl_FragColor):     34(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypeImage 6(float) 2D sampled format:Unknown

+              11:             TypeSampledImage 10

+              12:             TypePointer UniformConstant 11

+         13(tex):     12(ptr) Variable UniformConstant

+              15:             TypeVector 6(float) 2

+              16:             TypePointer Input 15(fvec2)

+       17(coord):     16(ptr) Variable Input

+              21:    6(float) Constant 1036831949

+              22:    6(float) Constant 1045220557

+              23:    6(float) Constant 1050253722

+              24:    6(float) Constant 1053609165

+              25:    7(fvec4) ConstantComposite 21 22 23 24

+              26:             TypeBool

+              27:             TypeVector 26(bool) 4

+              33:             TypePointer Output 7(fvec4)

+34(gl_FragColor):     33(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-           10(v):      9(ptr) Variable Function

-              15:          12 Load 14(tex)

-              19:   16(fvec2) Load 18(coord)

-              20:    8(fvec4) ImageSampleImplicitLod 15 19

-                              Store 10(v) 20

-              21:    8(fvec4) Load 10(v)

-              29:   28(bvec4) FOrdEqual 21 26

-              30:    27(bool) All 29

-                              SelectionMerge 32 None

-                              BranchConditional 30 31 32

-              31:               Label

+            9(v):      8(ptr) Variable Function

+              14:          11 Load 13(tex)

+              18:   15(fvec2) Load 17(coord)

+              19:    7(fvec4) ImageSampleImplicitLod 14 18

+                              Store 9(v) 19

+              20:    7(fvec4) Load 9(v)

+              28:   27(bvec4) FOrdEqual 20 25

+              29:    26(bool) All 28

+                              SelectionMerge 31 None

+                              BranchConditional 29 30 31

+              30:               Label

                                 Kill

-              32:             Label

-              36:    8(fvec4) Load 10(v)

-                              Store 35(gl_FragColor) 36

-                              Branch 6

-               6:             Label

+              31:             Label

+              35:    7(fvec4) Load 9(v)

+                              Store 34(gl_FragColor) 35

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.conversion.frag.out b/Test/baseResults/spv.conversion.frag.out
index ebe95e0..6de7121 100755
--- a/Test/baseResults/spv.conversion.frag.out
+++ b/Test/baseResults/spv.conversion.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 444

+// Id's are bound by 443

 

                               Source GLSL 130

                               Capability Shader

@@ -14,566 +14,564 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "b"

-                              Name 12  "u_i"

-                              Name 19  "u_f"

-                              Name 26  "b2"

-                              Name 34  "b3"

-                              Name 40  "i_i"

-                              Name 46  "b4"

-                              Name 54  "i_f"

-                              Name 59  "i"

-                              Name 69  "i2"

-                              Name 72  "u_f2"

-                              Name 82  "i3"

-                              Name 85  "u_f3"

-                              Name 95  "i4"

-                              Name 98  "u_f4"

-                              Name 107  "f"

-                              Name 111  "f2"

-                              Name 115  "f3"

-                              Name 119  "f4"

-                              Name 158  "i_i4"

-                              Name 313  "gl_FragColor"

-                              Name 406  "cv2"

-                              Name 407  "cv5"

-                              Name 417  "u_b"

-                              Name 419  "u_b2"

-                              Name 421  "u_b3"

-                              Name 423  "u_b4"

-                              Name 425  "u_i2"

-                              Name 427  "u_i3"

-                              Name 429  "u_i4"

-                              Name 430  "i_b"

-                              Name 431  "i_b2"

-                              Name 432  "i_b3"

-                              Name 433  "i_b4"

-                              Name 435  "i_i2"

-                              Name 437  "i_i3"

-                              Name 439  "i_f2"

-                              Name 441  "i_f3"

-                              Name 443  "i_f4"

-                              Decorate 40(i_i) Flat

-                              Decorate 54(i_f) Smooth

-                              Decorate 158(i_i4) Flat

-                              Decorate 313(gl_FragColor) BuiltIn FragColor

-                              Decorate 417(u_b) NoStaticUse

-                              Decorate 419(u_b2) NoStaticUse

-                              Decorate 421(u_b3) NoStaticUse

-                              Decorate 423(u_b4) NoStaticUse

-                              Decorate 425(u_i2) NoStaticUse

-                              Decorate 427(u_i3) NoStaticUse

-                              Decorate 429(u_i4) NoStaticUse

-                              Decorate 430(i_b) NoStaticUse

-                              Decorate 431(i_b2) NoStaticUse

-                              Decorate 432(i_b3) NoStaticUse

-                              Decorate 433(i_b4) NoStaticUse

-                              Decorate 435(i_i2) Flat

-                              Decorate 435(i_i2) NoStaticUse

-                              Decorate 437(i_i3) Flat

-                              Decorate 437(i_i3) NoStaticUse

-                              Decorate 439(i_f2) Smooth

-                              Decorate 439(i_f2) NoStaticUse

-                              Decorate 441(i_f3) Smooth

-                              Decorate 441(i_f3) NoStaticUse

-                              Decorate 443(i_f4) Smooth

-                              Decorate 443(i_f4) NoStaticUse

+                              Name 8  "b"

+                              Name 11  "u_i"

+                              Name 18  "u_f"

+                              Name 25  "b2"

+                              Name 33  "b3"

+                              Name 39  "i_i"

+                              Name 45  "b4"

+                              Name 53  "i_f"

+                              Name 58  "i"

+                              Name 68  "i2"

+                              Name 71  "u_f2"

+                              Name 81  "i3"

+                              Name 84  "u_f3"

+                              Name 94  "i4"

+                              Name 97  "u_f4"

+                              Name 106  "f"

+                              Name 110  "f2"

+                              Name 114  "f3"

+                              Name 118  "f4"

+                              Name 157  "i_i4"

+                              Name 312  "gl_FragColor"

+                              Name 405  "cv2"

+                              Name 406  "cv5"

+                              Name 416  "u_b"

+                              Name 418  "u_b2"

+                              Name 420  "u_b3"

+                              Name 422  "u_b4"

+                              Name 424  "u_i2"

+                              Name 426  "u_i3"

+                              Name 428  "u_i4"

+                              Name 429  "i_b"

+                              Name 430  "i_b2"

+                              Name 431  "i_b3"

+                              Name 432  "i_b4"

+                              Name 434  "i_i2"

+                              Name 436  "i_i3"

+                              Name 438  "i_f2"

+                              Name 440  "i_f3"

+                              Name 442  "i_f4"

+                              Decorate 39(i_i) Flat

+                              Decorate 53(i_f) Smooth

+                              Decorate 157(i_i4) Flat

+                              Decorate 312(gl_FragColor) BuiltIn FragColor

+                              Decorate 416(u_b) NoStaticUse

+                              Decorate 418(u_b2) NoStaticUse

+                              Decorate 420(u_b3) NoStaticUse

+                              Decorate 422(u_b4) NoStaticUse

+                              Decorate 424(u_i2) NoStaticUse

+                              Decorate 426(u_i3) NoStaticUse

+                              Decorate 428(u_i4) NoStaticUse

+                              Decorate 429(i_b) NoStaticUse

+                              Decorate 430(i_b2) NoStaticUse

+                              Decorate 431(i_b3) NoStaticUse

+                              Decorate 432(i_b4) NoStaticUse

+                              Decorate 434(i_i2) Flat

+                              Decorate 434(i_i2) NoStaticUse

+                              Decorate 436(i_i3) Flat

+                              Decorate 436(i_i3) NoStaticUse

+                              Decorate 438(i_f2) Smooth

+                              Decorate 438(i_f2) NoStaticUse

+                              Decorate 440(i_f3) Smooth

+                              Decorate 440(i_f3) NoStaticUse

+                              Decorate 442(i_f4) Smooth

+                              Decorate 442(i_f4) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeBool

-               8:             TypePointer Function 7(bool)

-              10:             TypeInt 32 1

-              11:             TypePointer UniformConstant 10(int)

-         12(u_i):     11(ptr) Variable UniformConstant

-              14:             TypeInt 32 0

-              15:     14(int) Constant 0

-              17:             TypeFloat 32

-              18:             TypePointer UniformConstant 17(float)

-         19(u_f):     18(ptr) Variable UniformConstant

-              21:   17(float) Constant 0

-              24:             TypeVector 7(bool) 2

-              25:             TypePointer Function 24(bvec2)

-              32:             TypeVector 7(bool) 3

-              33:             TypePointer Function 32(bvec3)

-              39:             TypePointer Input 10(int)

-         40(i_i):     39(ptr) Variable Input

-              44:             TypeVector 7(bool) 4

-              45:             TypePointer Function 44(bvec4)

-              53:             TypePointer Input 17(float)

-         54(i_f):     53(ptr) Variable Input

-              58:             TypePointer Function 10(int)

-              63:     10(int) Constant 0

-              64:     10(int) Constant 1

-              67:             TypeVector 10(int) 2

-              68:             TypePointer Function 67(ivec2)

-              70:             TypeVector 17(float) 2

-              71:             TypePointer UniformConstant 70(fvec2)

-        72(u_f2):     71(ptr) Variable UniformConstant

-              76:   67(ivec2) ConstantComposite 63 63

-              77:   67(ivec2) ConstantComposite 64 64

-              80:             TypeVector 10(int) 3

-              81:             TypePointer Function 80(ivec3)

-              83:             TypeVector 17(float) 3

-              84:             TypePointer UniformConstant 83(fvec3)

-        85(u_f3):     84(ptr) Variable UniformConstant

-              89:   80(ivec3) ConstantComposite 63 63 63

-              90:   80(ivec3) ConstantComposite 64 64 64

-              93:             TypeVector 10(int) 4

-              94:             TypePointer Function 93(ivec4)

-              96:             TypeVector 17(float) 4

-              97:             TypePointer UniformConstant 96(fvec4)

-        98(u_f4):     97(ptr) Variable UniformConstant

-             102:   93(ivec4) ConstantComposite 63 63 63 63

-             103:   93(ivec4) ConstantComposite 64 64 64 64

-             106:             TypePointer Function 17(float)

-             110:             TypePointer Function 70(fvec2)

-             114:             TypePointer Function 83(fvec3)

-             118:             TypePointer Function 96(fvec4)

-             125:   17(float) Constant 1065353216

-             133:   70(fvec2) ConstantComposite 21 21

-             134:   70(fvec2) ConstantComposite 125 125

-             142:   83(fvec3) ConstantComposite 21 21 21

-             143:   83(fvec3) ConstantComposite 125 125 125

-             151:   96(fvec4) ConstantComposite 21 21 21 21

-             152:   96(fvec4) ConstantComposite 125 125 125 125

-             157:             TypePointer Input 93(ivec4)

-       158(i_i4):    157(ptr) Variable Input

-             160:             TypeVector 14(int) 4

-             161:  160(ivec4) ConstantComposite 15 15 15 15

-             312:             TypePointer Output 96(fvec4)

-313(gl_FragColor):    312(ptr) Variable Output

-             416:             TypePointer UniformConstant 7(bool)

-        417(u_b):    416(ptr) Variable UniformConstant

-             418:             TypePointer UniformConstant 24(bvec2)

-       419(u_b2):    418(ptr) Variable UniformConstant

-             420:             TypePointer UniformConstant 32(bvec3)

-       421(u_b3):    420(ptr) Variable UniformConstant

-             422:             TypePointer UniformConstant 44(bvec4)

-       423(u_b4):    422(ptr) Variable UniformConstant

-             424:             TypePointer UniformConstant 67(ivec2)

-       425(u_i2):    424(ptr) Variable UniformConstant

-             426:             TypePointer UniformConstant 80(ivec3)

-       427(u_i3):    426(ptr) Variable UniformConstant

-             428:             TypePointer UniformConstant 93(ivec4)

-       429(u_i4):    428(ptr) Variable UniformConstant

-        430(i_b):    416(ptr) Variable UniformConstant

-       431(i_b2):    418(ptr) Variable UniformConstant

-       432(i_b3):    420(ptr) Variable UniformConstant

-       433(i_b4):    422(ptr) Variable UniformConstant

-             434:             TypePointer Input 67(ivec2)

-       435(i_i2):    434(ptr) Variable Input

-             436:             TypePointer Input 80(ivec3)

-       437(i_i3):    436(ptr) Variable Input

-             438:             TypePointer Input 70(fvec2)

-       439(i_f2):    438(ptr) Variable Input

-             440:             TypePointer Input 83(fvec3)

-       441(i_f3):    440(ptr) Variable Input

-             442:             TypePointer Input 96(fvec4)

-       443(i_f4):    442(ptr) Variable Input

+               6:             TypeBool

+               7:             TypePointer Function 6(bool)

+               9:             TypeInt 32 1

+              10:             TypePointer UniformConstant 9(int)

+         11(u_i):     10(ptr) Variable UniformConstant

+              13:             TypeInt 32 0

+              14:     13(int) Constant 0

+              16:             TypeFloat 32

+              17:             TypePointer UniformConstant 16(float)

+         18(u_f):     17(ptr) Variable UniformConstant

+              20:   16(float) Constant 0

+              23:             TypeVector 6(bool) 2

+              24:             TypePointer Function 23(bvec2)

+              31:             TypeVector 6(bool) 3

+              32:             TypePointer Function 31(bvec3)

+              38:             TypePointer Input 9(int)

+         39(i_i):     38(ptr) Variable Input

+              43:             TypeVector 6(bool) 4

+              44:             TypePointer Function 43(bvec4)

+              52:             TypePointer Input 16(float)

+         53(i_f):     52(ptr) Variable Input

+              57:             TypePointer Function 9(int)

+              62:      9(int) Constant 0

+              63:      9(int) Constant 1

+              66:             TypeVector 9(int) 2

+              67:             TypePointer Function 66(ivec2)

+              69:             TypeVector 16(float) 2

+              70:             TypePointer UniformConstant 69(fvec2)

+        71(u_f2):     70(ptr) Variable UniformConstant

+              75:   66(ivec2) ConstantComposite 62 62

+              76:   66(ivec2) ConstantComposite 63 63

+              79:             TypeVector 9(int) 3

+              80:             TypePointer Function 79(ivec3)

+              82:             TypeVector 16(float) 3

+              83:             TypePointer UniformConstant 82(fvec3)

+        84(u_f3):     83(ptr) Variable UniformConstant

+              88:   79(ivec3) ConstantComposite 62 62 62

+              89:   79(ivec3) ConstantComposite 63 63 63

+              92:             TypeVector 9(int) 4

+              93:             TypePointer Function 92(ivec4)

+              95:             TypeVector 16(float) 4

+              96:             TypePointer UniformConstant 95(fvec4)

+        97(u_f4):     96(ptr) Variable UniformConstant

+             101:   92(ivec4) ConstantComposite 62 62 62 62

+             102:   92(ivec4) ConstantComposite 63 63 63 63

+             105:             TypePointer Function 16(float)

+             109:             TypePointer Function 69(fvec2)

+             113:             TypePointer Function 82(fvec3)

+             117:             TypePointer Function 95(fvec4)

+             124:   16(float) Constant 1065353216

+             132:   69(fvec2) ConstantComposite 20 20

+             133:   69(fvec2) ConstantComposite 124 124

+             141:   82(fvec3) ConstantComposite 20 20 20

+             142:   82(fvec3) ConstantComposite 124 124 124

+             150:   95(fvec4) ConstantComposite 20 20 20 20

+             151:   95(fvec4) ConstantComposite 124 124 124 124

+             156:             TypePointer Input 92(ivec4)

+       157(i_i4):    156(ptr) Variable Input

+             159:             TypeVector 13(int) 4

+             160:  159(ivec4) ConstantComposite 14 14 14 14

+             311:             TypePointer Output 95(fvec4)

+312(gl_FragColor):    311(ptr) Variable Output

+             415:             TypePointer UniformConstant 6(bool)

+        416(u_b):    415(ptr) Variable UniformConstant

+             417:             TypePointer UniformConstant 23(bvec2)

+       418(u_b2):    417(ptr) Variable UniformConstant

+             419:             TypePointer UniformConstant 31(bvec3)

+       420(u_b3):    419(ptr) Variable UniformConstant

+             421:             TypePointer UniformConstant 43(bvec4)

+       422(u_b4):    421(ptr) Variable UniformConstant

+             423:             TypePointer UniformConstant 66(ivec2)

+       424(u_i2):    423(ptr) Variable UniformConstant

+             425:             TypePointer UniformConstant 79(ivec3)

+       426(u_i3):    425(ptr) Variable UniformConstant

+             427:             TypePointer UniformConstant 92(ivec4)

+       428(u_i4):    427(ptr) Variable UniformConstant

+        429(i_b):    415(ptr) Variable UniformConstant

+       430(i_b2):    417(ptr) Variable UniformConstant

+       431(i_b3):    419(ptr) Variable UniformConstant

+       432(i_b4):    421(ptr) Variable UniformConstant

+             433:             TypePointer Input 66(ivec2)

+       434(i_i2):    433(ptr) Variable Input

+             435:             TypePointer Input 79(ivec3)

+       436(i_i3):    435(ptr) Variable Input

+             437:             TypePointer Input 69(fvec2)

+       438(i_f2):    437(ptr) Variable Input

+             439:             TypePointer Input 82(fvec3)

+       440(i_f3):    439(ptr) Variable Input

+             441:             TypePointer Input 95(fvec4)

+       442(i_f4):    441(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(b):      8(ptr) Variable Function

-          26(b2):     25(ptr) Variable Function

-          34(b3):     33(ptr) Variable Function

-          46(b4):     45(ptr) Variable Function

-           59(i):     58(ptr) Variable Function

-          69(i2):     68(ptr) Variable Function

-          82(i3):     81(ptr) Variable Function

-          95(i4):     94(ptr) Variable Function

-          107(f):    106(ptr) Variable Function

-         111(f2):    110(ptr) Variable Function

-         115(f3):    114(ptr) Variable Function

-         119(f4):    118(ptr) Variable Function

-             289:    106(ptr) Variable Function

-             299:    106(ptr) Variable Function

-             314:    118(ptr) Variable Function

-        406(cv2):     94(ptr) Variable Function

-        407(cv5):     45(ptr) Variable Function

-              13:     10(int) Load 12(u_i)

-              16:     7(bool) INotEqual 13 15

-              20:   17(float) Load 19(u_f)

-              22:     7(bool) FOrdNotEqual 20 21

-              23:     7(bool) LogicalNotEqual 16 22

-                              Store 9(b) 23

-              27:     10(int) Load 12(u_i)

-              28:     7(bool) INotEqual 27 15

-              29:   17(float) Load 19(u_f)

-              30:     7(bool) FOrdNotEqual 29 21

-              31:   24(bvec2) CompositeConstruct 28 30

-                              Store 26(b2) 31

-              35:     10(int) Load 12(u_i)

-              36:     7(bool) INotEqual 35 15

-              37:   17(float) Load 19(u_f)

-              38:     7(bool) FOrdNotEqual 37 21

-              41:     10(int) Load 40(i_i)

-              42:     7(bool) INotEqual 41 15

-              43:   32(bvec3) CompositeConstruct 36 38 42

-                              Store 34(b3) 43

-              47:     10(int) Load 12(u_i)

-              48:     7(bool) INotEqual 47 15

-              49:   17(float) Load 19(u_f)

-              50:     7(bool) FOrdNotEqual 49 21

-              51:     10(int) Load 40(i_i)

-              52:     7(bool) INotEqual 51 15

-              55:   17(float) Load 54(i_f)

-              56:     7(bool) FOrdNotEqual 55 21

-              57:   44(bvec4) CompositeConstruct 48 50 52 56

-                              Store 46(b4) 57

-              60:   17(float) Load 19(u_f)

-              61:     10(int) ConvertFToS 60

-              62:     7(bool) Load 9(b)

-              65:     10(int) Select 62 64 63

-              66:     10(int) IAdd 61 65

-                              Store 59(i) 66

-              73:   70(fvec2) Load 72(u_f2)

-              74:   67(ivec2) ConvertFToS 73

-              75:   24(bvec2) Load 26(b2)

-              78:   67(ivec2) Select 75 77 76

-              79:   67(ivec2) IAdd 74 78

-                              Store 69(i2) 79

-              86:   83(fvec3) Load 85(u_f3)

-              87:   80(ivec3) ConvertFToS 86

-              88:   32(bvec3) Load 34(b3)

-              91:   80(ivec3) Select 88 90 89

-              92:   80(ivec3) IAdd 87 91

-                              Store 82(i3) 92

-              99:   96(fvec4) Load 98(u_f4)

-             100:   93(ivec4) ConvertFToS 99

-             101:   44(bvec4) Load 46(b4)

-             104:   93(ivec4) Select 101 103 102

-             105:   93(ivec4) IAdd 100 104

-                              Store 95(i4) 105

-             108:     10(int) Load 59(i)

-             109:   17(float) ConvertSToF 108

-                              Store 107(f) 109

-             112:   67(ivec2) Load 69(i2)

-             113:   70(fvec2) ConvertSToF 112

-                              Store 111(f2) 113

-             116:   80(ivec3) Load 82(i3)

-             117:   83(fvec3) ConvertSToF 116

-                              Store 115(f3) 117

-             120:   93(ivec4) Load 95(i4)

-             121:   96(fvec4) ConvertSToF 120

-                              Store 119(f4) 121

-             122:     10(int) Load 59(i)

-             123:   17(float) ConvertSToF 122

-             124:     7(bool) Load 9(b)

-             126:   17(float) Select 124 125 21

-             127:   17(float) FAdd 123 126

-             128:   17(float) Load 107(f)

-             129:   17(float) FAdd 128 127

-                              Store 107(f) 129

-             130:   67(ivec2) Load 69(i2)

-             131:   70(fvec2) ConvertSToF 130

-             132:   24(bvec2) Load 26(b2)

-             135:   70(fvec2) Select 132 134 133

-             136:   70(fvec2) FAdd 131 135

-             137:   70(fvec2) Load 111(f2)

-             138:   70(fvec2) FSub 137 136

-                              Store 111(f2) 138

-             139:   80(ivec3) Load 82(i3)

-             140:   83(fvec3) ConvertSToF 139

-             141:   32(bvec3) Load 34(b3)

-             144:   83(fvec3) Select 141 143 142

-             145:   83(fvec3) FAdd 140 144

-             146:   83(fvec3) Load 115(f3)

-             147:   83(fvec3) FDiv 146 145

-                              Store 115(f3) 147

-             148:   93(ivec4) Load 95(i4)

-             149:   96(fvec4) ConvertSToF 148

-             150:   44(bvec4) Load 46(b4)

-             153:   96(fvec4) Select 150 152 151

-             154:   96(fvec4) FAdd 149 153

-             155:   96(fvec4) Load 119(f4)

-             156:   96(fvec4) FAdd 155 154

-                              Store 119(f4) 156

-             159:   93(ivec4) Load 158(i_i4)

-             162:   44(bvec4) INotEqual 159 161

-             163:   96(fvec4) Select 162 152 151

-             164:   96(fvec4) Load 119(f4)

-             165:   96(fvec4) FAdd 164 163

-                              Store 119(f4) 165

-             166:   96(fvec4) Load 98(u_f4)

-             167:   44(bvec4) FOrdNotEqual 166 151

-             168:   96(fvec4) Select 167 152 151

-             169:   96(fvec4) Load 119(f4)

-             170:   96(fvec4) FAdd 169 168

-                              Store 119(f4) 170

-             171:   17(float) Load 107(f)

-             172:     10(int) Load 59(i)

-             173:   17(float) ConvertSToF 172

-             174:   17(float) FSub 171 173

-             175:   17(float) Load 107(f)

-             176:   17(float) FAdd 175 174

-                              Store 107(f) 176

-             177:   17(float) Load 107(f)

-             178:     10(int) Load 59(i)

-             179:   17(float) ConvertSToF 178

-             180:   70(fvec2) CompositeConstruct 177 179

-             181:   67(ivec2) Load 69(i2)

-             182:   70(fvec2) ConvertSToF 181

-             183:   70(fvec2) FAdd 180 182

-             184:   70(fvec2) Load 111(f2)

-             185:   70(fvec2) FAdd 184 183

-                              Store 111(f2) 185

-             186:   80(ivec3) Load 82(i3)

-             187:   83(fvec3) ConvertSToF 186

-             188:   17(float) Load 107(f)

-             189:     10(int) Load 59(i)

-             190:   17(float) ConvertSToF 189

-             191:   17(float) Load 107(f)

-             192:   83(fvec3) CompositeConstruct 188 190 191

-             193:   83(fvec3) FAdd 187 192

-             194:   83(fvec3) Load 115(f3)

-             195:   83(fvec3) FAdd 194 193

-                              Store 115(f3) 195

-             196:     7(bool) Load 9(b)

-             197:   17(float) Select 196 125 21

-             198:     10(int) Load 59(i)

-             199:   17(float) ConvertSToF 198

-             200:   17(float) Load 107(f)

-             201:     10(int) Load 59(i)

-             202:   17(float) ConvertSToF 201

-             203:   96(fvec4) CompositeConstruct 197 199 200 202

-             204:   93(ivec4) Load 95(i4)

-             205:   96(fvec4) ConvertSToF 204

-             206:   96(fvec4) FAdd 203 205

-             207:   96(fvec4) Load 119(f4)

-             208:   96(fvec4) FAdd 207 206

-                              Store 119(f4) 208

-             209:   17(float) Load 107(f)

-             210:     10(int) Load 59(i)

-             211:   17(float) ConvertSToF 210

-             212:   70(fvec2) CompositeConstruct 209 211

-             213:     10(int) Load 59(i)

-             214:   17(float) ConvertSToF 213

-             215:   70(fvec2) VectorTimesScalar 212 214

-             216:   70(fvec2) Load 111(f2)

-             217:   70(fvec2) FAdd 216 215

-                              Store 111(f2) 217

-             218:   17(float) Load 107(f)

-             219:     10(int) Load 59(i)

-             220:   17(float) ConvertSToF 219

-             221:   17(float) Load 107(f)

-             222:   83(fvec3) CompositeConstruct 218 220 221

-             223:     10(int) Load 59(i)

-             224:   17(float) ConvertSToF 223

-             225:   83(fvec3) CompositeConstruct 224 224 224

-             226:   83(fvec3) FAdd 222 225

-             227:   83(fvec3) Load 115(f3)

-             228:   83(fvec3) FAdd 227 226

-                              Store 115(f3) 228

-             229:     10(int) Load 59(i)

-             230:   17(float) ConvertSToF 229

-             231:     7(bool) Load 9(b)

-             232:   17(float) Select 231 125 21

-             233:     10(int) Load 59(i)

-             234:   17(float) ConvertSToF 233

-             235:   17(float) Load 107(f)

-             236:     10(int) Load 59(i)

-             237:   17(float) ConvertSToF 236

-             238:   96(fvec4) CompositeConstruct 232 234 235 237

-             239:   96(fvec4) CompositeConstruct 230 230 230 230

-             240:   96(fvec4) FSub 239 238

-             241:   96(fvec4) Load 119(f4)

-             242:   96(fvec4) FAdd 241 240

-                              Store 119(f4) 242

-             243:   17(float) Load 107(f)

-             244:     10(int) ConvertFToS 243

-             245:     10(int) Load 59(i)

-             246:   67(ivec2) CompositeConstruct 244 245

-             247:   67(ivec2) Load 69(i2)

-             248:   67(ivec2) IAdd 247 246

-                              Store 69(i2) 248

-             249:   17(float) Load 107(f)

-             250:     10(int) ConvertFToS 249

-             251:     10(int) Load 59(i)

-             252:   17(float) Load 107(f)

-             253:     10(int) ConvertFToS 252

-             254:   80(ivec3) CompositeConstruct 250 251 253

-             255:   80(ivec3) Load 82(i3)

-             256:   80(ivec3) IAdd 255 254

-                              Store 82(i3) 256

-             257:     7(bool) Load 9(b)

-             258:     10(int) Select 257 64 63

-             259:     10(int) Load 59(i)

-             260:   17(float) Load 107(f)

-             261:     10(int) ConvertFToS 260

-             262:     10(int) Load 59(i)

-             263:   93(ivec4) CompositeConstruct 258 259 261 262

-             264:   93(ivec4) Load 95(i4)

-             265:   93(ivec4) IAdd 264 263

-                              Store 95(i4) 265

-             266:   17(float) Load 107(f)

-             267:     10(int) Load 59(i)

-             268:   17(float) ConvertSToF 267

-             269:     7(bool) FOrdLessThan 266 268

-             270:     10(int) Load 59(i)

-             271:   17(float) ConvertSToF 270

-             272:   17(float) Load 107(f)

-             273:     7(bool) FOrdLessThan 271 272

-             274:     7(bool) LogicalOr 269 273

-             275:   70(fvec2) Load 111(f2)

-             276:   67(ivec2) Load 69(i2)

-             277:   70(fvec2) ConvertSToF 276

-             278:   24(bvec2) FOrdEqual 275 277

-             279:     7(bool) All 278

-             280:     7(bool) LogicalOr 274 279

-             281:   80(ivec3) Load 82(i3)

-             282:   83(fvec3) ConvertSToF 281

-             283:   83(fvec3) Load 115(f3)

-             284:   32(bvec3) FOrdNotEqual 282 283

-             285:     7(bool) Any 284

-             286:     7(bool) LogicalOr 280 285

-                              SelectionMerge 288 None

-                              BranchConditional 286 287 288

-             287:               Label

-             290:     7(bool)   Load 9(b)

-                                SelectionMerge 292 None

-                                BranchConditional 290 291 295

-             291:                 Label

-             293:     10(int)     Load 59(i)

-             294:   17(float)     ConvertSToF 293

-                                  Store 289 294

-                                  Branch 292

-             295:                 Label

-             296:   70(fvec2)     Load 111(f2)

-             297:   17(float)     CompositeExtract 296 0

-                                  Store 289 297

-                                  Branch 292

-             292:               Label

-             298:   17(float)   Load 289

-             300:   24(bvec2)   Load 26(b2)

-             301:     7(bool)   CompositeExtract 300 0

-                                SelectionMerge 303 None

-                                BranchConditional 301 302 306

-             302:                 Label

-             304:   83(fvec3)     Load 115(f3)

-             305:   17(float)     CompositeExtract 304 0

-                                  Store 299 305

-                                  Branch 303

-             306:                 Label

-             307:   67(ivec2)     Load 69(i2)

-             308:     10(int)     CompositeExtract 307 1

-             309:   17(float)     ConvertSToF 308

-                                  Store 299 309

-                                  Branch 303

-             303:               Label

-             310:   17(float)   Load 299

-             311:   17(float)   FAdd 298 310

-                                Store 107(f) 311

-                                Branch 288

-             288:             Label

-             315:     7(bool) Load 9(b)

-             316:   24(bvec2) Load 26(b2)

-             317:     7(bool) CompositeExtract 316 0

-             318:     7(bool) LogicalOr 315 317

-             319:   24(bvec2) Load 26(b2)

-             320:     7(bool) CompositeExtract 319 1

-             321:     7(bool) LogicalOr 318 320

-             322:   32(bvec3) Load 34(b3)

-             323:     7(bool) CompositeExtract 322 0

-             324:     7(bool) LogicalOr 321 323

-             325:   32(bvec3) Load 34(b3)

-             326:     7(bool) CompositeExtract 325 1

-             327:     7(bool) LogicalOr 324 326

-             328:   32(bvec3) Load 34(b3)

-             329:     7(bool) CompositeExtract 328 2

-             330:     7(bool) LogicalOr 327 329

-             331:   44(bvec4) Load 46(b4)

-             332:     7(bool) CompositeExtract 331 0

-             333:     7(bool) LogicalOr 330 332

-             334:   44(bvec4) Load 46(b4)

-             335:     7(bool) CompositeExtract 334 1

-             336:     7(bool) LogicalOr 333 335

-             337:   44(bvec4) Load 46(b4)

-             338:     7(bool) CompositeExtract 337 2

-             339:     7(bool) LogicalOr 336 338

-             340:   44(bvec4) Load 46(b4)

-             341:     7(bool) CompositeExtract 340 3

-             342:     7(bool) LogicalOr 339 341

-                              SelectionMerge 344 None

-                              BranchConditional 342 343 404

-             343:               Label

-             345:     10(int)   Load 59(i)

-             346:   67(ivec2)   Load 69(i2)

-             347:     10(int)   CompositeExtract 346 0

-             348:     10(int)   IAdd 345 347

-             349:   67(ivec2)   Load 69(i2)

-             350:     10(int)   CompositeExtract 349 1

-             351:     10(int)   IAdd 348 350

-             352:   80(ivec3)   Load 82(i3)

-             353:     10(int)   CompositeExtract 352 0

-             354:     10(int)   IAdd 351 353

-             355:   80(ivec3)   Load 82(i3)

-             356:     10(int)   CompositeExtract 355 1

-             357:     10(int)   IAdd 354 356

-             358:   80(ivec3)   Load 82(i3)

-             359:     10(int)   CompositeExtract 358 2

-             360:     10(int)   IAdd 357 359

-             361:   93(ivec4)   Load 95(i4)

-             362:     10(int)   CompositeExtract 361 0

-             363:     10(int)   IAdd 360 362

-             364:   93(ivec4)   Load 95(i4)

-             365:     10(int)   CompositeExtract 364 1

-             366:     10(int)   IAdd 363 365

-             367:   93(ivec4)   Load 95(i4)

-             368:     10(int)   CompositeExtract 367 2

-             369:     10(int)   IAdd 366 368

-             370:   93(ivec4)   Load 95(i4)

-             371:     10(int)   CompositeExtract 370 3

-             372:     10(int)   IAdd 369 371

-             373:   17(float)   ConvertSToF 372

-             374:   17(float)   Load 107(f)

-             375:   17(float)   FAdd 373 374

-             376:   70(fvec2)   Load 111(f2)

-             377:   17(float)   CompositeExtract 376 0

-             378:   17(float)   FAdd 375 377

-             379:   70(fvec2)   Load 111(f2)

-             380:   17(float)   CompositeExtract 379 1

-             381:   17(float)   FAdd 378 380

-             382:   83(fvec3)   Load 115(f3)

-             383:   17(float)   CompositeExtract 382 0

-             384:   17(float)   FAdd 381 383

-             385:   83(fvec3)   Load 115(f3)

-             386:   17(float)   CompositeExtract 385 1

-             387:   17(float)   FAdd 384 386

-             388:   83(fvec3)   Load 115(f3)

-             389:   17(float)   CompositeExtract 388 2

-             390:   17(float)   FAdd 387 389

-             391:   96(fvec4)   Load 119(f4)

-             392:   17(float)   CompositeExtract 391 0

-             393:   17(float)   FAdd 390 392

-             394:   96(fvec4)   Load 119(f4)

-             395:   17(float)   CompositeExtract 394 1

-             396:   17(float)   FAdd 393 395

-             397:   96(fvec4)   Load 119(f4)

-             398:   17(float)   CompositeExtract 397 2

-             399:   17(float)   FAdd 396 398

-             400:   96(fvec4)   Load 119(f4)

-             401:   17(float)   CompositeExtract 400 3

-             402:   17(float)   FAdd 399 401

-             403:   96(fvec4)   CompositeConstruct 402 402 402 402

-                                Store 314 403

-                                Branch 344

-             404:               Label

-                                Store 314 152

-                                Branch 344

-             344:             Label

-             405:   96(fvec4) Load 314

-                              Store 313(gl_FragColor) 405

-                              Store 406(cv2) 103

-             408:   93(ivec4) Load 406(cv2)

-             409:   44(bvec4) INotEqual 408 161

-                              Store 407(cv5) 409

-             410:   44(bvec4) Load 407(cv5)

-             411:   96(fvec4) Select 410 152 151

-             412:   17(float) CompositeExtract 411 0

-             413:   96(fvec4) Load 313(gl_FragColor)

-             414:   96(fvec4) CompositeConstruct 412 412 412 412

-             415:   96(fvec4) FAdd 413 414

-                              Store 313(gl_FragColor) 415

-                              Branch 6

-               6:             Label

+            8(b):      7(ptr) Variable Function

+          25(b2):     24(ptr) Variable Function

+          33(b3):     32(ptr) Variable Function

+          45(b4):     44(ptr) Variable Function

+           58(i):     57(ptr) Variable Function

+          68(i2):     67(ptr) Variable Function

+          81(i3):     80(ptr) Variable Function

+          94(i4):     93(ptr) Variable Function

+          106(f):    105(ptr) Variable Function

+         110(f2):    109(ptr) Variable Function

+         114(f3):    113(ptr) Variable Function

+         118(f4):    117(ptr) Variable Function

+             288:    105(ptr) Variable Function

+             298:    105(ptr) Variable Function

+             313:    117(ptr) Variable Function

+        405(cv2):     93(ptr) Variable Function

+        406(cv5):     44(ptr) Variable Function

+              12:      9(int) Load 11(u_i)

+              15:     6(bool) INotEqual 12 14

+              19:   16(float) Load 18(u_f)

+              21:     6(bool) FOrdNotEqual 19 20

+              22:     6(bool) LogicalNotEqual 15 21

+                              Store 8(b) 22

+              26:      9(int) Load 11(u_i)

+              27:     6(bool) INotEqual 26 14

+              28:   16(float) Load 18(u_f)

+              29:     6(bool) FOrdNotEqual 28 20

+              30:   23(bvec2) CompositeConstruct 27 29

+                              Store 25(b2) 30

+              34:      9(int) Load 11(u_i)

+              35:     6(bool) INotEqual 34 14

+              36:   16(float) Load 18(u_f)

+              37:     6(bool) FOrdNotEqual 36 20

+              40:      9(int) Load 39(i_i)

+              41:     6(bool) INotEqual 40 14

+              42:   31(bvec3) CompositeConstruct 35 37 41

+                              Store 33(b3) 42

+              46:      9(int) Load 11(u_i)

+              47:     6(bool) INotEqual 46 14

+              48:   16(float) Load 18(u_f)

+              49:     6(bool) FOrdNotEqual 48 20

+              50:      9(int) Load 39(i_i)

+              51:     6(bool) INotEqual 50 14

+              54:   16(float) Load 53(i_f)

+              55:     6(bool) FOrdNotEqual 54 20

+              56:   43(bvec4) CompositeConstruct 47 49 51 55

+                              Store 45(b4) 56

+              59:   16(float) Load 18(u_f)

+              60:      9(int) ConvertFToS 59

+              61:     6(bool) Load 8(b)

+              64:      9(int) Select 61 63 62

+              65:      9(int) IAdd 60 64

+                              Store 58(i) 65

+              72:   69(fvec2) Load 71(u_f2)

+              73:   66(ivec2) ConvertFToS 72

+              74:   23(bvec2) Load 25(b2)

+              77:   66(ivec2) Select 74 76 75

+              78:   66(ivec2) IAdd 73 77

+                              Store 68(i2) 78

+              85:   82(fvec3) Load 84(u_f3)

+              86:   79(ivec3) ConvertFToS 85

+              87:   31(bvec3) Load 33(b3)

+              90:   79(ivec3) Select 87 89 88

+              91:   79(ivec3) IAdd 86 90

+                              Store 81(i3) 91

+              98:   95(fvec4) Load 97(u_f4)

+              99:   92(ivec4) ConvertFToS 98

+             100:   43(bvec4) Load 45(b4)

+             103:   92(ivec4) Select 100 102 101

+             104:   92(ivec4) IAdd 99 103

+                              Store 94(i4) 104

+             107:      9(int) Load 58(i)

+             108:   16(float) ConvertSToF 107

+                              Store 106(f) 108

+             111:   66(ivec2) Load 68(i2)

+             112:   69(fvec2) ConvertSToF 111

+                              Store 110(f2) 112

+             115:   79(ivec3) Load 81(i3)

+             116:   82(fvec3) ConvertSToF 115

+                              Store 114(f3) 116

+             119:   92(ivec4) Load 94(i4)

+             120:   95(fvec4) ConvertSToF 119

+                              Store 118(f4) 120

+             121:      9(int) Load 58(i)

+             122:   16(float) ConvertSToF 121

+             123:     6(bool) Load 8(b)

+             125:   16(float) Select 123 124 20

+             126:   16(float) FAdd 122 125

+             127:   16(float) Load 106(f)

+             128:   16(float) FAdd 127 126

+                              Store 106(f) 128

+             129:   66(ivec2) Load 68(i2)

+             130:   69(fvec2) ConvertSToF 129

+             131:   23(bvec2) Load 25(b2)

+             134:   69(fvec2) Select 131 133 132

+             135:   69(fvec2) FAdd 130 134

+             136:   69(fvec2) Load 110(f2)

+             137:   69(fvec2) FSub 136 135

+                              Store 110(f2) 137

+             138:   79(ivec3) Load 81(i3)

+             139:   82(fvec3) ConvertSToF 138

+             140:   31(bvec3) Load 33(b3)

+             143:   82(fvec3) Select 140 142 141

+             144:   82(fvec3) FAdd 139 143

+             145:   82(fvec3) Load 114(f3)

+             146:   82(fvec3) FDiv 145 144

+                              Store 114(f3) 146

+             147:   92(ivec4) Load 94(i4)

+             148:   95(fvec4) ConvertSToF 147

+             149:   43(bvec4) Load 45(b4)

+             152:   95(fvec4) Select 149 151 150

+             153:   95(fvec4) FAdd 148 152

+             154:   95(fvec4) Load 118(f4)

+             155:   95(fvec4) FAdd 154 153

+                              Store 118(f4) 155

+             158:   92(ivec4) Load 157(i_i4)

+             161:   43(bvec4) INotEqual 158 160

+             162:   95(fvec4) Select 161 151 150

+             163:   95(fvec4) Load 118(f4)

+             164:   95(fvec4) FAdd 163 162

+                              Store 118(f4) 164

+             165:   95(fvec4) Load 97(u_f4)

+             166:   43(bvec4) FOrdNotEqual 165 150

+             167:   95(fvec4) Select 166 151 150

+             168:   95(fvec4) Load 118(f4)

+             169:   95(fvec4) FAdd 168 167

+                              Store 118(f4) 169

+             170:   16(float) Load 106(f)

+             171:      9(int) Load 58(i)

+             172:   16(float) ConvertSToF 171

+             173:   16(float) FSub 170 172

+             174:   16(float) Load 106(f)

+             175:   16(float) FAdd 174 173

+                              Store 106(f) 175

+             176:   16(float) Load 106(f)

+             177:      9(int) Load 58(i)

+             178:   16(float) ConvertSToF 177

+             179:   69(fvec2) CompositeConstruct 176 178

+             180:   66(ivec2) Load 68(i2)

+             181:   69(fvec2) ConvertSToF 180

+             182:   69(fvec2) FAdd 179 181

+             183:   69(fvec2) Load 110(f2)

+             184:   69(fvec2) FAdd 183 182

+                              Store 110(f2) 184

+             185:   79(ivec3) Load 81(i3)

+             186:   82(fvec3) ConvertSToF 185

+             187:   16(float) Load 106(f)

+             188:      9(int) Load 58(i)

+             189:   16(float) ConvertSToF 188

+             190:   16(float) Load 106(f)

+             191:   82(fvec3) CompositeConstruct 187 189 190

+             192:   82(fvec3) FAdd 186 191

+             193:   82(fvec3) Load 114(f3)

+             194:   82(fvec3) FAdd 193 192

+                              Store 114(f3) 194

+             195:     6(bool) Load 8(b)

+             196:   16(float) Select 195 124 20

+             197:      9(int) Load 58(i)

+             198:   16(float) ConvertSToF 197

+             199:   16(float) Load 106(f)

+             200:      9(int) Load 58(i)

+             201:   16(float) ConvertSToF 200

+             202:   95(fvec4) CompositeConstruct 196 198 199 201

+             203:   92(ivec4) Load 94(i4)

+             204:   95(fvec4) ConvertSToF 203

+             205:   95(fvec4) FAdd 202 204

+             206:   95(fvec4) Load 118(f4)

+             207:   95(fvec4) FAdd 206 205

+                              Store 118(f4) 207

+             208:   16(float) Load 106(f)

+             209:      9(int) Load 58(i)

+             210:   16(float) ConvertSToF 209

+             211:   69(fvec2) CompositeConstruct 208 210

+             212:      9(int) Load 58(i)

+             213:   16(float) ConvertSToF 212

+             214:   69(fvec2) VectorTimesScalar 211 213

+             215:   69(fvec2) Load 110(f2)

+             216:   69(fvec2) FAdd 215 214

+                              Store 110(f2) 216

+             217:   16(float) Load 106(f)

+             218:      9(int) Load 58(i)

+             219:   16(float) ConvertSToF 218

+             220:   16(float) Load 106(f)

+             221:   82(fvec3) CompositeConstruct 217 219 220

+             222:      9(int) Load 58(i)

+             223:   16(float) ConvertSToF 222

+             224:   82(fvec3) CompositeConstruct 223 223 223

+             225:   82(fvec3) FAdd 221 224

+             226:   82(fvec3) Load 114(f3)

+             227:   82(fvec3) FAdd 226 225

+                              Store 114(f3) 227

+             228:      9(int) Load 58(i)

+             229:   16(float) ConvertSToF 228

+             230:     6(bool) Load 8(b)

+             231:   16(float) Select 230 124 20

+             232:      9(int) Load 58(i)

+             233:   16(float) ConvertSToF 232

+             234:   16(float) Load 106(f)

+             235:      9(int) Load 58(i)

+             236:   16(float) ConvertSToF 235

+             237:   95(fvec4) CompositeConstruct 231 233 234 236

+             238:   95(fvec4) CompositeConstruct 229 229 229 229

+             239:   95(fvec4) FSub 238 237

+             240:   95(fvec4) Load 118(f4)

+             241:   95(fvec4) FAdd 240 239

+                              Store 118(f4) 241

+             242:   16(float) Load 106(f)

+             243:      9(int) ConvertFToS 242

+             244:      9(int) Load 58(i)

+             245:   66(ivec2) CompositeConstruct 243 244

+             246:   66(ivec2) Load 68(i2)

+             247:   66(ivec2) IAdd 246 245

+                              Store 68(i2) 247

+             248:   16(float) Load 106(f)

+             249:      9(int) ConvertFToS 248

+             250:      9(int) Load 58(i)

+             251:   16(float) Load 106(f)

+             252:      9(int) ConvertFToS 251

+             253:   79(ivec3) CompositeConstruct 249 250 252

+             254:   79(ivec3) Load 81(i3)

+             255:   79(ivec3) IAdd 254 253

+                              Store 81(i3) 255

+             256:     6(bool) Load 8(b)

+             257:      9(int) Select 256 63 62

+             258:      9(int) Load 58(i)

+             259:   16(float) Load 106(f)

+             260:      9(int) ConvertFToS 259

+             261:      9(int) Load 58(i)

+             262:   92(ivec4) CompositeConstruct 257 258 260 261

+             263:   92(ivec4) Load 94(i4)

+             264:   92(ivec4) IAdd 263 262

+                              Store 94(i4) 264

+             265:   16(float) Load 106(f)

+             266:      9(int) Load 58(i)

+             267:   16(float) ConvertSToF 266

+             268:     6(bool) FOrdLessThan 265 267

+             269:      9(int) Load 58(i)

+             270:   16(float) ConvertSToF 269

+             271:   16(float) Load 106(f)

+             272:     6(bool) FOrdLessThan 270 271

+             273:     6(bool) LogicalOr 268 272

+             274:   69(fvec2) Load 110(f2)

+             275:   66(ivec2) Load 68(i2)

+             276:   69(fvec2) ConvertSToF 275

+             277:   23(bvec2) FOrdEqual 274 276

+             278:     6(bool) All 277

+             279:     6(bool) LogicalOr 273 278

+             280:   79(ivec3) Load 81(i3)

+             281:   82(fvec3) ConvertSToF 280

+             282:   82(fvec3) Load 114(f3)

+             283:   31(bvec3) FOrdNotEqual 281 282

+             284:     6(bool) Any 283

+             285:     6(bool) LogicalOr 279 284

+                              SelectionMerge 287 None

+                              BranchConditional 285 286 287

+             286:               Label

+             289:     6(bool)   Load 8(b)

+                                SelectionMerge 291 None

+                                BranchConditional 289 290 294

+             290:                 Label

+             292:      9(int)     Load 58(i)

+             293:   16(float)     ConvertSToF 292

+                                  Store 288 293

+                                  Branch 291

+             294:                 Label

+             295:   69(fvec2)     Load 110(f2)

+             296:   16(float)     CompositeExtract 295 0

+                                  Store 288 296

+                                  Branch 291

+             291:               Label

+             297:   16(float)   Load 288

+             299:   23(bvec2)   Load 25(b2)

+             300:     6(bool)   CompositeExtract 299 0

+                                SelectionMerge 302 None

+                                BranchConditional 300 301 305

+             301:                 Label

+             303:   82(fvec3)     Load 114(f3)

+             304:   16(float)     CompositeExtract 303 0

+                                  Store 298 304

+                                  Branch 302

+             305:                 Label

+             306:   66(ivec2)     Load 68(i2)

+             307:      9(int)     CompositeExtract 306 1

+             308:   16(float)     ConvertSToF 307

+                                  Store 298 308

+                                  Branch 302

+             302:               Label

+             309:   16(float)   Load 298

+             310:   16(float)   FAdd 297 309

+                                Store 106(f) 310

+                                Branch 287

+             287:             Label

+             314:     6(bool) Load 8(b)

+             315:   23(bvec2) Load 25(b2)

+             316:     6(bool) CompositeExtract 315 0

+             317:     6(bool) LogicalOr 314 316

+             318:   23(bvec2) Load 25(b2)

+             319:     6(bool) CompositeExtract 318 1

+             320:     6(bool) LogicalOr 317 319

+             321:   31(bvec3) Load 33(b3)

+             322:     6(bool) CompositeExtract 321 0

+             323:     6(bool) LogicalOr 320 322

+             324:   31(bvec3) Load 33(b3)

+             325:     6(bool) CompositeExtract 324 1

+             326:     6(bool) LogicalOr 323 325

+             327:   31(bvec3) Load 33(b3)

+             328:     6(bool) CompositeExtract 327 2

+             329:     6(bool) LogicalOr 326 328

+             330:   43(bvec4) Load 45(b4)

+             331:     6(bool) CompositeExtract 330 0

+             332:     6(bool) LogicalOr 329 331

+             333:   43(bvec4) Load 45(b4)

+             334:     6(bool) CompositeExtract 333 1

+             335:     6(bool) LogicalOr 332 334

+             336:   43(bvec4) Load 45(b4)

+             337:     6(bool) CompositeExtract 336 2

+             338:     6(bool) LogicalOr 335 337

+             339:   43(bvec4) Load 45(b4)

+             340:     6(bool) CompositeExtract 339 3

+             341:     6(bool) LogicalOr 338 340

+                              SelectionMerge 343 None

+                              BranchConditional 341 342 403

+             342:               Label

+             344:      9(int)   Load 58(i)

+             345:   66(ivec2)   Load 68(i2)

+             346:      9(int)   CompositeExtract 345 0

+             347:      9(int)   IAdd 344 346

+             348:   66(ivec2)   Load 68(i2)

+             349:      9(int)   CompositeExtract 348 1

+             350:      9(int)   IAdd 347 349

+             351:   79(ivec3)   Load 81(i3)

+             352:      9(int)   CompositeExtract 351 0

+             353:      9(int)   IAdd 350 352

+             354:   79(ivec3)   Load 81(i3)

+             355:      9(int)   CompositeExtract 354 1

+             356:      9(int)   IAdd 353 355

+             357:   79(ivec3)   Load 81(i3)

+             358:      9(int)   CompositeExtract 357 2

+             359:      9(int)   IAdd 356 358

+             360:   92(ivec4)   Load 94(i4)

+             361:      9(int)   CompositeExtract 360 0

+             362:      9(int)   IAdd 359 361

+             363:   92(ivec4)   Load 94(i4)

+             364:      9(int)   CompositeExtract 363 1

+             365:      9(int)   IAdd 362 364

+             366:   92(ivec4)   Load 94(i4)

+             367:      9(int)   CompositeExtract 366 2

+             368:      9(int)   IAdd 365 367

+             369:   92(ivec4)   Load 94(i4)

+             370:      9(int)   CompositeExtract 369 3

+             371:      9(int)   IAdd 368 370

+             372:   16(float)   ConvertSToF 371

+             373:   16(float)   Load 106(f)

+             374:   16(float)   FAdd 372 373

+             375:   69(fvec2)   Load 110(f2)

+             376:   16(float)   CompositeExtract 375 0

+             377:   16(float)   FAdd 374 376

+             378:   69(fvec2)   Load 110(f2)

+             379:   16(float)   CompositeExtract 378 1

+             380:   16(float)   FAdd 377 379

+             381:   82(fvec3)   Load 114(f3)

+             382:   16(float)   CompositeExtract 381 0

+             383:   16(float)   FAdd 380 382

+             384:   82(fvec3)   Load 114(f3)

+             385:   16(float)   CompositeExtract 384 1

+             386:   16(float)   FAdd 383 385

+             387:   82(fvec3)   Load 114(f3)

+             388:   16(float)   CompositeExtract 387 2

+             389:   16(float)   FAdd 386 388

+             390:   95(fvec4)   Load 118(f4)

+             391:   16(float)   CompositeExtract 390 0

+             392:   16(float)   FAdd 389 391

+             393:   95(fvec4)   Load 118(f4)

+             394:   16(float)   CompositeExtract 393 1

+             395:   16(float)   FAdd 392 394

+             396:   95(fvec4)   Load 118(f4)

+             397:   16(float)   CompositeExtract 396 2

+             398:   16(float)   FAdd 395 397

+             399:   95(fvec4)   Load 118(f4)

+             400:   16(float)   CompositeExtract 399 3

+             401:   16(float)   FAdd 398 400

+             402:   95(fvec4)   CompositeConstruct 401 401 401 401

+                                Store 313 402

+                                Branch 343

+             403:               Label

+                                Store 313 151

+                                Branch 343

+             343:             Label

+             404:   95(fvec4) Load 313

+                              Store 312(gl_FragColor) 404

+                              Store 405(cv2) 102

+             407:   92(ivec4) Load 405(cv2)

+             408:   43(bvec4) INotEqual 407 160

+                              Store 406(cv5) 408

+             409:   43(bvec4) Load 406(cv5)

+             410:   95(fvec4) Select 409 151 150

+             411:   16(float) CompositeExtract 410 0

+             412:   95(fvec4) Load 312(gl_FragColor)

+             413:   95(fvec4) CompositeConstruct 411 411 411 411

+             414:   95(fvec4) FAdd 412 413

+                              Store 312(gl_FragColor) 414

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.dataOut.frag.out b/Test/baseResults/spv.dataOut.frag.out
index af9854c..ebbd60f 100755
--- a/Test/baseResults/spv.dataOut.frag.out
+++ b/Test/baseResults/spv.dataOut.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 21

+// Id's are bound by 20

 

                               Source GLSL 130

                               Capability Shader

@@ -16,30 +16,28 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 13  "gl_FragData"

-                              Name 17  "Color"

-                              Decorate 13(gl_FragData) BuiltIn FragColor

-                              Decorate 17(Color) Smooth

+                              Name 12  "gl_FragData"

+                              Name 16  "Color"

+                              Decorate 12(gl_FragData) BuiltIn FragColor

+                              Decorate 16(Color) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypeInt 32 0

-              10:      9(int) Constant 32

-              11:             TypeArray 8(fvec4) 10

-              12:             TypePointer Output 11

- 13(gl_FragData):     12(ptr) Variable Output

-              14:             TypeInt 32 1

-              15:     14(int) Constant 1

-              16:             TypePointer Input 8(fvec4)

-       17(Color):     16(ptr) Variable Input

-              19:             TypePointer Output 8(fvec4)

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypeInt 32 0

+               9:      8(int) Constant 32

+              10:             TypeArray 7(fvec4) 9

+              11:             TypePointer Output 10

+ 12(gl_FragData):     11(ptr) Variable Output

+              13:             TypeInt 32 1

+              14:     13(int) Constant 1

+              15:             TypePointer Input 7(fvec4)

+       16(Color):     15(ptr) Variable Input

+              18:             TypePointer Output 7(fvec4)

          4(main):           2 Function None 3

                5:             Label

-              18:    8(fvec4) Load 17(Color)

-              20:     19(ptr) AccessChain 13(gl_FragData) 15

-                              Store 20 18

-                              Branch 6

-               6:             Label

+              17:    7(fvec4) Load 16(Color)

+              19:     18(ptr) AccessChain 12(gl_FragData) 14

+                              Store 19 17

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.dataOutIndirect.frag.out b/Test/baseResults/spv.dataOutIndirect.frag.out
index b103e2d..c88d21c 100755
--- a/Test/baseResults/spv.dataOutIndirect.frag.out
+++ b/Test/baseResults/spv.dataOutIndirect.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 23

+// Id's are bound by 22

 

                               Source GLSL 130

                               Capability Shader

@@ -16,33 +16,31 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 13  "gl_FragData"

-                              Name 16  "i"

-                              Name 19  "Color"

-                              Decorate 13(gl_FragData) BuiltIn FragColor

-                              Decorate 19(Color) Smooth

+                              Name 12  "gl_FragData"

+                              Name 15  "i"

+                              Name 18  "Color"

+                              Decorate 12(gl_FragData) BuiltIn FragColor

+                              Decorate 18(Color) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypeInt 32 0

-              10:      9(int) Constant 32

-              11:             TypeArray 8(fvec4) 10

-              12:             TypePointer Output 11

- 13(gl_FragData):     12(ptr) Variable Output

-              14:             TypeInt 32 1

-              15:             TypePointer UniformConstant 14(int)

-           16(i):     15(ptr) Variable UniformConstant

-              18:             TypePointer Input 8(fvec4)

-       19(Color):     18(ptr) Variable Input

-              21:             TypePointer Output 8(fvec4)

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypeInt 32 0

+               9:      8(int) Constant 32

+              10:             TypeArray 7(fvec4) 9

+              11:             TypePointer Output 10

+ 12(gl_FragData):     11(ptr) Variable Output

+              13:             TypeInt 32 1

+              14:             TypePointer UniformConstant 13(int)

+           15(i):     14(ptr) Variable UniformConstant

+              17:             TypePointer Input 7(fvec4)

+       18(Color):     17(ptr) Variable Input

+              20:             TypePointer Output 7(fvec4)

          4(main):           2 Function None 3

                5:             Label

-              17:     14(int) Load 16(i)

-              20:    8(fvec4) Load 19(Color)

-              22:     21(ptr) AccessChain 13(gl_FragData) 17

-                              Store 22 20

-                              Branch 6

-               6:             Label

+              16:     13(int) Load 15(i)

+              19:    7(fvec4) Load 18(Color)

+              21:     20(ptr) AccessChain 12(gl_FragData) 16

+                              Store 21 19

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index bcf68be..705f7f4 100755
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -8,7 +8,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 39

+// Id's are bound by 38

 

                               Source GLSL 130

                               Capability Shader

@@ -16,60 +16,58 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 24  "colorOut"

-                              Name 27  "color"

-                              Name 33  "gl_Position"

-                              Name 38  "gl_VertexID"

-                              Decorate 24(colorOut) Smooth

-                              Decorate 33(gl_Position) BuiltIn Position

-                              Decorate 38(gl_VertexID) BuiltIn VertexId

-                              Decorate 38(gl_VertexID) NoStaticUse

+                              Name 8  "i"

+                              Name 23  "colorOut"

+                              Name 26  "color"

+                              Name 32  "gl_Position"

+                              Name 37  "gl_VertexID"

+                              Decorate 23(colorOut) Smooth

+                              Decorate 32(gl_Position) BuiltIn Position

+                              Decorate 37(gl_VertexID) BuiltIn VertexId

+                              Decorate 37(gl_VertexID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 1

-              15:      7(int) Constant 5

-              16:             TypeBool

-              18:             TypeFloat 32

-              19:             TypeVector 18(float) 4

-              20:             TypeInt 32 0

-              21:     20(int) Constant 6

-              22:             TypeArray 19(fvec4) 21

-              23:             TypePointer Output 22

-    24(colorOut):     23(ptr) Variable Output

-              26:             TypePointer Input 19(fvec4)

-       27(color):     26(ptr) Variable Input

-              29:             TypePointer Output 19(fvec4)

- 33(gl_Position):     29(ptr) Variable Output

-              34:      7(int) Constant 2

-              37:             TypePointer Input 7(int)

- 38(gl_VertexID):     37(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 1

+              14:      6(int) Constant 5

+              15:             TypeBool

+              17:             TypeFloat 32

+              18:             TypeVector 17(float) 4

+              19:             TypeInt 32 0

+              20:     19(int) Constant 6

+              21:             TypeArray 18(fvec4) 20

+              22:             TypePointer Output 21

+    23(colorOut):     22(ptr) Variable Output

+              25:             TypePointer Input 18(fvec4)

+       26(color):     25(ptr) Variable Input

+              28:             TypePointer Output 18(fvec4)

+ 32(gl_Position):     28(ptr) Variable Output

+              33:      6(int) Constant 2

+              36:             TypePointer Input 6(int)

+ 37(gl_VertexID):     36(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

+            8(i):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:      6(int) Load 8(i)

+              16:    15(bool) SLessThan 13 14

+                              LoopMerge 11 None

+                              BranchConditional 16 12 11

+              12:               Label

+              24:      6(int)   Load 8(i)

+              27:   18(fvec4)   Load 26(color)

+              29:     28(ptr)   AccessChain 23(colorOut) 24

+                                Store 29 27

+              30:      6(int)   Load 8(i)

+              31:      6(int)   IAdd 30 9

+                                Store 8(i) 31

+                                Branch 10

               11:             Label

-              14:      7(int) Load 9(i)

-              17:    16(bool) SLessThan 14 15

-                              LoopMerge 12 None

-                              BranchConditional 17 13 12

-              13:               Label

-              25:      7(int)   Load 9(i)

-              28:   19(fvec4)   Load 27(color)

-              30:     29(ptr)   AccessChain 24(colorOut) 25

-                                Store 30 28

-              31:      7(int)   Load 9(i)

-              32:      7(int)   IAdd 31 10

-                                Store 9(i) 32

-                                Branch 11

-              12:             Label

-              35:     29(ptr) AccessChain 24(colorOut) 34

-              36:   19(fvec4) Load 35

-                              Store 33(gl_Position) 36

-                              Branch 6

-               6:             Label

+              34:     28(ptr) AccessChain 23(colorOut) 33

+              35:   18(fvec4) Load 34

+                              Store 32(gl_Position) 35

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.depthOut.frag.out b/Test/baseResults/spv.depthOut.frag.out
index 319d79b..426b106 100755
--- a/Test/baseResults/spv.depthOut.frag.out
+++ b/Test/baseResults/spv.depthOut.frag.out
@@ -8,7 +8,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 19

+// Id's are bound by 18

 

                               Source GLSL 130

                               Capability Shader

@@ -17,33 +17,31 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "gl_FragDepth"

-                              Name 11  "Depth"

-                              Name 15  "gl_FragColor"

-                              Name 17  "Color"

-                              Decorate 9(gl_FragDepth) BuiltIn FragDepth

-                              Decorate 11(Depth) Smooth

-                              Decorate 15(gl_FragColor) BuiltIn FragColor

-                              Decorate 17(Color) Smooth

+                              Name 8  "gl_FragDepth"

+                              Name 10  "Depth"

+                              Name 14  "gl_FragColor"

+                              Name 16  "Color"

+                              Decorate 8(gl_FragDepth) BuiltIn FragDepth

+                              Decorate 10(Depth) Smooth

+                              Decorate 14(gl_FragColor) BuiltIn FragColor

+                              Decorate 16(Color) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Output 7(float)

- 9(gl_FragDepth):      8(ptr) Variable Output

-              10:             TypePointer Input 7(float)

-       11(Depth):     10(ptr) Variable Input

-              13:             TypeVector 7(float) 4

-              14:             TypePointer Output 13(fvec4)

-15(gl_FragColor):     14(ptr) Variable Output

-              16:             TypePointer Input 13(fvec4)

-       17(Color):     16(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypePointer Output 6(float)

+ 8(gl_FragDepth):      7(ptr) Variable Output

+               9:             TypePointer Input 6(float)

+       10(Depth):      9(ptr) Variable Input

+              12:             TypeVector 6(float) 4

+              13:             TypePointer Output 12(fvec4)

+14(gl_FragColor):     13(ptr) Variable Output

+              15:             TypePointer Input 12(fvec4)

+       16(Color):     15(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              12:    7(float) Load 11(Depth)

-                              Store 9(gl_FragDepth) 12

-              18:   13(fvec4) Load 17(Color)

-                              Store 15(gl_FragColor) 18

-                              Branch 6

-               6:             Label

+              11:    6(float) Load 10(Depth)

+                              Store 8(gl_FragDepth) 11

+              17:   12(fvec4) Load 16(Color)

+                              Store 14(gl_FragColor) 17

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.discard-dce.frag.out b/Test/baseResults/spv.discard-dce.frag.out
index ef1bf46..087fe69 100755
--- a/Test/baseResults/spv.discard-dce.frag.out
+++ b/Test/baseResults/spv.discard-dce.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 81

+// Id's are bound by 80

 

                               Source GLSL 110

                               Capability Shader

@@ -14,117 +14,115 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "white"

-                              Name 13  "black"

-                              Name 16  "color"

-                              Name 19  "x"

-                              Name 22  "tex_coord"

-                              Name 28  "y"

-                              Name 33  "radius"

-                              Name 56  "gl_FragColor"

-                              Decorate 22(tex_coord) Smooth

-                              Decorate 56(gl_FragColor) BuiltIn FragColor

+                              Name 9  "white"

+                              Name 12  "black"

+                              Name 15  "color"

+                              Name 18  "x"

+                              Name 21  "tex_coord"

+                              Name 27  "y"

+                              Name 32  "radius"

+                              Name 55  "gl_FragColor"

+                              Decorate 21(tex_coord) Smooth

+                              Decorate 55(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:    7(float) Constant 1065353216

-              12:    8(fvec4) ConstantComposite 11 11 11 11

-              14:    7(float) Constant 1045220557

-              15:    8(fvec4) ConstantComposite 14 14 14 14

-              18:             TypePointer Function 7(float)

-              20:             TypeVector 7(float) 2

-              21:             TypePointer Input 20(fvec2)

-   22(tex_coord):     21(ptr) Variable Input

-              25:    7(float) Constant 1073741824

-              43:             TypeBool

-              48:    7(float) Constant 1066192077

-              55:             TypePointer Output 8(fvec4)

-56(gl_FragColor):     55(ptr) Variable Output

-              59:    7(float) Constant 1067030938

-              68:    7(float) Constant 1061158912

-              73:    7(float) Constant 1098907648

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:    6(float) Constant 1065353216

+              11:    7(fvec4) ConstantComposite 10 10 10 10

+              13:    6(float) Constant 1045220557

+              14:    7(fvec4) ConstantComposite 13 13 13 13

+              17:             TypePointer Function 6(float)

+              19:             TypeVector 6(float) 2

+              20:             TypePointer Input 19(fvec2)

+   21(tex_coord):     20(ptr) Variable Input

+              24:    6(float) Constant 1073741824

+              42:             TypeBool

+              47:    6(float) Constant 1066192077

+              54:             TypePointer Output 7(fvec4)

+55(gl_FragColor):     54(ptr) Variable Output

+              58:    6(float) Constant 1067030938

+              67:    6(float) Constant 1061158912

+              72:    6(float) Constant 1098907648

          4(main):           2 Function None 3

                5:             Label

-       10(white):      9(ptr) Variable Function

-       13(black):      9(ptr) Variable Function

-       16(color):      9(ptr) Variable Function

-           19(x):     18(ptr) Variable Function

-           28(y):     18(ptr) Variable Function

-      33(radius):     18(ptr) Variable Function

-                              Store 10(white) 12

-                              Store 13(black) 15

-              17:    8(fvec4) Load 10(white)

-                              Store 16(color) 17

-              23:   20(fvec2) Load 22(tex_coord)

-              24:    7(float) CompositeExtract 23 0

-              26:    7(float) FMul 24 25

-              27:    7(float) FSub 26 11

-                              Store 19(x) 27

-              29:   20(fvec2) Load 22(tex_coord)

-              30:    7(float) CompositeExtract 29 1

-              31:    7(float) FMul 30 25

-              32:    7(float) FSub 31 11

-                              Store 28(y) 32

-              34:    7(float) Load 19(x)

-              35:    7(float) Load 19(x)

-              36:    7(float) FMul 34 35

-              37:    7(float) Load 28(y)

-              38:    7(float) Load 28(y)

-              39:    7(float) FMul 37 38

-              40:    7(float) FAdd 36 39

-              41:    7(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 40

-                              Store 33(radius) 41

-              42:    7(float) Load 33(radius)

-              44:    43(bool) FOrdGreaterThan 42 11

-                              SelectionMerge 46 None

-                              BranchConditional 44 45 46

-              45:               Label

-              47:    7(float)   Load 33(radius)

-              49:    43(bool)   FOrdGreaterThan 47 48

-                                SelectionMerge 51 None

-                                BranchConditional 49 50 51

-              50:                 Label

-              52:    8(fvec4)     Load 16(color)

-              53:    8(fvec4)     CompositeConstruct 11 11 11 11

-              54:    8(fvec4)     FAdd 52 53

-                                  Store 16(color) 54

-                                  Branch 51

-              51:               Label

-              57:    8(fvec4)   Load 16(color)

-                                Store 56(gl_FragColor) 57

-              58:    7(float)   Load 33(radius)

-              60:    43(bool)   FOrdGreaterThan 58 59

-                                SelectionMerge 62 None

-                                BranchConditional 60 61 62

-              61:                 Label

-              63:    8(fvec4)     Load 16(color)

-              64:    8(fvec4)     CompositeConstruct 11 11 11 11

-              65:    8(fvec4)     FAdd 63 64

-                                  Store 16(color) 65

-                                  Branch 62

-              62:               Label

+        9(white):      8(ptr) Variable Function

+       12(black):      8(ptr) Variable Function

+       15(color):      8(ptr) Variable Function

+           18(x):     17(ptr) Variable Function

+           27(y):     17(ptr) Variable Function

+      32(radius):     17(ptr) Variable Function

+                              Store 9(white) 11

+                              Store 12(black) 14

+              16:    7(fvec4) Load 9(white)

+                              Store 15(color) 16

+              22:   19(fvec2) Load 21(tex_coord)

+              23:    6(float) CompositeExtract 22 0

+              25:    6(float) FMul 23 24

+              26:    6(float) FSub 25 10

+                              Store 18(x) 26

+              28:   19(fvec2) Load 21(tex_coord)

+              29:    6(float) CompositeExtract 28 1

+              30:    6(float) FMul 29 24

+              31:    6(float) FSub 30 10

+                              Store 27(y) 31

+              33:    6(float) Load 18(x)

+              34:    6(float) Load 18(x)

+              35:    6(float) FMul 33 34

+              36:    6(float) Load 27(y)

+              37:    6(float) Load 27(y)

+              38:    6(float) FMul 36 37

+              39:    6(float) FAdd 35 38

+              40:    6(float) ExtInst 1(GLSL.std.450) 31(Sqrt) 39

+                              Store 32(radius) 40

+              41:    6(float) Load 32(radius)

+              43:    42(bool) FOrdGreaterThan 41 10

+                              SelectionMerge 45 None

+                              BranchConditional 43 44 45

+              44:               Label

+              46:    6(float)   Load 32(radius)

+              48:    42(bool)   FOrdGreaterThan 46 47

+                                SelectionMerge 50 None

+                                BranchConditional 48 49 50

+              49:                 Label

+              51:    7(fvec4)     Load 15(color)

+              52:    7(fvec4)     CompositeConstruct 10 10 10 10

+              53:    7(fvec4)     FAdd 51 52

+                                  Store 15(color) 53

+                                  Branch 50

+              50:               Label

+              56:    7(fvec4)   Load 15(color)

+                                Store 55(gl_FragColor) 56

+              57:    6(float)   Load 32(radius)

+              59:    42(bool)   FOrdGreaterThan 57 58

+                                SelectionMerge 61 None

+                                BranchConditional 59 60 61

+              60:                 Label

+              62:    7(fvec4)     Load 15(color)

+              63:    7(fvec4)     CompositeConstruct 10 10 10 10

+              64:    7(fvec4)     FAdd 62 63

+                                  Store 15(color) 64

+                                  Branch 61

+              61:               Label

                                 Kill

-              46:             Label

-              67:    7(float) Load 33(radius)

-              69:    43(bool) FOrdGreaterThanEqual 67 68

-                              SelectionMerge 71 None

-                              BranchConditional 69 70 71

-              70:               Label

-              72:    7(float)   Load 33(radius)

-              74:    7(float)   ExtInst 1(GLSL.std.450) 26(Pow) 72 73

-              75:    7(float)   FDiv 74 25

-              76:    7(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 75

-              77:    8(fvec4)   Load 16(color)

-              78:    8(fvec4)   CompositeConstruct 76 76 76 76

-              79:    8(fvec4)   FSub 77 78

-                                Store 16(color) 79

-                                Branch 71

-              71:             Label

-              80:    8(fvec4) Load 16(color)

-                              Store 56(gl_FragColor) 80

-                              Branch 6

-               6:             Label

+              45:             Label

+              66:    6(float) Load 32(radius)

+              68:    42(bool) FOrdGreaterThanEqual 66 67

+                              SelectionMerge 70 None

+                              BranchConditional 68 69 70

+              69:               Label

+              71:    6(float)   Load 32(radius)

+              73:    6(float)   ExtInst 1(GLSL.std.450) 26(Pow) 71 72

+              74:    6(float)   FDiv 73 24

+              75:    6(float)   ExtInst 1(GLSL.std.450) 4(FAbs) 74

+              76:    7(fvec4)   Load 15(color)

+              77:    7(fvec4)   CompositeConstruct 75 75 75 75

+              78:    7(fvec4)   FSub 76 77

+                                Store 15(color) 78

+                                Branch 70

+              70:             Label

+              79:    7(fvec4) Load 15(color)

+                              Store 55(gl_FragColor) 79

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.do-simple.vert.out b/Test/baseResults/spv.do-simple.vert.out
index 4ba5330..be11114 100755
--- a/Test/baseResults/spv.do-simple.vert.out
+++ b/Test/baseResults/spv.do-simple.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 30

+// Id's are bound by 29

 

                               Source ESSL 300

                               Capability Shader

@@ -13,52 +13,50 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 28  "gl_VertexID"

-                              Name 29  "gl_InstanceID"

-                              Decorate 28(gl_VertexID) BuiltIn VertexId

-                              Decorate 28(gl_VertexID) NoStaticUse

-                              Decorate 29(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 29(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 27  "gl_VertexID"

+                              Name 28  "gl_InstanceID"

+                              Decorate 27(gl_VertexID) BuiltIn VertexId

+                              Decorate 27(gl_VertexID) NoStaticUse

+                              Decorate 28(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 28(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:             TypeBool

-              16:    15(bool) ConstantTrue

-              20:      7(int) Constant 10

-              24:      7(int) Constant 1

-              26:    15(bool) ConstantFalse

-              27:             TypePointer Input 7(int)

- 28(gl_VertexID):     27(ptr) Variable Input

-29(gl_InstanceID):     27(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:             TypeBool

+              15:    14(bool) ConstantTrue

+              19:      6(int) Constant 10

+              23:      6(int) Constant 1

+              25:    14(bool) ConstantFalse

+              26:             TypePointer Input 6(int)

+ 27(gl_VertexID):     26(ptr) Variable Input

+28(gl_InstanceID):     26(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

-              11:             Label

-              14:    15(bool) Phi 16 5 26 13

-                              LoopMerge 12 None

-                              Branch 17

-              17:             Label

-                              SelectionMerge 13 None

-                              BranchConditional 14 13 18

-              18:               Label

-              19:      7(int)   Load 9(i)

-              21:    15(bool)   SLessThan 19 20

-                                SelectionMerge 22 None

-                                BranchConditional 21 22 12

-              22:               Label

-                                Branch 13

-              13:             Label

-              23:      7(int) Load 9(i)

-              25:      7(int) IAdd 23 24

-                              Store 9(i) 25

-                              Branch 11

+            8(i):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:    14(bool) Phi 15 5 25 12

+                              LoopMerge 11 None

+                              Branch 16

+              16:             Label

+                              SelectionMerge 12 None

+                              BranchConditional 13 12 17

+              17:               Label

+              18:      6(int)   Load 8(i)

+              20:    14(bool)   SLessThan 18 19

+                                SelectionMerge 21 None

+                                BranchConditional 20 21 11

+              21:               Label

+                                Branch 12

               12:             Label

-                              Branch 6

-               6:             Label

+              22:      6(int) Load 8(i)

+              24:      6(int) IAdd 22 23

+                              Store 8(i) 24

+                              Branch 10

+              11:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.do-while-continue-break.vert.out b/Test/baseResults/spv.do-while-continue-break.vert.out
index e230233..5687acd 100755
--- a/Test/baseResults/spv.do-while-continue-break.vert.out
+++ b/Test/baseResults/spv.do-while-continue-break.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 52

+// Id's are bound by 51

 

                               Source ESSL 300

                               Capability Shader

@@ -13,96 +13,94 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 25  "A"

-                              Name 31  "B"

-                              Name 34  "C"

-                              Name 40  "D"

-                              Name 43  "E"

-                              Name 45  "F"

-                              Name 47  "G"

-                              Name 50  "gl_VertexID"

-                              Name 51  "gl_InstanceID"

-                              Decorate 50(gl_VertexID) BuiltIn VertexId

-                              Decorate 50(gl_VertexID) NoStaticUse

-                              Decorate 51(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 51(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 24  "A"

+                              Name 30  "B"

+                              Name 33  "C"

+                              Name 39  "D"

+                              Name 42  "E"

+                              Name 44  "F"

+                              Name 46  "G"

+                              Name 49  "gl_VertexID"

+                              Name 50  "gl_InstanceID"

+                              Decorate 49(gl_VertexID) BuiltIn VertexId

+                              Decorate 49(gl_VertexID) NoStaticUse

+                              Decorate 50(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 50(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:             TypeBool

-              16:    15(bool) ConstantTrue

-              20:      7(int) Constant 1

-              22:      7(int) Constant 19

-              27:      7(int) Constant 2

-              32:    15(bool) ConstantFalse

-              36:      7(int) Constant 5

-              41:      7(int) Constant 3

-              44:      7(int) Constant 42

-              46:      7(int) Constant 99

-              48:      7(int) Constant 12

-              49:             TypePointer Input 7(int)

- 50(gl_VertexID):     49(ptr) Variable Input

-51(gl_InstanceID):     49(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:             TypeBool

+              15:    14(bool) ConstantTrue

+              19:      6(int) Constant 1

+              21:      6(int) Constant 19

+              26:      6(int) Constant 2

+              31:    14(bool) ConstantFalse

+              35:      6(int) Constant 5

+              40:      6(int) Constant 3

+              43:      6(int) Constant 42

+              45:      6(int) Constant 99

+              47:      6(int) Constant 12

+              48:             TypePointer Input 6(int)

+ 49(gl_VertexID):     48(ptr) Variable Input

+50(gl_InstanceID):     48(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-           25(A):      8(ptr) Variable Function

-           31(B):      8(ptr) Variable Function

-           34(C):      8(ptr) Variable Function

-           40(D):      8(ptr) Variable Function

-           43(E):      8(ptr) Variable Function

-           45(F):      8(ptr) Variable Function

-           47(G):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

-              11:             Label

-              14:    15(bool) Phi 16 5 32 29 32 39

-                              LoopMerge 12 None

-                              Branch 17

-              17:             Label

-                              SelectionMerge 13 None

-                              BranchConditional 14 13 18

-              18:               Label

-              19:      7(int)   Load 9(i)

-              21:      7(int)   IAdd 19 20

-                                Store 9(i) 21

-              23:    15(bool)   SLessThan 21 22

-                                SelectionMerge 24 None

-                                BranchConditional 23 24 12

-              24:               Label

-                                Branch 13

-              13:             Label

-                              Store 25(A) 10

-              26:      7(int) Load 9(i)

-              28:    15(bool) IEqual 26 27

-                              SelectionMerge 30 None

-                              BranchConditional 28 29 30

-              29:               Label

-                                Store 31(B) 20

-                                Branch 11

-              33:               Label

-                                Store 34(C) 27

-                                Branch 30

-              30:             Label

-              35:      7(int) Load 9(i)

-              37:    15(bool) IEqual 35 36

-                              SelectionMerge 39 None

-                              BranchConditional 37 38 39

-              38:               Label

-                                Store 40(D) 41

+            8(i):      7(ptr) Variable Function

+           24(A):      7(ptr) Variable Function

+           30(B):      7(ptr) Variable Function

+           33(C):      7(ptr) Variable Function

+           39(D):      7(ptr) Variable Function

+           42(E):      7(ptr) Variable Function

+           44(F):      7(ptr) Variable Function

+           46(G):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:    14(bool) Phi 15 5 31 28 31 38

+                              LoopMerge 11 None

+                              Branch 16

+              16:             Label

+                              SelectionMerge 12 None

+                              BranchConditional 13 12 17

+              17:               Label

+              18:      6(int)   Load 8(i)

+              20:      6(int)   IAdd 18 19

+                                Store 8(i) 20

+              22:    14(bool)   SLessThan 20 21

+                                SelectionMerge 23 None

+                                BranchConditional 22 23 11

+              23:               Label

                                 Branch 12

-              42:               Label

-                                Store 43(E) 44

-                                Branch 39

-              39:             Label

-                              Store 45(F) 46

-                              Branch 11

               12:             Label

-                              Store 47(G) 48

-                              Branch 6

-               6:             Label

+                              Store 24(A) 9

+              25:      6(int) Load 8(i)

+              27:    14(bool) IEqual 25 26

+                              SelectionMerge 29 None

+                              BranchConditional 27 28 29

+              28:               Label

+                                Store 30(B) 19

+                                Branch 10

+              32:               Label

+                                Store 33(C) 26

+                                Branch 29

+              29:             Label

+              34:      6(int) Load 8(i)

+              36:    14(bool) IEqual 34 35

+                              SelectionMerge 38 None

+                              BranchConditional 36 37 38

+              37:               Label

+                                Store 39(D) 40

+                                Branch 11

+              41:               Label

+                                Store 42(E) 43

+                                Branch 38

+              38:             Label

+                              Store 44(F) 45

+                              Branch 10

+              11:             Label

+                              Store 46(G) 47

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.doWhileLoop.frag.out b/Test/baseResults/spv.doWhileLoop.frag.out
index 4034137..1a204b0 100755
--- a/Test/baseResults/spv.doWhileLoop.frag.out
+++ b/Test/baseResults/spv.doWhileLoop.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 38

+// Id's are bound by 37

 

                               Source GLSL 110

                               Capability Shader

@@ -14,61 +14,59 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 25  "d"

-                              Name 30  "bigColor"

-                              Name 36  "gl_FragColor"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 36(gl_FragColor) BuiltIn FragColor

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 24  "d"

+                              Name 29  "bigColor"

+                              Name 35  "gl_FragColor"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 35(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              18:             TypeBool

-              19:    18(bool) ConstantTrue

-              24:             TypePointer UniformConstant 7(float)

-           25(d):     24(ptr) Variable UniformConstant

-              29:             TypePointer UniformConstant 8(fvec4)

-    30(bigColor):     29(ptr) Variable UniformConstant

-              34:    18(bool) ConstantFalse

-              35:             TypePointer Output 8(fvec4)

-36(gl_FragColor):     35(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              17:             TypeBool

+              18:    17(bool) ConstantTrue

+              23:             TypePointer UniformConstant 6(float)

+           24(d):     23(ptr) Variable UniformConstant

+              28:             TypePointer UniformConstant 7(fvec4)

+    29(bigColor):     28(ptr) Variable UniformConstant

+              33:    17(bool) ConstantFalse

+              34:             TypePointer Output 7(fvec4)

+35(gl_FragColor):     34(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-                              Branch 14

-              14:             Label

-              17:    18(bool) Phi 19 5 34 16

-                              LoopMerge 15 None

-                              Branch 20

-              20:             Label

-                              SelectionMerge 16 None

-                              BranchConditional 17 16 21

-              21:               Label

-              22:    8(fvec4)   Load 10(color)

-              23:    7(float)   CompositeExtract 22 0

-              26:    7(float)   Load 25(d)

-              27:    18(bool)   FOrdLessThan 23 26

-                                SelectionMerge 28 None

-                                BranchConditional 27 28 15

-              28:               Label

-                                Branch 16

-              16:             Label

-              31:    8(fvec4) Load 30(bigColor)

-              32:    8(fvec4) Load 10(color)

-              33:    8(fvec4) FAdd 32 31

-                              Store 10(color) 33

-                              Branch 14

+        9(color):      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+                              Branch 13

+              13:             Label

+              16:    17(bool) Phi 18 5 33 15

+                              LoopMerge 14 None

+                              Branch 19

+              19:             Label

+                              SelectionMerge 15 None

+                              BranchConditional 16 15 20

+              20:               Label

+              21:    7(fvec4)   Load 9(color)

+              22:    6(float)   CompositeExtract 21 0

+              25:    6(float)   Load 24(d)

+              26:    17(bool)   FOrdLessThan 22 25

+                                SelectionMerge 27 None

+                                BranchConditional 26 27 14

+              27:               Label

+                                Branch 15

               15:             Label

-              37:    8(fvec4) Load 10(color)

-                              Store 36(gl_FragColor) 37

-                              Branch 6

-               6:             Label

+              30:    7(fvec4) Load 29(bigColor)

+              31:    7(fvec4) Load 9(color)

+              32:    7(fvec4) FAdd 31 30

+                              Store 9(color) 32

+                              Branch 13

+              14:             Label

+              36:    7(fvec4) Load 9(color)

+                              Store 35(gl_FragColor) 36

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.double.comp.out b/Test/baseResults/spv.double.comp.out
index d77bc0c..d3bf5c4 100755
--- a/Test/baseResults/spv.double.comp.out
+++ b/Test/baseResults/spv.double.comp.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 63

+// Id's are bound by 62

 

                               Source GLSL 430

                               Capability Shader

@@ -15,95 +15,93 @@
                               MemoryModel Logical GLSL450

                               EntryPoint GLCompute 4  "main"

                               Name 4  "main"

-                              Name 9  "bufName"

-                              MemberName 9(bufName) 0  "f"

-                              MemberName 9(bufName) 1  "d"

-                              Name 11  "bufInst"

-                              Name 23  "storePos"

-                              Name 27  "gl_GlobalInvocationID"

-                              Name 33  "localCoef"

-                              Name 34  "gl_LocalInvocationID"

-                              Name 50  "aa"

-                              Name 55  "globalCoef"

-                              Name 59  "roll"

-                              Name 62  "destTex"

-                              Decorate 9(bufName) GLSLShared

-                              Decorate 9(bufName) BufferBlock

-                              Decorate 27(gl_GlobalInvocationID) BuiltIn GlobalInvocationId

-                              Decorate 34(gl_LocalInvocationID) BuiltIn LocalInvocationId

-                              Decorate 14 NoStaticUse

-                              Decorate 57 NoStaticUse

-                              Decorate 14 NoStaticUse

-                              Decorate 14 NoStaticUse

-                              Decorate 59(roll) NoStaticUse

-                              Decorate 62(destTex) NoStaticUse

+                              Name 8  "bufName"

+                              MemberName 8(bufName) 0  "f"

+                              MemberName 8(bufName) 1  "d"

+                              Name 10  "bufInst"

+                              Name 22  "storePos"

+                              Name 26  "gl_GlobalInvocationID"

+                              Name 32  "localCoef"

+                              Name 33  "gl_LocalInvocationID"

+                              Name 49  "aa"

+                              Name 54  "globalCoef"

+                              Name 58  "roll"

+                              Name 61  "destTex"

+                              Decorate 8(bufName) GLSLShared

+                              Decorate 8(bufName) BufferBlock

+                              Decorate 26(gl_GlobalInvocationID) BuiltIn GlobalInvocationId

+                              Decorate 33(gl_LocalInvocationID) BuiltIn LocalInvocationId

+                              Decorate 13 NoStaticUse

+                              Decorate 56 NoStaticUse

+                              Decorate 13 NoStaticUse

+                              Decorate 13 NoStaticUse

+                              Decorate 58(roll) NoStaticUse

+                              Decorate 61(destTex) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeFloat 64

-      9(bufName):             TypeStruct 7(float) 8(float)

-              10:             TypePointer Uniform 9(bufName)

-     11(bufInst):     10(ptr) Variable Uniform

-              12:             TypeInt 32 1

-              13:     12(int) Constant 1

-              14:    8(float) Constant 1413754136 1074340347

-              15:             TypePointer Uniform 8(float)

-              17:     12(int) Constant 0

-              18:    7(float) Constant 1095307129

-              19:             TypePointer Uniform 7(float)

-              21:             TypeVector 12(int) 2

-              22:             TypePointer Function 21(ivec2)

-              24:             TypeInt 32 0

-              25:             TypeVector 24(int) 3

-              26:             TypePointer Input 25(ivec3)

-27(gl_GlobalInvocationID):     26(ptr) Variable Input

-              28:             TypeVector 24(int) 2

-              32:             TypePointer Function 8(float)

-34(gl_LocalInvocationID):     26(ptr) Variable Input

-              38:     12(int) Constant 8

-              41:             TypeVector 7(float) 2

-              43:    7(float) Constant 1090519040

-              48:             TypeVector 8(float) 4

-              49:             TypePointer Function 48(fvec4)

-              51:    8(float) Constant 2576980378 1071225241

-              52:    8(float) Constant 2576980378 1070176665

-              53:    8(float) Constant 858993459 1070805811

-              54:   48(fvec4) ConstantComposite 51 52 53 51

-              56:    8(float) Constant 0 1072693248

-              57:    8(float) Constant 3229815407 1074340298

-              58:             TypePointer UniformConstant 8(float)

-        59(roll):     58(ptr) Variable UniformConstant

-              60:             TypeImage 7(float) 2D nonsampled format:Unknown

-              61:             TypePointer UniformConstant 60

-     62(destTex):     61(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeFloat 64

+      8(bufName):             TypeStruct 6(float) 7(float)

+               9:             TypePointer Uniform 8(bufName)

+     10(bufInst):      9(ptr) Variable Uniform

+              11:             TypeInt 32 1

+              12:     11(int) Constant 1

+              13:    7(float) Constant 1413754136 1074340347

+              14:             TypePointer Uniform 7(float)

+              16:     11(int) Constant 0

+              17:    6(float) Constant 1095307129

+              18:             TypePointer Uniform 6(float)

+              20:             TypeVector 11(int) 2

+              21:             TypePointer Function 20(ivec2)

+              23:             TypeInt 32 0

+              24:             TypeVector 23(int) 3

+              25:             TypePointer Input 24(ivec3)

+26(gl_GlobalInvocationID):     25(ptr) Variable Input

+              27:             TypeVector 23(int) 2

+              31:             TypePointer Function 7(float)

+33(gl_LocalInvocationID):     25(ptr) Variable Input

+              37:     11(int) Constant 8

+              40:             TypeVector 6(float) 2

+              42:    6(float) Constant 1090519040

+              47:             TypeVector 7(float) 4

+              48:             TypePointer Function 47(fvec4)

+              50:    7(float) Constant 2576980378 1071225241

+              51:    7(float) Constant 2576980378 1070176665

+              52:    7(float) Constant 858993459 1070805811

+              53:   47(fvec4) ConstantComposite 50 51 52 50

+              55:    7(float) Constant 0 1072693248

+              56:    7(float) Constant 3229815407 1074340298

+              57:             TypePointer UniformConstant 7(float)

+        58(roll):     57(ptr) Variable UniformConstant

+              59:             TypeImage 6(float) 2D nonsampled format:Unknown

+              60:             TypePointer UniformConstant 59

+     61(destTex):     60(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-    23(storePos):     22(ptr) Variable Function

-   33(localCoef):     32(ptr) Variable Function

-          50(aa):     49(ptr) Variable Function

-  55(globalCoef):     32(ptr) Variable Function

-              16:     15(ptr) AccessChain 11(bufInst) 13

-                              Store 16 14

-              20:     19(ptr) AccessChain 11(bufInst) 17

-                              Store 20 18

-              29:   25(ivec3) Load 27(gl_GlobalInvocationID)

-              30:   28(ivec2) VectorShuffle 29 29 0 1

-              31:   21(ivec2) Bitcast 30

-                              Store 23(storePos) 31

-              35:   25(ivec3) Load 34(gl_LocalInvocationID)

-              36:   28(ivec2) VectorShuffle 35 35 0 1

-              37:   21(ivec2) Bitcast 36

-              39:   21(ivec2) CompositeConstruct 38 38

-              40:   21(ivec2) ISub 37 39

-              42:   41(fvec2) ConvertSToF 40

-              44:   41(fvec2) CompositeConstruct 43 43

-              45:   41(fvec2) FDiv 42 44

-              46:    7(float) ExtInst 1(GLSL.std.450) 65(Length) 45

-              47:    8(float) FConvert 46

-                              Store 33(localCoef) 47

-                              Store 50(aa) 54

-                              Store 55(globalCoef) 56

-                              Branch 6

-               6:             Label

+    22(storePos):     21(ptr) Variable Function

+   32(localCoef):     31(ptr) Variable Function

+          49(aa):     48(ptr) Variable Function

+  54(globalCoef):     31(ptr) Variable Function

+              15:     14(ptr) AccessChain 10(bufInst) 12

+                              Store 15 13

+              19:     18(ptr) AccessChain 10(bufInst) 16

+                              Store 19 17

+              28:   24(ivec3) Load 26(gl_GlobalInvocationID)

+              29:   27(ivec2) VectorShuffle 28 28 0 1

+              30:   20(ivec2) Bitcast 29

+                              Store 22(storePos) 30

+              34:   24(ivec3) Load 33(gl_LocalInvocationID)

+              35:   27(ivec2) VectorShuffle 34 34 0 1

+              36:   20(ivec2) Bitcast 35

+              38:   20(ivec2) CompositeConstruct 37 37

+              39:   20(ivec2) ISub 36 38

+              41:   40(fvec2) ConvertSToF 39

+              43:   40(fvec2) CompositeConstruct 42 42

+              44:   40(fvec2) FDiv 41 43

+              45:    6(float) ExtInst 1(GLSL.std.450) 65(Length) 44

+              46:    7(float) FConvert 45

+                              Store 32(localCoef) 46

+                              Store 49(aa) 53

+                              Store 54(globalCoef) 55

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.earlyReturnDiscard.frag.out b/Test/baseResults/spv.earlyReturnDiscard.frag.out
index e2df2e7..1ed8627 100755
--- a/Test/baseResults/spv.earlyReturnDiscard.frag.out
+++ b/Test/baseResults/spv.earlyReturnDiscard.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 112

+// Id's are bound by 111

 

                               Source GLSL 110

                               Capability Shader

@@ -14,167 +14,165 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 14  "color2"

-                              Name 16  "otherColor"

-                              Name 19  "c"

-                              Name 22  "d"

-                              Name 28  "bigColor"

-                              Name 33  "smallColor"

-                              Name 39  "minimum"

-                              Name 53  "threshhold"

-                              Name 64  "threshhold2"

-                              Name 78  "b"

-                              Name 107  "gl_FragColor"

-                              Name 111  "threshhold3"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 19(c) Smooth

-                              Decorate 107(gl_FragColor) BuiltIn FragColor

-                              Decorate 111(threshhold3) NoStaticUse

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 13  "color2"

+                              Name 15  "otherColor"

+                              Name 18  "c"

+                              Name 21  "d"

+                              Name 27  "bigColor"

+                              Name 32  "smallColor"

+                              Name 38  "minimum"

+                              Name 52  "threshhold"

+                              Name 63  "threshhold2"

+                              Name 77  "b"

+                              Name 106  "gl_FragColor"

+                              Name 110  "threshhold3"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 18(c) Smooth

+                              Decorate 106(gl_FragColor) BuiltIn FragColor

+                              Decorate 110(threshhold3) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              15:             TypePointer UniformConstant 8(fvec4)

-  16(otherColor):     15(ptr) Variable UniformConstant

-              18:             TypePointer Input 7(float)

-           19(c):     18(ptr) Variable Input

-              21:             TypePointer UniformConstant 7(float)

-           22(d):     21(ptr) Variable UniformConstant

-              24:             TypeBool

-    28(bigColor):     15(ptr) Variable UniformConstant

-  33(smallColor):     15(ptr) Variable UniformConstant

-     39(minimum):     21(ptr) Variable UniformConstant

-              47:    7(float) Constant 1065353216

-  53(threshhold):     21(ptr) Variable UniformConstant

- 64(threshhold2):     21(ptr) Variable UniformConstant

-              77:             TypePointer UniformConstant 24(bool)

-           78(b):     77(ptr) Variable UniformConstant

-             106:             TypePointer Output 8(fvec4)

-107(gl_FragColor):    106(ptr) Variable Output

-111(threshhold3):     21(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              14:             TypePointer UniformConstant 7(fvec4)

+  15(otherColor):     14(ptr) Variable UniformConstant

+              17:             TypePointer Input 6(float)

+           18(c):     17(ptr) Variable Input

+              20:             TypePointer UniformConstant 6(float)

+           21(d):     20(ptr) Variable UniformConstant

+              23:             TypeBool

+    27(bigColor):     14(ptr) Variable UniformConstant

+  32(smallColor):     14(ptr) Variable UniformConstant

+     38(minimum):     20(ptr) Variable UniformConstant

+              46:    6(float) Constant 1065353216

+  52(threshhold):     20(ptr) Variable UniformConstant

+ 63(threshhold2):     20(ptr) Variable UniformConstant

+              76:             TypePointer UniformConstant 23(bool)

+           77(b):     76(ptr) Variable UniformConstant

+             105:             TypePointer Output 7(fvec4)

+106(gl_FragColor):    105(ptr) Variable Output

+110(threshhold3):     20(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-      14(color2):      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-              17:    8(fvec4) Load 16(otherColor)

-                              Store 14(color2) 17

-              20:    7(float) Load 19(c)

-              23:    7(float) Load 22(d)

-              25:    24(bool) FOrdGreaterThan 20 23

-                              SelectionMerge 27 None

-                              BranchConditional 25 26 32

-              26:               Label

-              29:    8(fvec4)   Load 28(bigColor)

-              30:    8(fvec4)   Load 10(color)

-              31:    8(fvec4)   FAdd 30 29

-                                Store 10(color) 31

-                                Branch 27

-              32:               Label

-              34:    8(fvec4)   Load 33(smallColor)

-              35:    8(fvec4)   Load 10(color)

-              36:    8(fvec4)   FAdd 35 34

-                                Store 10(color) 36

-                                Branch 27

-              27:             Label

-              37:    8(fvec4) Load 10(color)

-              38:    7(float) CompositeExtract 37 2

-              40:    7(float) Load 39(minimum)

-              41:    24(bool) FOrdLessThan 38 40

-                              SelectionMerge 43 None

-                              BranchConditional 41 42 43

-              42:               Label

-                                Branch 6

-              43:             Label

-              45:    8(fvec4) Load 10(color)

-              46:    7(float) CompositeExtract 45 2

-              48:    7(float) FAdd 46 47

-              49:    8(fvec4) Load 10(color)

-              50:    8(fvec4) CompositeInsert 48 49 2

-                              Store 10(color) 50

-              51:    8(fvec4) Load 10(color)

-              52:    7(float) CompositeExtract 51 2

-              54:    7(float) Load 53(threshhold)

-              55:    24(bool) FOrdGreaterThan 52 54

-                              SelectionMerge 57 None

-                              BranchConditional 55 56 57

-              56:               Label

+        9(color):      8(ptr) Variable Function

+      13(color2):      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+              16:    7(fvec4) Load 15(otherColor)

+                              Store 13(color2) 16

+              19:    6(float) Load 18(c)

+              22:    6(float) Load 21(d)

+              24:    23(bool) FOrdGreaterThan 19 22

+                              SelectionMerge 26 None

+                              BranchConditional 24 25 31

+              25:               Label

+              28:    7(fvec4)   Load 27(bigColor)

+              29:    7(fvec4)   Load 9(color)

+              30:    7(fvec4)   FAdd 29 28

+                                Store 9(color) 30

+                                Branch 26

+              31:               Label

+              33:    7(fvec4)   Load 32(smallColor)

+              34:    7(fvec4)   Load 9(color)

+              35:    7(fvec4)   FAdd 34 33

+                                Store 9(color) 35

+                                Branch 26

+              26:             Label

+              36:    7(fvec4) Load 9(color)

+              37:    6(float) CompositeExtract 36 2

+              39:    6(float) Load 38(minimum)

+              40:    23(bool) FOrdLessThan 37 39

+                              SelectionMerge 42 None

+                              BranchConditional 40 41 42

+              41:               Label

+                                Return

+              42:             Label

+              44:    7(fvec4) Load 9(color)

+              45:    6(float) CompositeExtract 44 2

+              47:    6(float) FAdd 45 46

+              48:    7(fvec4) Load 9(color)

+              49:    7(fvec4) CompositeInsert 47 48 2

+                              Store 9(color) 49

+              50:    7(fvec4) Load 9(color)

+              51:    6(float) CompositeExtract 50 2

+              53:    6(float) Load 52(threshhold)

+              54:    23(bool) FOrdGreaterThan 51 53

+                              SelectionMerge 56 None

+                              BranchConditional 54 55 56

+              55:               Label

                                 Kill

-              57:             Label

-              59:    8(fvec4) Load 10(color)

-              60:    8(fvec4) CompositeConstruct 47 47 47 47

-              61:    8(fvec4) FAdd 59 60

-                              Store 10(color) 61

-              62:    8(fvec4) Load 10(color)

-              63:    7(float) CompositeExtract 62 3

-              65:    7(float) Load 64(threshhold2)

-              66:    24(bool) FOrdGreaterThan 63 65

-                              SelectionMerge 68 None

-                              BranchConditional 66 67 99

-              67:               Label

-              69:    8(fvec4)   Load 10(color)

-              70:    7(float)   CompositeExtract 69 2

-              71:    7(float)   Load 64(threshhold2)

-              72:    24(bool)   FOrdGreaterThan 70 71

-                                SelectionMerge 74 None

-                                BranchConditional 72 73 76

-              73:                 Label

-                                  Branch 6

-              76:                 Label

-              79:    24(bool)     Load 78(b)

-                                  SelectionMerge 81 None

-                                  BranchConditional 79 80 87

-              80:                   Label

-              82:    8(fvec4)       Load 10(color)

-              83:    7(float)       CompositeExtract 82 2

-              84:    7(float)       FAdd 83 47

-              85:    8(fvec4)       Load 10(color)

-              86:    8(fvec4)       CompositeInsert 84 85 2

-                                    Store 10(color) 86

-                                    Branch 81

-              87:                   Label

-              88:    8(fvec4)       Load 10(color)

-              89:    7(float)       CompositeExtract 88 0

-              90:    7(float)       Load 39(minimum)

-              91:    24(bool)       FOrdLessThan 89 90

-                                    SelectionMerge 93 None

-                                    BranchConditional 91 92 95

-              92:                     Label

+              56:             Label

+              58:    7(fvec4) Load 9(color)

+              59:    7(fvec4) CompositeConstruct 46 46 46 46

+              60:    7(fvec4) FAdd 58 59

+                              Store 9(color) 60

+              61:    7(fvec4) Load 9(color)

+              62:    6(float) CompositeExtract 61 3

+              64:    6(float) Load 63(threshhold2)

+              65:    23(bool) FOrdGreaterThan 62 64

+                              SelectionMerge 67 None

+                              BranchConditional 65 66 98

+              66:               Label

+              68:    7(fvec4)   Load 9(color)

+              69:    6(float)   CompositeExtract 68 2

+              70:    6(float)   Load 63(threshhold2)

+              71:    23(bool)   FOrdGreaterThan 69 70

+                                SelectionMerge 73 None

+                                BranchConditional 71 72 75

+              72:                 Label

+                                  Return

+              75:                 Label

+              78:    23(bool)     Load 77(b)

+                                  SelectionMerge 80 None

+                                  BranchConditional 78 79 86

+              79:                   Label

+              81:    7(fvec4)       Load 9(color)

+              82:    6(float)       CompositeExtract 81 2

+              83:    6(float)       FAdd 82 46

+              84:    7(fvec4)       Load 9(color)

+              85:    7(fvec4)       CompositeInsert 83 84 2

+                                    Store 9(color) 85

+                                    Branch 80

+              86:                   Label

+              87:    7(fvec4)       Load 9(color)

+              88:    6(float)       CompositeExtract 87 0

+              89:    6(float)       Load 38(minimum)

+              90:    23(bool)       FOrdLessThan 88 89

+                                    SelectionMerge 92 None

+                                    BranchConditional 90 91 94

+              91:                     Label

                                       Kill

-              95:                     Label

-              96:    8(fvec4)         Load 10(color)

-              97:    8(fvec4)         CompositeConstruct 47 47 47 47

-              98:    8(fvec4)         FAdd 96 97

-                                      Store 10(color) 98

-                                      Branch 93

-              93:                   Label

-                                    Branch 81

-              81:                 Label

-                                  Branch 74

-              74:               Label

-                                Branch 68

-              99:               Label

-             100:    24(bool)   Load 78(b)

-                                SelectionMerge 102 None

-                                BranchConditional 100 101 104

-             101:                 Label

+              94:                     Label

+              95:    7(fvec4)         Load 9(color)

+              96:    7(fvec4)         CompositeConstruct 46 46 46 46

+              97:    7(fvec4)         FAdd 95 96

+                                      Store 9(color) 97

+                                      Branch 92

+              92:                   Label

+                                    Branch 80

+              80:                 Label

+                                  Branch 73

+              73:               Label

+                                Branch 67

+              98:               Label

+              99:    23(bool)   Load 77(b)

+                                SelectionMerge 101 None

+                                BranchConditional 99 100 103

+             100:                 Label

                                   Kill

-             104:                 Label

-                                  Branch 6

-             102:               Label

-                                Branch 68

-              68:             Label

-             108:    8(fvec4) Load 10(color)

-             109:    8(fvec4) Load 14(color2)

-             110:    8(fvec4) FMul 108 109

-                              Store 107(gl_FragColor) 110

-                              Branch 6

-               6:             Label

+             103:                 Label

+                                  Return

+             101:               Label

+                                Branch 67

+              67:             Label

+             107:    7(fvec4) Load 9(color)

+             108:    7(fvec4) Load 13(color2)

+             109:    7(fvec4) FMul 107 108

+                              Store 106(gl_FragColor) 109

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.flowControl.frag.out b/Test/baseResults/spv.flowControl.frag.out
index fc8cb3f..eb6ced4 100755
--- a/Test/baseResults/spv.flowControl.frag.out
+++ b/Test/baseResults/spv.flowControl.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 42

+// Id's are bound by 41

 

                               Source GLSL 120

                               Capability Shader

@@ -14,67 +14,65 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 14  "color2"

-                              Name 16  "otherColor"

-                              Name 19  "c"

-                              Name 22  "d"

-                              Name 28  "bigColor"

-                              Name 33  "smallColor"

-                              Name 38  "gl_FragColor"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 19(c) Smooth

-                              Decorate 38(gl_FragColor) BuiltIn FragColor

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 13  "color2"

+                              Name 15  "otherColor"

+                              Name 18  "c"

+                              Name 21  "d"

+                              Name 27  "bigColor"

+                              Name 32  "smallColor"

+                              Name 37  "gl_FragColor"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 18(c) Smooth

+                              Decorate 37(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              15:             TypePointer UniformConstant 8(fvec4)

-  16(otherColor):     15(ptr) Variable UniformConstant

-              18:             TypePointer Input 7(float)

-           19(c):     18(ptr) Variable Input

-              21:             TypePointer UniformConstant 7(float)

-           22(d):     21(ptr) Variable UniformConstant

-              24:             TypeBool

-    28(bigColor):     15(ptr) Variable UniformConstant

-  33(smallColor):     15(ptr) Variable UniformConstant

-              37:             TypePointer Output 8(fvec4)

-38(gl_FragColor):     37(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              14:             TypePointer UniformConstant 7(fvec4)

+  15(otherColor):     14(ptr) Variable UniformConstant

+              17:             TypePointer Input 6(float)

+           18(c):     17(ptr) Variable Input

+              20:             TypePointer UniformConstant 6(float)

+           21(d):     20(ptr) Variable UniformConstant

+              23:             TypeBool

+    27(bigColor):     14(ptr) Variable UniformConstant

+  32(smallColor):     14(ptr) Variable UniformConstant

+              36:             TypePointer Output 7(fvec4)

+37(gl_FragColor):     36(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-      14(color2):      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-              17:    8(fvec4) Load 16(otherColor)

-                              Store 14(color2) 17

-              20:    7(float) Load 19(c)

-              23:    7(float) Load 22(d)

-              25:    24(bool) FOrdGreaterThan 20 23

-                              SelectionMerge 27 None

-                              BranchConditional 25 26 32

-              26:               Label

-              29:    8(fvec4)   Load 28(bigColor)

-              30:    8(fvec4)   Load 10(color)

-              31:    8(fvec4)   FAdd 30 29

-                                Store 10(color) 31

-                                Branch 27

-              32:               Label

-              34:    8(fvec4)   Load 33(smallColor)

-              35:    8(fvec4)   Load 10(color)

-              36:    8(fvec4)   FAdd 35 34

-                                Store 10(color) 36

-                                Branch 27

-              27:             Label

-              39:    8(fvec4) Load 10(color)

-              40:    8(fvec4) Load 14(color2)

-              41:    8(fvec4) FMul 39 40

-                              Store 38(gl_FragColor) 41

-                              Branch 6

-               6:             Label

+        9(color):      8(ptr) Variable Function

+      13(color2):      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+              16:    7(fvec4) Load 15(otherColor)

+                              Store 13(color2) 16

+              19:    6(float) Load 18(c)

+              22:    6(float) Load 21(d)

+              24:    23(bool) FOrdGreaterThan 19 22

+                              SelectionMerge 26 None

+                              BranchConditional 24 25 31

+              25:               Label

+              28:    7(fvec4)   Load 27(bigColor)

+              29:    7(fvec4)   Load 9(color)

+              30:    7(fvec4)   FAdd 29 28

+                                Store 9(color) 30

+                                Branch 26

+              31:               Label

+              33:    7(fvec4)   Load 32(smallColor)

+              34:    7(fvec4)   Load 9(color)

+              35:    7(fvec4)   FAdd 34 33

+                                Store 9(color) 35

+                                Branch 26

+              26:             Label

+              38:    7(fvec4) Load 9(color)

+              39:    7(fvec4) Load 13(color2)

+              40:    7(fvec4) FMul 38 39

+                              Store 37(gl_FragColor) 40

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.for-continue-break.vert.out b/Test/baseResults/spv.for-continue-break.vert.out
index cec5dae..633a6b4 100755
--- a/Test/baseResults/spv.for-continue-break.vert.out
+++ b/Test/baseResults/spv.for-continue-break.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 49

+// Id's are bound by 48

 

                               Source ESSL 300

                               Capability Shader

@@ -13,89 +13,87 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 18  "A"

-                              Name 26  "B"

-                              Name 30  "C"

-                              Name 37  "D"

-                              Name 39  "E"

-                              Name 40  "F"

-                              Name 44  "G"

-                              Name 47  "gl_VertexID"

-                              Name 48  "gl_InstanceID"

-                              Decorate 47(gl_VertexID) BuiltIn VertexId

-                              Decorate 47(gl_VertexID) NoStaticUse

-                              Decorate 48(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 48(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 17  "A"

+                              Name 25  "B"

+                              Name 29  "C"

+                              Name 36  "D"

+                              Name 38  "E"

+                              Name 39  "F"

+                              Name 43  "G"

+                              Name 46  "gl_VertexID"

+                              Name 47  "gl_InstanceID"

+                              Decorate 46(gl_VertexID) BuiltIn VertexId

+                              Decorate 46(gl_VertexID) NoStaticUse

+                              Decorate 47(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 47(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:      7(int) Constant 10

-              16:             TypeBool

-              19:      7(int) Constant 1

-              21:      7(int) Constant 2

-              32:      7(int) Constant 3

-              41:      7(int) Constant 12

-              45:      7(int) Constant 99

-              46:             TypePointer Input 7(int)

- 47(gl_VertexID):     46(ptr) Variable Input

-48(gl_InstanceID):     46(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:      6(int) Constant 10

+              15:             TypeBool

+              18:      6(int) Constant 1

+              20:      6(int) Constant 2

+              31:      6(int) Constant 3

+              40:      6(int) Constant 12

+              44:      6(int) Constant 99

+              45:             TypePointer Input 6(int)

+ 46(gl_VertexID):     45(ptr) Variable Input

+47(gl_InstanceID):     45(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-           18(A):      8(ptr) Variable Function

-           26(B):      8(ptr) Variable Function

-           30(C):      8(ptr) Variable Function

-           37(D):      8(ptr) Variable Function

-           39(E):      8(ptr) Variable Function

-           40(F):      8(ptr) Variable Function

-           44(G):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

-              11:             Label

-              14:      7(int) Load 9(i)

-              17:    16(bool) SLessThan 14 15

-                              LoopMerge 12 None

-                              BranchConditional 17 13 12

-              13:               Label

-                                Store 18(A) 19

-              20:      7(int)   Load 9(i)

-              22:      7(int)   SMod 20 21

-              23:    16(bool)   IEqual 22 10

-                                SelectionMerge 25 None

-                                BranchConditional 23 24 25

-              24:                 Label

-                                  Store 26(B) 19

-              27:      7(int)     Load 9(i)

-              28:      7(int)     IAdd 27 19

-                                  Store 9(i) 28

+            8(i):      7(ptr) Variable Function

+           17(A):      7(ptr) Variable Function

+           25(B):      7(ptr) Variable Function

+           29(C):      7(ptr) Variable Function

+           36(D):      7(ptr) Variable Function

+           38(E):      7(ptr) Variable Function

+           39(F):      7(ptr) Variable Function

+           43(G):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:      6(int) Load 8(i)

+              16:    15(bool) SLessThan 13 14

+                              LoopMerge 11 None

+                              BranchConditional 16 12 11

+              12:               Label

+                                Store 17(A) 18

+              19:      6(int)   Load 8(i)

+              21:      6(int)   SMod 19 20

+              22:    15(bool)   IEqual 21 9

+                                SelectionMerge 24 None

+                                BranchConditional 22 23 24

+              23:                 Label

+                                  Store 25(B) 18

+              26:      6(int)     Load 8(i)

+              27:      6(int)     IAdd 26 18

+                                  Store 8(i) 27

+                                  Branch 10

+              28:                 Label

+                                  Store 29(C) 18

+                                  Branch 24

+              24:               Label

+              30:      6(int)   Load 8(i)

+              32:      6(int)   SMod 30 31

+              33:    15(bool)   IEqual 32 9

+                                SelectionMerge 35 None

+                                BranchConditional 33 34 35

+              34:                 Label

+                                  Store 36(D) 18

                                   Branch 11

-              29:                 Label

-                                  Store 30(C) 19

-                                  Branch 25

-              25:               Label

-              31:      7(int)   Load 9(i)

-              33:      7(int)   SMod 31 32

-              34:    16(bool)   IEqual 33 10

-                                SelectionMerge 36 None

-                                BranchConditional 34 35 36

-              35:                 Label

-                                  Store 37(D) 19

-                                  Branch 12

-              38:                 Label

-                                  Store 39(E) 19

-                                  Branch 36

-              36:               Label

-                                Store 40(F) 41

-              42:      7(int)   Load 9(i)

-              43:      7(int)   IAdd 42 19

-                                Store 9(i) 43

-                                Branch 11

-              12:             Label

-                              Store 44(G) 45

-                              Branch 6

-               6:             Label

+              37:                 Label

+                                  Store 38(E) 18

+                                  Branch 35

+              35:               Label

+                                Store 39(F) 40

+              41:      6(int)   Load 8(i)

+              42:      6(int)   IAdd 41 18

+                                Store 8(i) 42

+                                Branch 10

+              11:             Label

+                              Store 43(G) 44

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.for-simple.vert.out b/Test/baseResults/spv.for-simple.vert.out
index 11050df..9e4a7a7 100755
--- a/Test/baseResults/spv.for-simple.vert.out
+++ b/Test/baseResults/spv.for-simple.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 26

+// Id's are bound by 25

 

                               Source ESSL 300

                               Capability Shader

@@ -13,45 +13,43 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 18  "j"

-                              Name 24  "gl_VertexID"

-                              Name 25  "gl_InstanceID"

-                              Decorate 24(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_VertexID) NoStaticUse

-                              Decorate 25(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 25(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 17  "j"

+                              Name 23  "gl_VertexID"

+                              Name 24  "gl_InstanceID"

+                              Decorate 23(gl_VertexID) BuiltIn VertexId

+                              Decorate 23(gl_VertexID) NoStaticUse

+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 24(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:      7(int) Constant 10

-              16:             TypeBool

-              19:      7(int) Constant 12

-              21:      7(int) Constant 1

-              23:             TypePointer Input 7(int)

- 24(gl_VertexID):     23(ptr) Variable Input

-25(gl_InstanceID):     23(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:      6(int) Constant 10

+              15:             TypeBool

+              18:      6(int) Constant 12

+              20:      6(int) Constant 1

+              22:             TypePointer Input 6(int)

+ 23(gl_VertexID):     22(ptr) Variable Input

+24(gl_InstanceID):     22(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-           18(j):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

+            8(i):      7(ptr) Variable Function

+           17(j):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:      6(int) Load 8(i)

+              16:    15(bool) SLessThan 13 14

+                              LoopMerge 11 None

+                              BranchConditional 16 12 11

+              12:               Label

+                                Store 17(j) 18

+              19:      6(int)   Load 8(i)

+              21:      6(int)   IAdd 19 20

+                                Store 8(i) 21

+                                Branch 10

               11:             Label

-              14:      7(int) Load 9(i)

-              17:    16(bool) SLessThan 14 15

-                              LoopMerge 12 None

-                              BranchConditional 17 13 12

-              13:               Label

-                                Store 18(j) 19

-              20:      7(int)   Load 9(i)

-              22:      7(int)   IAdd 20 21

-                                Store 9(i) 22

-                                Branch 11

-              12:             Label

-                              Branch 6

-               6:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.forLoop.frag.out b/Test/baseResults/spv.forLoop.frag.out
index 75949a0..086f884 100755
--- a/Test/baseResults/spv.forLoop.frag.out
+++ b/Test/baseResults/spv.forLoop.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 123

+// Id's are bound by 122

 

                               Source GLSL 130

                               Capability Shader

@@ -14,186 +14,184 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 16  "i"

-                              Name 23  "Count"

-                              Name 28  "bigColor"

-                              Name 36  "gl_FragColor"

-                              Name 39  "sum"

-                              Name 41  "i"

-                              Name 51  "v4"

-                              Name 60  "i"

-                              Name 66  "tv4"

-                              Name 84  "r"

-                              Name 90  "i"

-                              Name 98  "f"

-                              Name 111  "i"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 36(gl_FragColor) BuiltIn FragColor

-                              Decorate 98(f) Smooth

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 15  "i"

+                              Name 22  "Count"

+                              Name 27  "bigColor"

+                              Name 35  "gl_FragColor"

+                              Name 38  "sum"

+                              Name 40  "i"

+                              Name 50  "v4"

+                              Name 59  "i"

+                              Name 65  "tv4"

+                              Name 83  "r"

+                              Name 89  "i"

+                              Name 97  "f"

+                              Name 110  "i"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 35(gl_FragColor) BuiltIn FragColor

+                              Decorate 97(f) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              14:             TypeInt 32 1

-              15:             TypePointer Function 14(int)

-              17:     14(int) Constant 0

-              22:             TypePointer UniformConstant 14(int)

-       23(Count):     22(ptr) Variable UniformConstant

-              25:             TypeBool

-              27:             TypePointer UniformConstant 8(fvec4)

-    28(bigColor):     27(ptr) Variable UniformConstant

-              33:     14(int) Constant 1

-              35:             TypePointer Output 8(fvec4)

-36(gl_FragColor):     35(ptr) Variable Output

-              38:             TypePointer Function 7(float)

-              40:    7(float) Constant 0

-              46:     14(int) Constant 4

-              48:             TypeInt 32 0

-              49:             TypeVector 48(int) 4

-              50:             TypePointer UniformConstant 49(ivec4)

-          51(v4):     50(ptr) Variable UniformConstant

-              71:     48(int) Constant 4

-              85:             TypeVector 7(float) 3

-              97:             TypePointer Input 7(float)

-           98(f):     97(ptr) Variable Input

-             116:     14(int) Constant 16

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              13:             TypeInt 32 1

+              14:             TypePointer Function 13(int)

+              16:     13(int) Constant 0

+              21:             TypePointer UniformConstant 13(int)

+       22(Count):     21(ptr) Variable UniformConstant

+              24:             TypeBool

+              26:             TypePointer UniformConstant 7(fvec4)

+    27(bigColor):     26(ptr) Variable UniformConstant

+              32:     13(int) Constant 1

+              34:             TypePointer Output 7(fvec4)

+35(gl_FragColor):     34(ptr) Variable Output

+              37:             TypePointer Function 6(float)

+              39:    6(float) Constant 0

+              45:     13(int) Constant 4

+              47:             TypeInt 32 0

+              48:             TypeVector 47(int) 4

+              49:             TypePointer UniformConstant 48(ivec4)

+          50(v4):     49(ptr) Variable UniformConstant

+              70:     47(int) Constant 4

+              84:             TypeVector 6(float) 3

+              96:             TypePointer Input 6(float)

+           97(f):     96(ptr) Variable Input

+             115:     13(int) Constant 16

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-           16(i):     15(ptr) Variable Function

-         39(sum):     38(ptr) Variable Function

-           41(i):     15(ptr) Variable Function

-           60(i):     15(ptr) Variable Function

-         66(tv4):      9(ptr) Variable Function

-           84(r):      9(ptr) Variable Function

-           90(i):     15(ptr) Variable Function

-          111(i):     15(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-                              Store 16(i) 17

-                              Branch 18

+        9(color):      8(ptr) Variable Function

+           15(i):     14(ptr) Variable Function

+         38(sum):     37(ptr) Variable Function

+           40(i):     14(ptr) Variable Function

+           59(i):     14(ptr) Variable Function

+         65(tv4):      8(ptr) Variable Function

+           83(r):      8(ptr) Variable Function

+           89(i):     14(ptr) Variable Function

+          110(i):     14(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+                              Store 15(i) 16

+                              Branch 17

+              17:             Label

+              20:     13(int) Load 15(i)

+              23:     13(int) Load 22(Count)

+              25:    24(bool) SLessThan 20 23

+                              LoopMerge 18 None

+                              BranchConditional 25 19 18

+              19:               Label

+              28:    7(fvec4)   Load 27(bigColor)

+              29:    7(fvec4)   Load 9(color)

+              30:    7(fvec4)   FAdd 29 28

+                                Store 9(color) 30

+              31:     13(int)   Load 15(i)

+              33:     13(int)   IAdd 31 32

+                                Store 15(i) 33

+                                Branch 17

               18:             Label

-              21:     14(int) Load 16(i)

-              24:     14(int) Load 23(Count)

-              26:    25(bool) SLessThan 21 24

-                              LoopMerge 19 None

-                              BranchConditional 26 20 19

-              20:               Label

-              29:    8(fvec4)   Load 28(bigColor)

-              30:    8(fvec4)   Load 10(color)

-              31:    8(fvec4)   FAdd 30 29

-                                Store 10(color) 31

-              32:     14(int)   Load 16(i)

-              34:     14(int)   IAdd 32 33

-                                Store 16(i) 34

-                                Branch 18

-              19:             Label

-              37:    8(fvec4) Load 10(color)

-                              Store 36(gl_FragColor) 37

-                              Store 39(sum) 40

-                              Store 41(i) 17

-                              Branch 42

+              36:    7(fvec4) Load 9(color)

+                              Store 35(gl_FragColor) 36

+                              Store 38(sum) 39

+                              Store 40(i) 16

+                              Branch 41

+              41:             Label

+              44:     13(int) Load 40(i)

+              46:    24(bool) SLessThan 44 45

+                              LoopMerge 42 None

+                              BranchConditional 46 43 42

+              43:               Label

+              51:     13(int)   Load 40(i)

+              52:   48(ivec4)   Load 50(v4)

+              53:     47(int)   VectorExtractDynamic 52 51

+              54:    6(float)   ConvertUToF 53

+              55:    6(float)   Load 38(sum)

+              56:    6(float)   FAdd 55 54

+                                Store 38(sum) 56

+              57:     13(int)   Load 40(i)

+              58:     13(int)   IAdd 57 32

+                                Store 40(i) 58

+                                Branch 41

               42:             Label

-              45:     14(int) Load 41(i)

-              47:    25(bool) SLessThan 45 46

-                              LoopMerge 43 None

-                              BranchConditional 47 44 43

-              44:               Label

-              52:     14(int)   Load 41(i)

-              53:   49(ivec4)   Load 51(v4)

-              54:     48(int)   VectorExtractDynamic 53 52

-              55:    7(float)   ConvertUToF 54

-              56:    7(float)   Load 39(sum)

-              57:    7(float)   FAdd 56 55

-                                Store 39(sum) 57

-              58:     14(int)   Load 41(i)

-              59:     14(int)   IAdd 58 33

-                                Store 41(i) 59

-                                Branch 42

-              43:             Label

-                              Store 60(i) 17

-                              Branch 61

+                              Store 59(i) 16

+                              Branch 60

+              60:             Label

+              63:     13(int) Load 59(i)

+              64:    24(bool) SLessThan 63 45

+                              LoopMerge 61 None

+                              BranchConditional 64 62 61

+              62:               Label

+              66:     13(int)   Load 59(i)

+              67:     13(int)   Load 59(i)

+              68:   48(ivec4)   Load 50(v4)

+              69:     47(int)   VectorExtractDynamic 68 67

+              71:     47(int)   IMul 69 70

+              72:    6(float)   ConvertUToF 71

+              73:    7(fvec4)   Load 65(tv4)

+              74:    7(fvec4)   VectorInsertDynamic 73 72 66

+                                Store 65(tv4) 74

+              75:     13(int)   Load 59(i)

+              76:     13(int)   IAdd 75 32

+                                Store 59(i) 76

+                                Branch 60

               61:             Label

-              64:     14(int) Load 60(i)

-              65:    25(bool) SLessThan 64 46

-                              LoopMerge 62 None

-                              BranchConditional 65 63 62

-              63:               Label

-              67:     14(int)   Load 60(i)

-              68:     14(int)   Load 60(i)

-              69:   49(ivec4)   Load 51(v4)

-              70:     48(int)   VectorExtractDynamic 69 68

-              72:     48(int)   IMul 70 71

-              73:    7(float)   ConvertUToF 72

-              74:    8(fvec4)   Load 66(tv4)

-              75:    8(fvec4)   VectorInsertDynamic 74 73 67

-                                Store 66(tv4) 75

-              76:     14(int)   Load 60(i)

-              77:     14(int)   IAdd 76 33

-                                Store 60(i) 77

-                                Branch 61

-              62:             Label

-              78:    7(float) Load 39(sum)

-              79:    8(fvec4) CompositeConstruct 78 78 78 78

-              80:    8(fvec4) Load 66(tv4)

-              81:    8(fvec4) FAdd 79 80

-              82:    8(fvec4) Load 36(gl_FragColor)

-              83:    8(fvec4) FAdd 82 81

-                              Store 36(gl_FragColor) 83

-              86:    8(fvec4) Load 12(BaseColor)

-              87:   85(fvec3) VectorShuffle 86 86 0 1 2

-              88:    8(fvec4) Load 84(r)

-              89:    8(fvec4) VectorShuffle 88 87 4 5 6 3

-                              Store 84(r) 89

-                              Store 90(i) 17

-                              Branch 91

+              77:    6(float) Load 38(sum)

+              78:    7(fvec4) CompositeConstruct 77 77 77 77

+              79:    7(fvec4) Load 65(tv4)

+              80:    7(fvec4) FAdd 78 79

+              81:    7(fvec4) Load 35(gl_FragColor)

+              82:    7(fvec4) FAdd 81 80

+                              Store 35(gl_FragColor) 82

+              85:    7(fvec4) Load 11(BaseColor)

+              86:   84(fvec3) VectorShuffle 85 85 0 1 2

+              87:    7(fvec4) Load 83(r)

+              88:    7(fvec4) VectorShuffle 87 86 4 5 6 3

+                              Store 83(r) 88

+                              Store 89(i) 16

+                              Branch 90

+              90:             Label

+              93:     13(int) Load 89(i)

+              94:     13(int) Load 22(Count)

+              95:    24(bool) SLessThan 93 94

+                              LoopMerge 91 None

+                              BranchConditional 95 92 91

+              92:               Label

+              98:    6(float)   Load 97(f)

+              99:    7(fvec4)   Load 83(r)

+             100:    7(fvec4)   CompositeInsert 98 99 3

+                                Store 83(r) 100

+             101:     13(int)   Load 89(i)

+             102:     13(int)   IAdd 101 32

+                                Store 89(i) 102

+                                Branch 90

               91:             Label

-              94:     14(int) Load 90(i)

-              95:     14(int) Load 23(Count)

-              96:    25(bool) SLessThan 94 95

-                              LoopMerge 92 None

-                              BranchConditional 96 93 92

-              93:               Label

-              99:    7(float)   Load 98(f)

-             100:    8(fvec4)   Load 84(r)

-             101:    8(fvec4)   CompositeInsert 99 100 3

-                                Store 84(r) 101

-             102:     14(int)   Load 90(i)

-             103:     14(int)   IAdd 102 33

-                                Store 90(i) 103

-                                Branch 91

-              92:             Label

-             104:    8(fvec4) Load 84(r)

-             105:   85(fvec3) VectorShuffle 104 104 0 1 2

-             106:    8(fvec4) Load 36(gl_FragColor)

-             107:   85(fvec3) VectorShuffle 106 106 0 1 2

-             108:   85(fvec3) FAdd 107 105

-             109:    8(fvec4) Load 36(gl_FragColor)

-             110:    8(fvec4) VectorShuffle 109 108 4 5 6 3

-                              Store 36(gl_FragColor) 110

-                              Store 111(i) 17

-                              Branch 112

+             103:    7(fvec4) Load 83(r)

+             104:   84(fvec3) VectorShuffle 103 103 0 1 2

+             105:    7(fvec4) Load 35(gl_FragColor)

+             106:   84(fvec3) VectorShuffle 105 105 0 1 2

+             107:   84(fvec3) FAdd 106 104

+             108:    7(fvec4) Load 35(gl_FragColor)

+             109:    7(fvec4) VectorShuffle 108 107 4 5 6 3

+                              Store 35(gl_FragColor) 109

+                              Store 110(i) 16

+                              Branch 111

+             111:             Label

+             114:     13(int) Load 110(i)

+             116:    24(bool) SLessThan 114 115

+                              LoopMerge 112 None

+                              BranchConditional 116 113 112

+             113:               Label

+             117:    6(float)   Load 97(f)

+             118:    7(fvec4)   Load 35(gl_FragColor)

+             119:    7(fvec4)   VectorTimesScalar 118 117

+                                Store 35(gl_FragColor) 119

+             120:     13(int)   Load 110(i)

+             121:     13(int)   IAdd 120 45

+                                Store 110(i) 121

+                                Branch 111

              112:             Label

-             115:     14(int) Load 111(i)

-             117:    25(bool) SLessThan 115 116

-                              LoopMerge 113 None

-                              BranchConditional 117 114 113

-             114:               Label

-             118:    7(float)   Load 98(f)

-             119:    8(fvec4)   Load 36(gl_FragColor)

-             120:    8(fvec4)   VectorTimesScalar 119 118

-                                Store 36(gl_FragColor) 120

-             121:     14(int)   Load 111(i)

-             122:     14(int)   IAdd 121 46

-                                Store 111(i) 122

-                                Branch 112

-             113:             Label

-                              Branch 6

-               6:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.forwardFun.frag.out b/Test/baseResults/spv.forwardFun.frag.out
index 4e6af79..0af086d 100644
--- a/Test/baseResults/spv.forwardFun.frag.out
+++ b/Test/baseResults/spv.forwardFun.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 58

+// Id's are bound by 57

 

                               Source ESSL 100

                               Capability Shader

@@ -14,93 +14,91 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 7  "bar("

-                              Name 11  "unreachableReturn("

-                              Name 17  "foo(vf4;"

-                              Name 16  "bar"

-                              Name 19  "color"

-                              Name 21  "BaseColor"

-                              Name 22  "param"

-                              Name 28  "f"

-                              Name 31  "gl_FragColor"

-                              Name 37  "d"

-                              Name 57  "bigColor"

-                              Decorate 19(color) RelaxedPrecision

-                              Decorate 21(BaseColor) RelaxedPrecision

-                              Decorate 21(BaseColor) Smooth

-                              Decorate 28(f) RelaxedPrecision

-                              Decorate 31(gl_FragColor) RelaxedPrecision

-                              Decorate 31(gl_FragColor) BuiltIn FragColor

-                              Decorate 37(d) RelaxedPrecision

-                              Decorate 57(bigColor) RelaxedPrecision

-                              Decorate 57(bigColor) NoStaticUse

+                              Name 6  "bar("

+                              Name 10  "unreachableReturn("

+                              Name 16  "foo(vf4;"

+                              Name 15  "bar"

+                              Name 18  "color"

+                              Name 20  "BaseColor"

+                              Name 21  "param"

+                              Name 27  "f"

+                              Name 30  "gl_FragColor"

+                              Name 36  "d"

+                              Name 56  "bigColor"

+                              Decorate 18(color) RelaxedPrecision

+                              Decorate 20(BaseColor) RelaxedPrecision

+                              Decorate 20(BaseColor) Smooth

+                              Decorate 27(f) RelaxedPrecision

+                              Decorate 30(gl_FragColor) RelaxedPrecision

+                              Decorate 30(gl_FragColor) BuiltIn FragColor

+                              Decorate 36(d) RelaxedPrecision

+                              Decorate 56(bigColor) RelaxedPrecision

+                              Decorate 56(bigColor) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               9:             TypeFloat 32

-              10:             TypeFunction 9(float)

-              13:             TypeVector 9(float) 4

-              14:             TypePointer Function 13(fvec4)

-              15:             TypeFunction 9(float) 14(ptr)

-              20:             TypePointer Input 13(fvec4)

-   21(BaseColor):     20(ptr) Variable Input

-              27:             TypePointer Function 9(float)

-              30:             TypePointer Output 13(fvec4)

-31(gl_FragColor):     30(ptr) Variable Output

-              36:             TypePointer UniformConstant 9(float)

-           37(d):     36(ptr) Variable UniformConstant

-              39:    9(float) Constant 1082549862

-              40:             TypeBool

-              44:    9(float) Constant 1067030938

-              47:    9(float) Constant 1083179008

-              56:             TypePointer UniformConstant 13(fvec4)

-    57(bigColor):     56(ptr) Variable UniformConstant

+               8:             TypeFloat 32

+               9:             TypeFunction 8(float)

+              12:             TypeVector 8(float) 4

+              13:             TypePointer Function 12(fvec4)

+              14:             TypeFunction 8(float) 13(ptr)

+              19:             TypePointer Input 12(fvec4)

+   20(BaseColor):     19(ptr) Variable Input

+              26:             TypePointer Function 8(float)

+              29:             TypePointer Output 12(fvec4)

+30(gl_FragColor):     29(ptr) Variable Output

+              35:             TypePointer UniformConstant 8(float)

+           36(d):     35(ptr) Variable UniformConstant

+              38:    8(float) Constant 1082549862

+              39:             TypeBool

+              43:    8(float) Constant 1067030938

+              46:    8(float) Constant 1083179008

+              55:             TypePointer UniformConstant 12(fvec4)

+    56(bigColor):     55(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       19(color):     14(ptr) Variable Function

-       22(param):     14(ptr) Variable Function

-           28(f):     27(ptr) Variable Function

-              23:   13(fvec4) Load 21(BaseColor)

-                              Store 22(param) 23

-              24:    9(float) FunctionCall 17(foo(vf4;) 22(param)

-              25:   13(fvec4) CompositeConstruct 24 24 24 24

-                              Store 19(color) 25

-              26:           2 FunctionCall 7(bar()

-              29:    9(float) FunctionCall 11(unreachableReturn()

-                              Store 28(f) 29

-              32:   13(fvec4) Load 19(color)

-              33:    9(float) Load 28(f)

-              34:   13(fvec4) VectorTimesScalar 32 33

-                              Store 31(gl_FragColor) 34

-                              Branch 6

-               6:             Label

+       18(color):     13(ptr) Variable Function

+       21(param):     13(ptr) Variable Function

+           27(f):     26(ptr) Variable Function

+              22:   12(fvec4) Load 20(BaseColor)

+                              Store 21(param) 22

+              23:    8(float) FunctionCall 16(foo(vf4;) 21(param)

+              24:   12(fvec4) CompositeConstruct 23 23 23 23

+                              Store 18(color) 24

+              25:           2 FunctionCall 6(bar()

+              28:    8(float) FunctionCall 10(unreachableReturn()

+                              Store 27(f) 28

+              31:   12(fvec4) Load 18(color)

+              32:    8(float) Load 27(f)

+              33:   12(fvec4) VectorTimesScalar 31 32

+                              Store 30(gl_FragColor) 33

                               Return

                               FunctionEnd

-         7(bar():           2 Function None 3

-               8:             Label

+         6(bar():           2 Function None 3

+               7:             Label

                               Return

                               FunctionEnd

-11(unreachableReturn():    9(float) Function None 10

-              12:             Label

-              35:           2 FunctionCall 7(bar()

-              38:    9(float) Load 37(d)

-              41:    40(bool) FOrdLessThan 38 39

-                              SelectionMerge 43 None

-                              BranchConditional 41 42 46

-              42:               Label

-                                ReturnValue 44

-              46:               Label

-                                ReturnValue 47

-              43:             Label

-              49:    9(float) Undef

-                              ReturnValue 49

+10(unreachableReturn():    8(float) Function None 9

+              11:             Label

+              34:           2 FunctionCall 6(bar()

+              37:    8(float) Load 36(d)

+              40:    39(bool) FOrdLessThan 37 38

+                              SelectionMerge 42 None

+                              BranchConditional 40 41 45

+              41:               Label

+                                ReturnValue 43

+              45:               Label

+                                ReturnValue 46

+              42:             Label

+              48:    8(float) Undef

+                              ReturnValue 48

                               FunctionEnd

-    17(foo(vf4;):    9(float) Function None 15

-         16(bar):     14(ptr) FunctionParameter

-              18:             Label

-              50:   13(fvec4) Load 16(bar)

-              51:    9(float) CompositeExtract 50 0

-              52:   13(fvec4) Load 16(bar)

-              53:    9(float) CompositeExtract 52 1

-              54:    9(float) FAdd 51 53

-                              ReturnValue 54

+    16(foo(vf4;):    8(float) Function None 14

+         15(bar):     13(ptr) FunctionParameter

+              17:             Label

+              49:   12(fvec4) Load 15(bar)

+              50:    8(float) CompositeExtract 49 0

+              51:   12(fvec4) Load 15(bar)

+              52:    8(float) CompositeExtract 51 1

+              53:    8(float) FAdd 50 52

+                              ReturnValue 53

                               FunctionEnd

diff --git a/Test/baseResults/spv.functionCall.frag.out b/Test/baseResults/spv.functionCall.frag.out
index ebb0c75..42ec4c5 100644
--- a/Test/baseResults/spv.functionCall.frag.out
+++ b/Test/baseResults/spv.functionCall.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 74

+// Id's are bound by 73

 

                               Source GLSL 130

                               Capability Shader

@@ -16,113 +16,111 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 12  "foo(vf4;"

-                              Name 11  "bar"

-                              Name 14  "bar("

-                              Name 17  "unreachableReturn("

-                              Name 19  "missingReturn("

-                              Name 22  "h"

-                              Name 31  "d"

-                              Name 52  "color"

-                              Name 54  "BaseColor"

-                              Name 55  "param"

-                              Name 61  "f"

-                              Name 63  "g"

-                              Name 66  "gl_FragColor"

-                              Name 73  "bigColor"

-                              Decorate 54(BaseColor) Smooth

-                              Decorate 66(gl_FragColor) BuiltIn FragColor

-                              Decorate 73(bigColor) NoStaticUse

+                              Name 11  "foo(vf4;"

+                              Name 10  "bar"

+                              Name 13  "bar("

+                              Name 16  "unreachableReturn("

+                              Name 18  "missingReturn("

+                              Name 21  "h"

+                              Name 30  "d"

+                              Name 51  "color"

+                              Name 53  "BaseColor"

+                              Name 54  "param"

+                              Name 60  "f"

+                              Name 62  "g"

+                              Name 65  "gl_FragColor"

+                              Name 72  "bigColor"

+                              Decorate 53(BaseColor) Smooth

+                              Decorate 65(gl_FragColor) BuiltIn FragColor

+                              Decorate 72(bigColor) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              10:             TypeFunction 7(float) 9(ptr)

-              16:             TypeFunction 7(float)

-              21:             TypePointer PrivateGlobal 7(float)

-           22(h):     21(ptr) Variable PrivateGlobal

-              23:    7(float) Constant 0

-              30:             TypePointer UniformConstant 7(float)

-           31(d):     30(ptr) Variable UniformConstant

-              33:    7(float) Constant 1082549862

-              34:             TypeBool

-              38:    7(float) Constant 1067030938

-              41:    7(float) Constant 1083179008

-              49:    7(float) Constant 1081711002

-              53:             TypePointer Input 8(fvec4)

-   54(BaseColor):     53(ptr) Variable Input

-              60:             TypePointer Function 7(float)

-              65:             TypePointer Output 8(fvec4)

-66(gl_FragColor):     65(ptr) Variable Output

-              72:             TypePointer UniformConstant 8(fvec4)

-    73(bigColor):     72(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+               9:             TypeFunction 6(float) 8(ptr)

+              15:             TypeFunction 6(float)

+              20:             TypePointer PrivateGlobal 6(float)

+           21(h):     20(ptr) Variable PrivateGlobal

+              22:    6(float) Constant 0

+              29:             TypePointer UniformConstant 6(float)

+           30(d):     29(ptr) Variable UniformConstant

+              32:    6(float) Constant 1082549862

+              33:             TypeBool

+              37:    6(float) Constant 1067030938

+              40:    6(float) Constant 1083179008

+              48:    6(float) Constant 1081711002

+              52:             TypePointer Input 7(fvec4)

+   53(BaseColor):     52(ptr) Variable Input

+              59:             TypePointer Function 6(float)

+              64:             TypePointer Output 7(fvec4)

+65(gl_FragColor):     64(ptr) Variable Output

+              71:             TypePointer UniformConstant 7(fvec4)

+    72(bigColor):     71(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       52(color):      9(ptr) Variable Function

-       55(param):      9(ptr) Variable Function

-           61(f):     60(ptr) Variable Function

-           63(g):     60(ptr) Variable Function

-                              Store 22(h) 23

-              56:    8(fvec4) Load 54(BaseColor)

-                              Store 55(param) 56

-              57:    7(float) FunctionCall 12(foo(vf4;) 55(param)

-              58:    8(fvec4) CompositeConstruct 57 57 57 57

-                              Store 52(color) 58

-              59:           2 FunctionCall 14(bar()

-              62:    7(float) FunctionCall 17(unreachableReturn()

-                              Store 61(f) 62

-              64:    7(float) FunctionCall 19(missingReturn()

-                              Store 63(g) 64

-              67:    8(fvec4) Load 52(color)

-              68:    7(float) Load 61(f)

-              69:    8(fvec4) VectorTimesScalar 67 68

-              70:    7(float) Load 22(h)

-              71:    8(fvec4) VectorTimesScalar 69 70

-                              Store 66(gl_FragColor) 71

-                              Branch 6

-               6:             Label

+       51(color):      8(ptr) Variable Function

+       54(param):      8(ptr) Variable Function

+           60(f):     59(ptr) Variable Function

+           62(g):     59(ptr) Variable Function

+                              Store 21(h) 22

+              55:    7(fvec4) Load 53(BaseColor)

+                              Store 54(param) 55

+              56:    6(float) FunctionCall 11(foo(vf4;) 54(param)

+              57:    7(fvec4) CompositeConstruct 56 56 56 56

+                              Store 51(color) 57

+              58:           2 FunctionCall 13(bar()

+              61:    6(float) FunctionCall 16(unreachableReturn()

+                              Store 60(f) 61

+              63:    6(float) FunctionCall 18(missingReturn()

+                              Store 62(g) 63

+              66:    7(fvec4) Load 51(color)

+              67:    6(float) Load 60(f)

+              68:    7(fvec4) VectorTimesScalar 66 67

+              69:    6(float) Load 21(h)

+              70:    7(fvec4) VectorTimesScalar 68 69

+                              Store 65(gl_FragColor) 70

                               Return

                               FunctionEnd

-    12(foo(vf4;):    7(float) Function None 10

-         11(bar):      9(ptr) FunctionParameter

-              13:             Label

-              24:    8(fvec4) Load 11(bar)

-              25:    7(float) CompositeExtract 24 0

-              26:    8(fvec4) Load 11(bar)

-              27:    7(float) CompositeExtract 26 1

-              28:    7(float) FAdd 25 27

-                              ReturnValue 28

+    11(foo(vf4;):    6(float) Function None 9

+         10(bar):      8(ptr) FunctionParameter

+              12:             Label

+              23:    7(fvec4) Load 10(bar)

+              24:    6(float) CompositeExtract 23 0

+              25:    7(fvec4) Load 10(bar)

+              26:    6(float) CompositeExtract 25 1

+              27:    6(float) FAdd 24 26

+                              ReturnValue 27

                               FunctionEnd

-        14(bar():           2 Function None 3

-              15:             Label

+        13(bar():           2 Function None 3

+              14:             Label

                               Return

                               FunctionEnd

-17(unreachableReturn():    7(float) Function None 16

-              18:             Label

-              32:    7(float) Load 31(d)

-              35:    34(bool) FOrdLessThan 32 33

-                              SelectionMerge 37 None

-                              BranchConditional 35 36 40

-              36:               Label

-                                ReturnValue 38

-              40:               Label

-                                ReturnValue 41

-              37:             Label

-              43:    7(float) Undef

-                              ReturnValue 43

+16(unreachableReturn():    6(float) Function None 15

+              17:             Label

+              31:    6(float) Load 30(d)

+              34:    33(bool) FOrdLessThan 31 32

+                              SelectionMerge 36 None

+                              BranchConditional 34 35 39

+              35:               Label

+                                ReturnValue 37

+              39:               Label

+                                ReturnValue 40

+              36:             Label

+              42:    6(float) Undef

+                              ReturnValue 42

                               FunctionEnd

-19(missingReturn():    7(float) Function None 16

-              20:             Label

-              44:    7(float) Load 31(d)

-              45:    34(bool) FOrdLessThan 44 41

-                              SelectionMerge 47 None

-                              BranchConditional 45 46 47

-              46:               Label

-              48:    7(float)   Load 31(d)

-                                Store 22(h) 48

-                                ReturnValue 49

-              47:             Label

-              51:    7(float) Undef

-                              ReturnValue 51

+18(missingReturn():    6(float) Function None 15

+              19:             Label

+              43:    6(float) Load 30(d)

+              44:    33(bool) FOrdLessThan 43 40

+                              SelectionMerge 46 None

+                              BranchConditional 44 45 46

+              45:               Label

+              47:    6(float)   Load 30(d)

+                                Store 21(h) 47

+                                ReturnValue 48

+              46:             Label

+              50:    6(float) Undef

+                              ReturnValue 50

                               FunctionEnd

diff --git a/Test/baseResults/spv.functionSemantics.frag.out b/Test/baseResults/spv.functionSemantics.frag.out
index aba41c3..bc0b07c 100755
--- a/Test/baseResults/spv.functionSemantics.frag.out
+++ b/Test/baseResults/spv.functionSemantics.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 159

+// Id's are bound by 158

 

                               Source GLSL 400

                               Capability Shader

@@ -16,225 +16,223 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 16  "foo(i1;i1;i1;i1;i1;i1;"

-                              Name 10  "a"

-                              Name 11  "b"

-                              Name 12  "c"

-                              Name 13  "d"

-                              Name 14  "e"

-                              Name 15  "f"

-                              Name 26  "foo2(f1;vf3;i1;"

-                              Name 23  "a"

-                              Name 24  "b"

-                              Name 25  "r"

-                              Name 29  "foo3("

-                              Name 31  "sum"

-                              Name 73  "u"

-                              Name 85  "t"

-                              Name 88  "s"

-                              MemberName 88(s) 0  "t"

-                              Name 90  "f"

-                              Name 97  "color"

-                              Name 103  "e"

+                              Name 15  "foo(i1;i1;i1;i1;i1;i1;"

+                              Name 9  "a"

+                              Name 10  "b"

+                              Name 11  "c"

+                              Name 12  "d"

+                              Name 13  "e"

+                              Name 14  "f"

+                              Name 25  "foo2(f1;vf3;i1;"

+                              Name 22  "a"

+                              Name 23  "b"

+                              Name 24  "r"

+                              Name 28  "foo3("

+                              Name 30  "sum"

+                              Name 72  "u"

+                              Name 84  "t"

+                              Name 87  "s"

+                              MemberName 87(s) 0  "t"

+                              Name 89  "f"

+                              Name 96  "color"

+                              Name 102  "e"

+                              Name 103  "param"

                               Name 104  "param"

                               Name 105  "param"

                               Name 106  "param"

-                              Name 107  "param"

-                              Name 126  "ret"

-                              Name 128  "tempReturn"

-                              Name 133  "tempArg"

+                              Name 125  "ret"

+                              Name 127  "tempReturn"

+                              Name 132  "tempArg"

+                              Name 133  "param"

                               Name 134  "param"

                               Name 135  "param"

-                              Name 136  "param"

-                              Name 139  "arg"

-                              Name 155  "gl_FragColor"

-                              Decorate 155(gl_FragColor) BuiltIn FragColor

+                              Name 138  "arg"

+                              Name 154  "gl_FragColor"

+                              Decorate 154(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-               9:             TypeFunction 7(int) 8(ptr) 7(int) 8(ptr) 7(int) 8(ptr) 8(ptr)

-              18:             TypeFloat 32

-              19:             TypePointer Function 18(float)

-              20:             TypeVector 18(float) 3

-              21:             TypePointer Function 20(fvec3)

-              22:             TypeFunction 7(int) 19(ptr) 21(ptr) 8(ptr)

-              28:             TypeFunction 7(int)

-              39:      7(int) Constant 64

-              44:      7(int) Constant 1024

-              62:   18(float) Constant 1077936128

-              66:   18(float) Constant 1084227584

-              72:             TypePointer UniformConstant 18(float)

-           73(u):     72(ptr) Variable UniformConstant

-              75:   18(float) Constant 1078774989

-              76:             TypeBool

-              81:      7(int) Constant 1000000

-              83:      7(int) Constant 2000000

-              86:      7(int) Constant 2

-              87:             TypeVector 7(int) 4

-           88(s):             TypeStruct 87(ivec4)

-              89:             TypePointer Function 88(s)

-              91:      7(int) Constant 0

-              92:      7(int) Constant 32

-              93:             TypePointer Function 87(ivec4)

-              98:      7(int) Constant 1

-             102:      7(int) Constant 8

-             117:      7(int) Constant 128

-             127:             TypePointer PrivateGlobal 7(int)

- 128(tempReturn):    127(ptr) Variable PrivateGlobal

-             129:   18(float) Constant 1082130432

-             130:   18(float) Constant 1065353216

-             131:   18(float) Constant 1073741824

-             132:   20(fvec3) ConstantComposite 130 131 62

-             153:             TypeVector 18(float) 4

-             154:             TypePointer Output 153(fvec4)

-155(gl_FragColor):    154(ptr) Variable Output

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               8:             TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)

+              17:             TypeFloat 32

+              18:             TypePointer Function 17(float)

+              19:             TypeVector 17(float) 3

+              20:             TypePointer Function 19(fvec3)

+              21:             TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)

+              27:             TypeFunction 6(int)

+              38:      6(int) Constant 64

+              43:      6(int) Constant 1024

+              61:   17(float) Constant 1077936128

+              65:   17(float) Constant 1084227584

+              71:             TypePointer UniformConstant 17(float)

+           72(u):     71(ptr) Variable UniformConstant

+              74:   17(float) Constant 1078774989

+              75:             TypeBool

+              80:      6(int) Constant 1000000

+              82:      6(int) Constant 2000000

+              85:      6(int) Constant 2

+              86:             TypeVector 6(int) 4

+           87(s):             TypeStruct 86(ivec4)

+              88:             TypePointer Function 87(s)

+              90:      6(int) Constant 0

+              91:      6(int) Constant 32

+              92:             TypePointer Function 86(ivec4)

+              97:      6(int) Constant 1

+             101:      6(int) Constant 8

+             116:      6(int) Constant 128

+             126:             TypePointer PrivateGlobal 6(int)

+ 127(tempReturn):    126(ptr) Variable PrivateGlobal

+             128:   17(float) Constant 1082130432

+             129:   17(float) Constant 1065353216

+             130:   17(float) Constant 1073741824

+             131:   19(fvec3) ConstantComposite 129 130 61

+             152:             TypeVector 17(float) 4

+             153:             TypePointer Output 152(fvec4)

+154(gl_FragColor):    153(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-           85(t):      8(ptr) Variable Function

-           90(f):     89(ptr) Variable Function

-       97(color):      8(ptr) Variable Function

-          103(e):      8(ptr) Variable Function

-      104(param):      8(ptr) Variable Function

-      105(param):      8(ptr) Variable Function

-      106(param):      8(ptr) Variable Function

-      107(param):      8(ptr) Variable Function

-        126(ret):     19(ptr) Variable Function

-    133(tempArg):      8(ptr) Variable Function

-      134(param):     19(ptr) Variable Function

-      135(param):     21(ptr) Variable Function

-      136(param):      8(ptr) Variable Function

-        139(arg):     19(ptr) Variable Function

-                              Store 85(t) 86

-              94:     93(ptr) AccessChain 90(f) 91

-              95:   87(ivec4) Load 94

-              96:   87(ivec4) CompositeInsert 92 95 1

-                              Store 94 96

-              99:      7(int) Load 85(t)

-             100:      7(int) Load 85(t)

-             101:      7(int) IAdd 99 100

-                              Store 104(param) 98

-                              Store 105(param) 101

-             108:     93(ptr) AccessChain 90(f) 91

-             109:   87(ivec4) Load 108

-             110:      7(int) CompositeExtract 109 1

-                              Store 107(param) 110

-             111:      7(int) FunctionCall 16(foo(i1;i1;i1;i1;i1;i1;) 104(param) 86 105(param) 102 106(param) 107(param)

-             112:      7(int) Load 106(param)

-                              Store 103(e) 112

-             113:      7(int) Load 107(param)

-             114:     93(ptr) AccessChain 90(f) 91

-             115:   87(ivec4) Load 114

-             116:   87(ivec4) CompositeInsert 113 115 1

-                              Store 114 116

-                              Store 97(color) 111

-             118:      7(int) Load 103(e)

-             119:     93(ptr) AccessChain 90(f) 91

-             120:   87(ivec4) Load 119

-             121:      7(int) CompositeExtract 120 1

-             122:      7(int) IAdd 118 121

-             123:      7(int) IMul 117 122

-             124:      7(int) Load 97(color)

-             125:      7(int) IAdd 124 123

-                              Store 97(color) 125

-                              Store 134(param) 129

-                              Store 135(param) 132

-             137:      7(int) FunctionCall 26(foo2(f1;vf3;i1;) 134(param) 135(param) 136(param)

-             138:      7(int) Load 136(param)

-                              Store 133(tempArg) 138

-                              Store 128(tempReturn) 137

-             140:      7(int) Load 133(tempArg)

-             141:   18(float) ConvertSToF 140

-                              Store 139(arg) 141

-             142:      7(int) Load 128(tempReturn)

-             143:   18(float) ConvertSToF 142

-                              Store 126(ret) 143

-             144:   18(float) Load 126(ret)

-             145:   18(float) Load 139(arg)

-             146:   18(float) FAdd 144 145

-             147:      7(int) ConvertFToS 146

-             148:      7(int) Load 97(color)

-             149:      7(int) IAdd 148 147

-                              Store 97(color) 149

-             150:      7(int) FunctionCall 29(foo3()

-             151:      7(int) Load 97(color)

-             152:      7(int) IAdd 151 150

-                              Store 97(color) 152

-             156:      7(int) Load 97(color)

-             157:   18(float) ConvertSToF 156

-             158:  153(fvec4) CompositeConstruct 157 157 157 157

-                              Store 155(gl_FragColor) 158

-                              Branch 6

-               6:             Label

+           84(t):      7(ptr) Variable Function

+           89(f):     88(ptr) Variable Function

+       96(color):      7(ptr) Variable Function

+          102(e):      7(ptr) Variable Function

+      103(param):      7(ptr) Variable Function

+      104(param):      7(ptr) Variable Function

+      105(param):      7(ptr) Variable Function

+      106(param):      7(ptr) Variable Function

+        125(ret):     18(ptr) Variable Function

+    132(tempArg):      7(ptr) Variable Function

+      133(param):     18(ptr) Variable Function

+      134(param):     20(ptr) Variable Function

+      135(param):      7(ptr) Variable Function

+        138(arg):     18(ptr) Variable Function

+                              Store 84(t) 85

+              93:     92(ptr) AccessChain 89(f) 90

+              94:   86(ivec4) Load 93

+              95:   86(ivec4) CompositeInsert 91 94 1

+                              Store 93 95

+              98:      6(int) Load 84(t)

+              99:      6(int) Load 84(t)

+             100:      6(int) IAdd 98 99

+                              Store 103(param) 97

+                              Store 104(param) 100

+             107:     92(ptr) AccessChain 89(f) 90

+             108:   86(ivec4) Load 107

+             109:      6(int) CompositeExtract 108 1

+                              Store 106(param) 109

+             110:      6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 103(param) 85 104(param) 101 105(param) 106(param)

+             111:      6(int) Load 105(param)

+                              Store 102(e) 111

+             112:      6(int) Load 106(param)

+             113:     92(ptr) AccessChain 89(f) 90

+             114:   86(ivec4) Load 113

+             115:   86(ivec4) CompositeInsert 112 114 1

+                              Store 113 115

+                              Store 96(color) 110

+             117:      6(int) Load 102(e)

+             118:     92(ptr) AccessChain 89(f) 90

+             119:   86(ivec4) Load 118

+             120:      6(int) CompositeExtract 119 1

+             121:      6(int) IAdd 117 120

+             122:      6(int) IMul 116 121

+             123:      6(int) Load 96(color)

+             124:      6(int) IAdd 123 122

+                              Store 96(color) 124

+                              Store 133(param) 128

+                              Store 134(param) 131

+             136:      6(int) FunctionCall 25(foo2(f1;vf3;i1;) 133(param) 134(param) 135(param)

+             137:      6(int) Load 135(param)

+                              Store 132(tempArg) 137

+                              Store 127(tempReturn) 136

+             139:      6(int) Load 132(tempArg)

+             140:   17(float) ConvertSToF 139

+                              Store 138(arg) 140

+             141:      6(int) Load 127(tempReturn)

+             142:   17(float) ConvertSToF 141

+                              Store 125(ret) 142

+             143:   17(float) Load 125(ret)

+             144:   17(float) Load 138(arg)

+             145:   17(float) FAdd 143 144

+             146:      6(int) ConvertFToS 145

+             147:      6(int) Load 96(color)

+             148:      6(int) IAdd 147 146

+                              Store 96(color) 148

+             149:      6(int) FunctionCall 28(foo3()

+             150:      6(int) Load 96(color)

+             151:      6(int) IAdd 150 149

+                              Store 96(color) 151

+             155:      6(int) Load 96(color)

+             156:   17(float) ConvertSToF 155

+             157:  152(fvec4) CompositeConstruct 156 156 156 156

+                              Store 154(gl_FragColor) 157

                               Return

                               FunctionEnd

-16(foo(i1;i1;i1;i1;i1;i1;):      7(int) Function None 9

-           10(a):      8(ptr) FunctionParameter

-           11(b):      7(int) FunctionParameter

-           12(c):      8(ptr) FunctionParameter

-           13(d):      7(int) FunctionParameter

-           14(e):      8(ptr) FunctionParameter

-           15(f):      8(ptr) FunctionParameter

-              17:             Label

-         31(sum):      8(ptr) Variable Function

-              32:      7(int) Load 10(a)

-              33:      7(int) IAdd 32 11(b)

-              34:      7(int) Load 12(c)

-              35:      7(int) IAdd 33 34

-              36:      7(int) IAdd 35 13(d)

-              37:      7(int) Load 15(f)

-              38:      7(int) IAdd 36 37

-                              Store 31(sum) 38

-              40:      7(int) Load 10(a)

-              41:      7(int) IMul 40 39

-                              Store 10(a) 41

-              42:      7(int) Load 12(c)

-              43:      7(int) IMul 42 39

-                              Store 12(c) 43

-                              Store 14(e) 44

-              45:      7(int) Load 15(f)

-              46:      7(int) IMul 45 39

-                              Store 15(f) 46

-              47:      7(int) Load 10(a)

-              48:      7(int) IMul 39 11(b)

-              49:      7(int) IAdd 47 48

-              50:      7(int) Load 12(c)

-              51:      7(int) IAdd 49 50

-              52:      7(int) IMul 39 13(d)

-              53:      7(int) IAdd 51 52

-              54:      7(int) Load 14(e)

-              55:      7(int) IAdd 53 54

-              56:      7(int) Load 15(f)

-              57:      7(int) IAdd 55 56

-              58:      7(int) Load 31(sum)

-              59:      7(int) IAdd 58 57

-                              Store 31(sum) 59

-              60:      7(int) Load 31(sum)

-                              ReturnValue 60

+15(foo(i1;i1;i1;i1;i1;i1;):      6(int) Function None 8

+            9(a):      7(ptr) FunctionParameter

+           10(b):      6(int) FunctionParameter

+           11(c):      7(ptr) FunctionParameter

+           12(d):      6(int) FunctionParameter

+           13(e):      7(ptr) FunctionParameter

+           14(f):      7(ptr) FunctionParameter

+              16:             Label

+         30(sum):      7(ptr) Variable Function

+              31:      6(int) Load 9(a)

+              32:      6(int) IAdd 31 10(b)

+              33:      6(int) Load 11(c)

+              34:      6(int) IAdd 32 33

+              35:      6(int) IAdd 34 12(d)

+              36:      6(int) Load 14(f)

+              37:      6(int) IAdd 35 36

+                              Store 30(sum) 37

+              39:      6(int) Load 9(a)

+              40:      6(int) IMul 39 38

+                              Store 9(a) 40

+              41:      6(int) Load 11(c)

+              42:      6(int) IMul 41 38

+                              Store 11(c) 42

+                              Store 13(e) 43

+              44:      6(int) Load 14(f)

+              45:      6(int) IMul 44 38

+                              Store 14(f) 45

+              46:      6(int) Load 9(a)

+              47:      6(int) IMul 38 10(b)

+              48:      6(int) IAdd 46 47

+              49:      6(int) Load 11(c)

+              50:      6(int) IAdd 48 49

+              51:      6(int) IMul 38 12(d)

+              52:      6(int) IAdd 50 51

+              53:      6(int) Load 13(e)

+              54:      6(int) IAdd 52 53

+              55:      6(int) Load 14(f)

+              56:      6(int) IAdd 54 55

+              57:      6(int) Load 30(sum)

+              58:      6(int) IAdd 57 56

+                              Store 30(sum) 58

+              59:      6(int) Load 30(sum)

+                              ReturnValue 59

                               FunctionEnd

-26(foo2(f1;vf3;i1;):      7(int) Function None 22

-           23(a):     19(ptr) FunctionParameter

-           24(b):     21(ptr) FunctionParameter

-           25(r):      8(ptr) FunctionParameter

-              27:             Label

-              63:   18(float) Load 23(a)

-              64:   18(float) FMul 62 63

-              65:      7(int) ConvertFToS 64

-                              Store 25(r) 65

-              67:   20(fvec3) Load 24(b)

-              68:   18(float) CompositeExtract 67 1

-              69:   18(float) FMul 66 68

-              70:      7(int) ConvertFToS 69

-                              ReturnValue 70

+25(foo2(f1;vf3;i1;):      6(int) Function None 21

+           22(a):     18(ptr) FunctionParameter

+           23(b):     20(ptr) FunctionParameter

+           24(r):      7(ptr) FunctionParameter

+              26:             Label

+              62:   17(float) Load 22(a)

+              63:   17(float) FMul 61 62

+              64:      6(int) ConvertFToS 63

+                              Store 24(r) 64

+              66:   19(fvec3) Load 23(b)

+              67:   17(float) CompositeExtract 66 1

+              68:   17(float) FMul 65 67

+              69:      6(int) ConvertFToS 68

+                              ReturnValue 69

                               FunctionEnd

-       29(foo3():      7(int) Function None 28

-              30:             Label

-              74:   18(float) Load 73(u)

-              77:    76(bool) FOrdGreaterThan 74 75

-                              SelectionMerge 79 None

-                              BranchConditional 77 78 79

-              78:               Label

+       28(foo3():      6(int) Function None 27

+              29:             Label

+              73:   17(float) Load 72(u)

+              76:    75(bool) FOrdGreaterThan 73 74

+                              SelectionMerge 78 None

+                              BranchConditional 76 77 78

+              77:               Label

                                 Kill

-              79:             Label

-                              ReturnValue 83

+              78:             Label

+                              ReturnValue 82

                               FunctionEnd

diff --git a/Test/baseResults/spv.length.frag.out b/Test/baseResults/spv.length.frag.out
index b56e804..4db2172 100755
--- a/Test/baseResults/spv.length.frag.out
+++ b/Test/baseResults/spv.length.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 34

+// Id's are bound by 33

 

                               Source GLSL 120

                               Capability Shader

@@ -14,47 +14,45 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "t"

-                              Name 15  "v"

-                              Name 27  "gl_FragColor"

-                              Name 33  "u"

-                              Decorate 15(v) Smooth

-                              Decorate 27(gl_FragColor) BuiltIn FragColor

-                              Decorate 33(u) NoStaticUse

+                              Name 9  "t"

+                              Name 14  "v"

+                              Name 26  "gl_FragColor"

+                              Name 32  "u"

+                              Decorate 14(v) Smooth

+                              Decorate 26(gl_FragColor) BuiltIn FragColor

+                              Decorate 32(u) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 2

-               9:             TypePointer Function 8(fvec2)

-              11:             TypeInt 32 0

-              12:     11(int) Constant 2

-              13:             TypeArray 8(fvec2) 12

-              14:             TypePointer Input 13

-           15(v):     14(ptr) Variable Input

-              16:             TypeInt 32 1

-              17:     16(int) Constant 0

-              18:             TypePointer Input 8(fvec2)

-              21:     16(int) Constant 1

-              25:             TypeVector 7(float) 4

-              26:             TypePointer Output 25(fvec4)

-27(gl_FragColor):     26(ptr) Variable Output

-              28:    7(float) Constant 1106247680

-              29:   25(fvec4) ConstantComposite 28 28 28 28

-              30:     11(int) Constant 3

-              31:             TypeArray 25(fvec4) 30

-              32:             TypePointer UniformConstant 31

-           33(u):     32(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 2

+               8:             TypePointer Function 7(fvec2)

+              10:             TypeInt 32 0

+              11:     10(int) Constant 2

+              12:             TypeArray 7(fvec2) 11

+              13:             TypePointer Input 12

+           14(v):     13(ptr) Variable Input

+              15:             TypeInt 32 1

+              16:     15(int) Constant 0

+              17:             TypePointer Input 7(fvec2)

+              20:     15(int) Constant 1

+              24:             TypeVector 6(float) 4

+              25:             TypePointer Output 24(fvec4)

+26(gl_FragColor):     25(ptr) Variable Output

+              27:    6(float) Constant 1106247680

+              28:   24(fvec4) ConstantComposite 27 27 27 27

+              29:     10(int) Constant 3

+              30:             TypeArray 24(fvec4) 29

+              31:             TypePointer UniformConstant 30

+           32(u):     31(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-           10(t):      9(ptr) Variable Function

-              19:     18(ptr) AccessChain 15(v) 17

-              20:    8(fvec2) Load 19

-              22:     18(ptr) AccessChain 15(v) 21

-              23:    8(fvec2) Load 22

-              24:    8(fvec2) FAdd 20 23

-                              Store 10(t) 24

-                              Store 27(gl_FragColor) 29

-                              Branch 6

-               6:             Label

+            9(t):      8(ptr) Variable Function

+              18:     17(ptr) AccessChain 14(v) 16

+              19:    7(fvec2) Load 18

+              21:     17(ptr) AccessChain 14(v) 20

+              22:    7(fvec2) Load 21

+              23:    7(fvec2) FAdd 19 22

+                              Store 9(t) 23

+                              Store 26(gl_FragColor) 28

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.localAggregates.frag.out b/Test/baseResults/spv.localAggregates.frag.out
index 37f124e..6be9457 100755
--- a/Test/baseResults/spv.localAggregates.frag.out
+++ b/Test/baseResults/spv.localAggregates.frag.out
@@ -8,7 +8,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 135

+// Id's are bound by 134

 

                               Source GLSL 130

                               Capability Shader

@@ -17,205 +17,203 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "s1"

-                              MemberName 9(s1) 0  "i"

-                              MemberName 9(s1) 1  "f"

-                              Name 11  "s2"

-                              MemberName 11(s2) 0  "i"

-                              MemberName 11(s2) 1  "f"

-                              MemberName 11(s2) 2  "s1_1"

-                              MemberName 11(s2) 3  "bleh"

-                              Name 13  "locals2"

-                              Name 14  "s3"

-                              MemberName 14(s3) 0  "s2_1"

-                              MemberName 14(s3) 1  "i"

-                              MemberName 14(s3) 2  "f"

-                              MemberName 14(s3) 3  "s1_1"

-                              Name 16  "foo3"

-                              Name 37  "localFArray"

-                              Name 41  "coord"

-                              Name 48  "localIArray"

-                              Name 67  "x"

-                              Name 69  "localArray"

-                              Name 74  "i"

-                              Name 81  "a"

-                              Name 87  "condition"

-                              Name 95  "color"

-                              Name 105  "gl_FragColor"

-                              Name 125  "sampler"

-                              Name 131  "foo"

-                              Name 132  "foo2"

-                              Name 134  "uFloatArray"

-                              Decorate 41(coord) Smooth

-                              Decorate 95(color) Smooth

-                              Decorate 105(gl_FragColor) BuiltIn FragColor

-                              Decorate 131(foo) NoStaticUse

-                              Decorate 132(foo2) NoStaticUse

-                              Decorate 134(uFloatArray) NoStaticUse

+                              Name 8  "s1"

+                              MemberName 8(s1) 0  "i"

+                              MemberName 8(s1) 1  "f"

+                              Name 10  "s2"

+                              MemberName 10(s2) 0  "i"

+                              MemberName 10(s2) 1  "f"

+                              MemberName 10(s2) 2  "s1_1"

+                              MemberName 10(s2) 3  "bleh"

+                              Name 12  "locals2"

+                              Name 13  "s3"

+                              MemberName 13(s3) 0  "s2_1"

+                              MemberName 13(s3) 1  "i"

+                              MemberName 13(s3) 2  "f"

+                              MemberName 13(s3) 3  "s1_1"

+                              Name 15  "foo3"

+                              Name 36  "localFArray"

+                              Name 40  "coord"

+                              Name 47  "localIArray"

+                              Name 66  "x"

+                              Name 68  "localArray"

+                              Name 73  "i"

+                              Name 80  "a"

+                              Name 86  "condition"

+                              Name 94  "color"

+                              Name 104  "gl_FragColor"

+                              Name 124  "sampler"

+                              Name 130  "foo"

+                              Name 131  "foo2"

+                              Name 133  "uFloatArray"

+                              Decorate 40(coord) Smooth

+                              Decorate 94(color) Smooth

+                              Decorate 104(gl_FragColor) BuiltIn FragColor

+                              Decorate 130(foo) NoStaticUse

+                              Decorate 131(foo2) NoStaticUse

+                              Decorate 133(uFloatArray) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypeFloat 32

-           9(s1):             TypeStruct 7(int) 8(float)

-              10:             TypeVector 8(float) 4

-          11(s2):             TypeStruct 7(int) 8(float) 9(s1) 10(fvec4)

-              12:             TypePointer Function 11(s2)

-          14(s3):             TypeStruct 11(s2) 7(int) 8(float) 9(s1)

-              15:             TypePointer UniformConstant 14(s3)

-        16(foo3):     15(ptr) Variable UniformConstant

-              17:      7(int) Constant 0

-              18:             TypePointer UniformConstant 11(s2)

-              21:             TypePointer UniformConstant 7(int)

-              24:             TypeBool

-              28:      7(int) Constant 2

-              29:      7(int) Constant 1

-              30:    8(float) Constant 1065353216

-              31:             TypePointer Function 8(float)

-              33:             TypeInt 32 0

-              34:     33(int) Constant 16

-              35:             TypeArray 8(float) 34

-              36:             TypePointer Function 35

-              38:      7(int) Constant 4

-              39:             TypeVector 8(float) 2

-              40:             TypePointer Input 39(fvec2)

-       41(coord):     40(ptr) Variable Input

-              45:     33(int) Constant 8

-              46:             TypeArray 7(int) 45

-              47:             TypePointer Function 46

-              51:             TypePointer Function 7(int)

-              68:      7(int) Constant 5

-              79:      7(int) Constant 16

-              83:    8(float) Constant 0

-   87(condition):     21(ptr) Variable UniformConstant

-              93:      7(int) Constant 3

-              94:             TypePointer Input 10(fvec4)

-       95(color):     94(ptr) Variable Input

-              97:             TypePointer Function 10(fvec4)

-             104:             TypePointer Output 10(fvec4)

-105(gl_FragColor):    104(ptr) Variable Output

-             122:             TypeImage 8(float) 2D sampled format:Unknown

-             123:             TypeSampledImage 122

-             124:             TypePointer UniformConstant 123

-    125(sampler):    124(ptr) Variable UniformConstant

-             130:             TypePointer UniformConstant 9(s1)

-        131(foo):    130(ptr) Variable UniformConstant

-       132(foo2):     18(ptr) Variable UniformConstant

-             133:             TypePointer UniformConstant 35

-134(uFloatArray):    133(ptr) Variable UniformConstant

+               6:             TypeInt 32 1

+               7:             TypeFloat 32

+           8(s1):             TypeStruct 6(int) 7(float)

+               9:             TypeVector 7(float) 4

+          10(s2):             TypeStruct 6(int) 7(float) 8(s1) 9(fvec4)

+              11:             TypePointer Function 10(s2)

+          13(s3):             TypeStruct 10(s2) 6(int) 7(float) 8(s1)

+              14:             TypePointer UniformConstant 13(s3)

+        15(foo3):     14(ptr) Variable UniformConstant

+              16:      6(int) Constant 0

+              17:             TypePointer UniformConstant 10(s2)

+              20:             TypePointer UniformConstant 6(int)

+              23:             TypeBool

+              27:      6(int) Constant 2

+              28:      6(int) Constant 1

+              29:    7(float) Constant 1065353216

+              30:             TypePointer Function 7(float)

+              32:             TypeInt 32 0

+              33:     32(int) Constant 16

+              34:             TypeArray 7(float) 33

+              35:             TypePointer Function 34

+              37:      6(int) Constant 4

+              38:             TypeVector 7(float) 2

+              39:             TypePointer Input 38(fvec2)

+       40(coord):     39(ptr) Variable Input

+              44:     32(int) Constant 8

+              45:             TypeArray 6(int) 44

+              46:             TypePointer Function 45

+              50:             TypePointer Function 6(int)

+              67:      6(int) Constant 5

+              78:      6(int) Constant 16

+              82:    7(float) Constant 0

+   86(condition):     20(ptr) Variable UniformConstant

+              92:      6(int) Constant 3

+              93:             TypePointer Input 9(fvec4)

+       94(color):     93(ptr) Variable Input

+              96:             TypePointer Function 9(fvec4)

+             103:             TypePointer Output 9(fvec4)

+104(gl_FragColor):    103(ptr) Variable Output

+             121:             TypeImage 7(float) 2D sampled format:Unknown

+             122:             TypeSampledImage 121

+             123:             TypePointer UniformConstant 122

+    124(sampler):    123(ptr) Variable UniformConstant

+             129:             TypePointer UniformConstant 8(s1)

+        130(foo):    129(ptr) Variable UniformConstant

+       131(foo2):     17(ptr) Variable UniformConstant

+             132:             TypePointer UniformConstant 34

+133(uFloatArray):    132(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-     13(locals2):     12(ptr) Variable Function

- 37(localFArray):     36(ptr) Variable Function

- 48(localIArray):     47(ptr) Variable Function

-           67(x):     51(ptr) Variable Function

-  69(localArray):     36(ptr) Variable Function

-           74(i):     51(ptr) Variable Function

-           81(a):     36(ptr) Variable Function

-              19:     18(ptr) AccessChain 16(foo3) 17

-              20:      11(s2) Load 19

-                              Store 13(locals2) 20

-              22:     21(ptr) AccessChain 16(foo3) 17 17

-              23:      7(int) Load 22

-              25:    24(bool) SGreaterThan 23 17

-                              SelectionMerge 27 None

-                              BranchConditional 25 26 53

-              26:               Label

-              32:     31(ptr)   AccessChain 13(locals2) 28 29

-                                Store 32 30

-              42:   39(fvec2)   Load 41(coord)

-              43:    8(float)   CompositeExtract 42 0

-              44:     31(ptr)   AccessChain 37(localFArray) 38

-                                Store 44 43

-              49:     21(ptr)   AccessChain 16(foo3) 17 17

-              50:      7(int)   Load 49

-              52:     51(ptr)   AccessChain 48(localIArray) 28

-                                Store 52 50

-                                Branch 27

-              53:               Label

-              54:   39(fvec2)   Load 41(coord)

-              55:    8(float)   CompositeExtract 54 0

-              56:     31(ptr)   AccessChain 13(locals2) 28 29

-                                Store 56 55

-              57:     31(ptr)   AccessChain 37(localFArray) 38

-                                Store 57 30

-              58:     51(ptr)   AccessChain 48(localIArray) 28

-                                Store 58 17

-                                Branch 27

-              27:             Label

-              59:     51(ptr) AccessChain 48(localIArray) 28

-              60:      7(int) Load 59

-              61:    24(bool) IEqual 60 17

-                              SelectionMerge 63 None

-                              BranchConditional 61 62 63

-              62:               Label

-              64:     31(ptr)   AccessChain 37(localFArray) 38

-              65:    8(float)   Load 64

-              66:    8(float)   FAdd 65 30

-                                Store 64 66

-                                Branch 63

-              63:             Label

-                              Store 67(x) 68

-              70:      7(int) Load 67(x)

-              71:   39(fvec2) Load 41(coord)

-              72:    8(float) CompositeExtract 71 0

-              73:     31(ptr) AccessChain 69(localArray) 70

-                              Store 73 72

-                              Store 74(i) 17

-                              Branch 75

+     12(locals2):     11(ptr) Variable Function

+ 36(localFArray):     35(ptr) Variable Function

+ 47(localIArray):     46(ptr) Variable Function

+           66(x):     50(ptr) Variable Function

+  68(localArray):     35(ptr) Variable Function

+           73(i):     50(ptr) Variable Function

+           80(a):     35(ptr) Variable Function

+              18:     17(ptr) AccessChain 15(foo3) 16

+              19:      10(s2) Load 18

+                              Store 12(locals2) 19

+              21:     20(ptr) AccessChain 15(foo3) 16 16

+              22:      6(int) Load 21

+              24:    23(bool) SGreaterThan 22 16

+                              SelectionMerge 26 None

+                              BranchConditional 24 25 52

+              25:               Label

+              31:     30(ptr)   AccessChain 12(locals2) 27 28

+                                Store 31 29

+              41:   38(fvec2)   Load 40(coord)

+              42:    7(float)   CompositeExtract 41 0

+              43:     30(ptr)   AccessChain 36(localFArray) 37

+                                Store 43 42

+              48:     20(ptr)   AccessChain 15(foo3) 16 16

+              49:      6(int)   Load 48

+              51:     50(ptr)   AccessChain 47(localIArray) 27

+                                Store 51 49

+                                Branch 26

+              52:               Label

+              53:   38(fvec2)   Load 40(coord)

+              54:    7(float)   CompositeExtract 53 0

+              55:     30(ptr)   AccessChain 12(locals2) 27 28

+                                Store 55 54

+              56:     30(ptr)   AccessChain 36(localFArray) 37

+                                Store 56 29

+              57:     50(ptr)   AccessChain 47(localIArray) 27

+                                Store 57 16

+                                Branch 26

+              26:             Label

+              58:     50(ptr) AccessChain 47(localIArray) 27

+              59:      6(int) Load 58

+              60:    23(bool) IEqual 59 16

+                              SelectionMerge 62 None

+                              BranchConditional 60 61 62

+              61:               Label

+              63:     30(ptr)   AccessChain 36(localFArray) 37

+              64:    7(float)   Load 63

+              65:    7(float)   FAdd 64 29

+                                Store 63 65

+                                Branch 62

+              62:             Label

+                              Store 66(x) 67

+              69:      6(int) Load 66(x)

+              70:   38(fvec2) Load 40(coord)

+              71:    7(float) CompositeExtract 70 0

+              72:     30(ptr) AccessChain 68(localArray) 69

+                              Store 72 71

+                              Store 73(i) 16

+                              Branch 74

+              74:             Label

+              77:      6(int) Load 73(i)

+              79:    23(bool) SLessThan 77 78

+                              LoopMerge 75 None

+                              BranchConditional 79 76 75

+              76:               Label

+              81:      6(int)   Load 73(i)

+              83:     30(ptr)   AccessChain 80(a) 81

+                                Store 83 82

+              84:      6(int)   Load 73(i)

+              85:      6(int)   IAdd 84 28

+                                Store 73(i) 85

+                                Branch 74

               75:             Label

-              78:      7(int) Load 74(i)

-              80:    24(bool) SLessThan 78 79

-                              LoopMerge 76 None

-                              BranchConditional 80 77 76

-              77:               Label

-              82:      7(int)   Load 74(i)

-              84:     31(ptr)   AccessChain 81(a) 82

-                                Store 84 83

-              85:      7(int)   Load 74(i)

-              86:      7(int)   IAdd 85 29

-                                Store 74(i) 86

-                                Branch 75

-              76:             Label

-              88:      7(int) Load 87(condition)

-              89:    24(bool) IEqual 88 29

-                              SelectionMerge 91 None

-                              BranchConditional 89 90 91

-              90:               Label

-              92:          35   Load 69(localArray)

-                                Store 81(a) 92

-                                Branch 91

-              91:             Label

-              96:   10(fvec4) Load 95(color)

-              98:     97(ptr) AccessChain 13(locals2) 93

-                              Store 98 96

-              99:   39(fvec2) Load 41(coord)

-             100:    8(float) CompositeExtract 99 1

-             101:     97(ptr) AccessChain 13(locals2) 93

-             102:   10(fvec4) Load 101

-             103:   10(fvec4) CompositeInsert 100 102 2

-                              Store 101 103

-             106:     97(ptr) AccessChain 13(locals2) 93

-             107:   10(fvec4) Load 106

-             108:     31(ptr) AccessChain 37(localFArray) 38

-             109:    8(float) Load 108

-             110:     31(ptr) AccessChain 13(locals2) 28 29

-             111:    8(float) Load 110

-             112:    8(float) FAdd 109 111

-             113:      7(int) Load 67(x)

-             114:     31(ptr) AccessChain 69(localArray) 113

-             115:    8(float) Load 114

-             116:    8(float) FAdd 112 115

-             117:      7(int) Load 67(x)

-             118:     31(ptr) AccessChain 81(a) 117

-             119:    8(float) Load 118

-             120:    8(float) FAdd 116 119

-             121:   10(fvec4) VectorTimesScalar 107 120

-             126:         123 Load 125(sampler)

-             127:   39(fvec2) Load 41(coord)

-             128:   10(fvec4) ImageSampleImplicitLod 126 127

-             129:   10(fvec4) FMul 121 128

-                              Store 105(gl_FragColor) 129

-                              Branch 6

-               6:             Label

+              87:      6(int) Load 86(condition)

+              88:    23(bool) IEqual 87 28

+                              SelectionMerge 90 None

+                              BranchConditional 88 89 90

+              89:               Label

+              91:          34   Load 68(localArray)

+                                Store 80(a) 91

+                                Branch 90

+              90:             Label

+              95:    9(fvec4) Load 94(color)

+              97:     96(ptr) AccessChain 12(locals2) 92

+                              Store 97 95

+              98:   38(fvec2) Load 40(coord)

+              99:    7(float) CompositeExtract 98 1

+             100:     96(ptr) AccessChain 12(locals2) 92

+             101:    9(fvec4) Load 100

+             102:    9(fvec4) CompositeInsert 99 101 2

+                              Store 100 102

+             105:     96(ptr) AccessChain 12(locals2) 92

+             106:    9(fvec4) Load 105

+             107:     30(ptr) AccessChain 36(localFArray) 37

+             108:    7(float) Load 107

+             109:     30(ptr) AccessChain 12(locals2) 27 28

+             110:    7(float) Load 109

+             111:    7(float) FAdd 108 110

+             112:      6(int) Load 66(x)

+             113:     30(ptr) AccessChain 68(localArray) 112

+             114:    7(float) Load 113

+             115:    7(float) FAdd 111 114

+             116:      6(int) Load 66(x)

+             117:     30(ptr) AccessChain 80(a) 116

+             118:    7(float) Load 117

+             119:    7(float) FAdd 115 118

+             120:    9(fvec4) VectorTimesScalar 106 119

+             125:         122 Load 124(sampler)

+             126:   38(fvec2) Load 40(coord)

+             127:    9(fvec4) ImageSampleImplicitLod 125 126

+             128:    9(fvec4) FMul 120 127

+                              Store 104(gl_FragColor) 128

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.loops.frag.out b/Test/baseResults/spv.loops.frag.out
index 8cc3a1c..6dc80cb 100755
--- a/Test/baseResults/spv.loops.frag.out
+++ b/Test/baseResults/spv.loops.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 750

+// Id's are bound by 749

 

                               Source GLSL 130

                               Capability Shader

@@ -16,1129 +16,1127 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 48  "d"

-                              Name 52  "bigColor"

-                              Name 63  "bigColor1_1"

-                              Name 93  "d2"

-                              Name 98  "d3"

-                              Name 102  "bigColor1_2"

-                              Name 113  "bigColor1_3"

-                              Name 119  "d4"

-                              Name 130  "i"

-                              Name 137  "Count"

-                              Name 140  "bigColor2"

-                              Name 158  "bigColor3"

-                              Name 163  "i"

-                              Name 178  "i"

-                              Name 216  "i"

-                              Name 241  "i"

-                              Name 269  "i"

-                              Name 306  "bigColor4"

-                              Name 344  "d5"

-                              Name 348  "bigColor5"

-                              Name 366  "d6"

-                              Name 378  "bigColor6"

-                              Name 413  "d7"

-                              Name 447  "bigColor7"

-                              Name 472  "d8"

-                              Name 518  "d9"

-                              Name 550  "d10"

-                              Name 560  "d11"

-                              Name 572  "d12"

-                              Name 600  "bigColor8"

-                              Name 628  "gl_FragColor"

-                              Name 635  "d14"

-                              Name 640  "d15"

-                              Name 658  "d16"

-                              Name 696  "d17"

-                              Name 702  "d18"

-                              Name 733  "d13"

-                              Name 734  "d19"

-                              Name 735  "d20"

-                              Name 736  "d21"

-                              Name 737  "d22"

-                              Name 738  "d23"

-                              Name 739  "d24"

-                              Name 740  "d25"

-                              Name 741  "d26"

-                              Name 742  "d27"

-                              Name 743  "d28"

-                              Name 744  "d29"

-                              Name 745  "d30"

-                              Name 746  "d31"

-                              Name 747  "d32"

-                              Name 748  "d33"

-                              Name 749  "d34"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 628(gl_FragColor) BuiltIn FragColor

-                              Decorate 733(d13) NoStaticUse

-                              Decorate 734(d19) NoStaticUse

-                              Decorate 735(d20) NoStaticUse

-                              Decorate 736(d21) NoStaticUse

-                              Decorate 737(d22) NoStaticUse

-                              Decorate 738(d23) NoStaticUse

-                              Decorate 739(d24) NoStaticUse

-                              Decorate 740(d25) NoStaticUse

-                              Decorate 741(d26) NoStaticUse

-                              Decorate 742(d27) NoStaticUse

-                              Decorate 743(d28) NoStaticUse

-                              Decorate 744(d29) NoStaticUse

-                              Decorate 745(d30) NoStaticUse

-                              Decorate 746(d31) NoStaticUse

-                              Decorate 747(d32) NoStaticUse

-                              Decorate 748(d33) NoStaticUse

-                              Decorate 749(d34) NoStaticUse

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 47  "d"

+                              Name 51  "bigColor"

+                              Name 62  "bigColor1_1"

+                              Name 92  "d2"

+                              Name 97  "d3"

+                              Name 101  "bigColor1_2"

+                              Name 112  "bigColor1_3"

+                              Name 118  "d4"

+                              Name 129  "i"

+                              Name 136  "Count"

+                              Name 139  "bigColor2"

+                              Name 157  "bigColor3"

+                              Name 162  "i"

+                              Name 177  "i"

+                              Name 215  "i"

+                              Name 240  "i"

+                              Name 268  "i"

+                              Name 305  "bigColor4"

+                              Name 343  "d5"

+                              Name 347  "bigColor5"

+                              Name 365  "d6"

+                              Name 377  "bigColor6"

+                              Name 412  "d7"

+                              Name 446  "bigColor7"

+                              Name 471  "d8"

+                              Name 517  "d9"

+                              Name 549  "d10"

+                              Name 559  "d11"

+                              Name 571  "d12"

+                              Name 599  "bigColor8"

+                              Name 627  "gl_FragColor"

+                              Name 634  "d14"

+                              Name 639  "d15"

+                              Name 657  "d16"

+                              Name 695  "d17"

+                              Name 701  "d18"

+                              Name 732  "d13"

+                              Name 733  "d19"

+                              Name 734  "d20"

+                              Name 735  "d21"

+                              Name 736  "d22"

+                              Name 737  "d23"

+                              Name 738  "d24"

+                              Name 739  "d25"

+                              Name 740  "d26"

+                              Name 741  "d27"

+                              Name 742  "d28"

+                              Name 743  "d29"

+                              Name 744  "d30"

+                              Name 745  "d31"

+                              Name 746  "d32"

+                              Name 747  "d33"

+                              Name 748  "d34"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 627(gl_FragColor) BuiltIn FragColor

+                              Decorate 732(d13) NoStaticUse

+                              Decorate 733(d19) NoStaticUse

+                              Decorate 734(d20) NoStaticUse

+                              Decorate 735(d21) NoStaticUse

+                              Decorate 736(d22) NoStaticUse

+                              Decorate 737(d23) NoStaticUse

+                              Decorate 738(d24) NoStaticUse

+                              Decorate 739(d25) NoStaticUse

+                              Decorate 740(d26) NoStaticUse

+                              Decorate 741(d27) NoStaticUse

+                              Decorate 742(d28) NoStaticUse

+                              Decorate 743(d29) NoStaticUse

+                              Decorate 744(d30) NoStaticUse

+                              Decorate 745(d31) NoStaticUse

+                              Decorate 746(d32) NoStaticUse

+                              Decorate 747(d33) NoStaticUse

+                              Decorate 748(d34) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              17:             TypeBool

-              18:    17(bool) ConstantTrue

-              21:    7(float) Constant 1051260355

-              25:    8(fvec4) ConstantComposite 21 21 21 21

-              31:    7(float) Constant 1059648963

-              35:    8(fvec4) ConstantComposite 31 31 31 31

-              47:             TypePointer UniformConstant 7(float)

-           48(d):     47(ptr) Variable UniformConstant

-              51:             TypePointer UniformConstant 8(fvec4)

-    52(bigColor):     51(ptr) Variable UniformConstant

- 63(bigColor1_1):     51(ptr) Variable UniformConstant

-              82:    7(float) Constant 1109917696

-              85:    7(float) Constant 1065353216

-          93(d2):     47(ptr) Variable UniformConstant

-          98(d3):     47(ptr) Variable UniformConstant

-102(bigColor1_2):     51(ptr) Variable UniformConstant

-113(bigColor1_3):     51(ptr) Variable UniformConstant

-         119(d4):     47(ptr) Variable UniformConstant

-             128:             TypeInt 32 1

-             129:             TypePointer Function 128(int)

-             131:    128(int) Constant 0

-             136:             TypePointer UniformConstant 128(int)

-      137(Count):    136(ptr) Variable UniformConstant

-  140(bigColor2):     51(ptr) Variable UniformConstant

-             145:    128(int) Constant 1

-  158(bigColor3):     51(ptr) Variable UniformConstant

-             162:    17(bool) ConstantFalse

-             168:    128(int) Constant 42

-             183:    128(int) Constant 100

-             187:    7(float) Constant 1101004800

-             221:    128(int) Constant 120

-  306(bigColor4):     51(ptr) Variable UniformConstant

-         344(d5):     47(ptr) Variable UniformConstant

-  348(bigColor5):     51(ptr) Variable UniformConstant

-         366(d6):     47(ptr) Variable UniformConstant

-  378(bigColor6):     51(ptr) Variable UniformConstant

-         413(d7):     47(ptr) Variable UniformConstant

-             442:    7(float) Constant 0

-  447(bigColor7):     51(ptr) Variable UniformConstant

-         472(d8):     47(ptr) Variable UniformConstant

-             494:    7(float) Constant 1073741824

-         518(d9):     47(ptr) Variable UniformConstant

-             534:    7(float) Constant 1084227584

-        550(d10):     47(ptr) Variable UniformConstant

-        560(d11):     47(ptr) Variable UniformConstant

-        572(d12):     47(ptr) Variable UniformConstant

-             598:    7(float) Constant 1092616192

-  600(bigColor8):     51(ptr) Variable UniformConstant

-             627:             TypePointer Output 8(fvec4)

-628(gl_FragColor):    627(ptr) Variable Output

-        635(d14):     47(ptr) Variable UniformConstant

-        640(d15):     47(ptr) Variable UniformConstant

-        658(d16):     47(ptr) Variable UniformConstant

-        696(d17):     47(ptr) Variable UniformConstant

-        702(d18):     47(ptr) Variable UniformConstant

-        733(d13):     47(ptr) Variable UniformConstant

-        734(d19):     47(ptr) Variable UniformConstant

-        735(d20):     47(ptr) Variable UniformConstant

-        736(d21):     47(ptr) Variable UniformConstant

-        737(d22):     47(ptr) Variable UniformConstant

-        738(d23):     47(ptr) Variable UniformConstant

-        739(d24):     47(ptr) Variable UniformConstant

-        740(d25):     47(ptr) Variable UniformConstant

-        741(d26):     47(ptr) Variable UniformConstant

-        742(d27):     47(ptr) Variable UniformConstant

-        743(d28):     47(ptr) Variable UniformConstant

-        744(d29):     47(ptr) Variable UniformConstant

-        745(d30):     47(ptr) Variable UniformConstant

-        746(d31):     47(ptr) Variable UniformConstant

-        747(d32):     47(ptr) Variable UniformConstant

-        748(d33):     47(ptr) Variable UniformConstant

-        749(d34):     47(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              16:             TypeBool

+              17:    16(bool) ConstantTrue

+              20:    6(float) Constant 1051260355

+              24:    7(fvec4) ConstantComposite 20 20 20 20

+              30:    6(float) Constant 1059648963

+              34:    7(fvec4) ConstantComposite 30 30 30 30

+              46:             TypePointer UniformConstant 6(float)

+           47(d):     46(ptr) Variable UniformConstant

+              50:             TypePointer UniformConstant 7(fvec4)

+    51(bigColor):     50(ptr) Variable UniformConstant

+ 62(bigColor1_1):     50(ptr) Variable UniformConstant

+              81:    6(float) Constant 1109917696

+              84:    6(float) Constant 1065353216

+          92(d2):     46(ptr) Variable UniformConstant

+          97(d3):     46(ptr) Variable UniformConstant

+101(bigColor1_2):     50(ptr) Variable UniformConstant

+112(bigColor1_3):     50(ptr) Variable UniformConstant

+         118(d4):     46(ptr) Variable UniformConstant

+             127:             TypeInt 32 1

+             128:             TypePointer Function 127(int)

+             130:    127(int) Constant 0

+             135:             TypePointer UniformConstant 127(int)

+      136(Count):    135(ptr) Variable UniformConstant

+  139(bigColor2):     50(ptr) Variable UniformConstant

+             144:    127(int) Constant 1

+  157(bigColor3):     50(ptr) Variable UniformConstant

+             161:    16(bool) ConstantFalse

+             167:    127(int) Constant 42

+             182:    127(int) Constant 100

+             186:    6(float) Constant 1101004800

+             220:    127(int) Constant 120

+  305(bigColor4):     50(ptr) Variable UniformConstant

+         343(d5):     46(ptr) Variable UniformConstant

+  347(bigColor5):     50(ptr) Variable UniformConstant

+         365(d6):     46(ptr) Variable UniformConstant

+  377(bigColor6):     50(ptr) Variable UniformConstant

+         412(d7):     46(ptr) Variable UniformConstant

+             441:    6(float) Constant 0

+  446(bigColor7):     50(ptr) Variable UniformConstant

+         471(d8):     46(ptr) Variable UniformConstant

+             493:    6(float) Constant 1073741824

+         517(d9):     46(ptr) Variable UniformConstant

+             533:    6(float) Constant 1084227584

+        549(d10):     46(ptr) Variable UniformConstant

+        559(d11):     46(ptr) Variable UniformConstant

+        571(d12):     46(ptr) Variable UniformConstant

+             597:    6(float) Constant 1092616192

+  599(bigColor8):     50(ptr) Variable UniformConstant

+             626:             TypePointer Output 7(fvec4)

+627(gl_FragColor):    626(ptr) Variable Output

+        634(d14):     46(ptr) Variable UniformConstant

+        639(d15):     46(ptr) Variable UniformConstant

+        657(d16):     46(ptr) Variable UniformConstant

+        695(d17):     46(ptr) Variable UniformConstant

+        701(d18):     46(ptr) Variable UniformConstant

+        732(d13):     46(ptr) Variable UniformConstant

+        733(d19):     46(ptr) Variable UniformConstant

+        734(d20):     46(ptr) Variable UniformConstant

+        735(d21):     46(ptr) Variable UniformConstant

+        736(d22):     46(ptr) Variable UniformConstant

+        737(d23):     46(ptr) Variable UniformConstant

+        738(d24):     46(ptr) Variable UniformConstant

+        739(d25):     46(ptr) Variable UniformConstant

+        740(d26):     46(ptr) Variable UniformConstant

+        741(d27):     46(ptr) Variable UniformConstant

+        742(d28):     46(ptr) Variable UniformConstant

+        743(d29):     46(ptr) Variable UniformConstant

+        744(d30):     46(ptr) Variable UniformConstant

+        745(d31):     46(ptr) Variable UniformConstant

+        746(d32):     46(ptr) Variable UniformConstant

+        747(d33):     46(ptr) Variable UniformConstant

+        748(d34):     46(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-          130(i):    129(ptr) Variable Function

-          163(i):    129(ptr) Variable Function

-          178(i):    129(ptr) Variable Function

-          216(i):    129(ptr) Variable Function

-          241(i):    129(ptr) Variable Function

-          269(i):    129(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-                              Branch 14

+        9(color):      8(ptr) Variable Function

+          129(i):    128(ptr) Variable Function

+          162(i):    128(ptr) Variable Function

+          177(i):    128(ptr) Variable Function

+          215(i):    128(ptr) Variable Function

+          240(i):    128(ptr) Variable Function

+          268(i):    128(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+                              Branch 13

+              13:             Label

+                              LoopMerge 14 None

+                              BranchConditional 17 15 14

+              15:               Label

+              18:    7(fvec4)   Load 9(color)

+              19:    6(float)   CompositeExtract 18 0

+              21:    16(bool)   FOrdLessThan 19 20

+                                SelectionMerge 23 None

+                                BranchConditional 21 22 23

+              22:                 Label

+              25:    7(fvec4)     Load 9(color)

+              26:    7(fvec4)     FAdd 25 24

+                                  Store 9(color) 26

+                                  Branch 14

+              23:               Label

+              28:    7(fvec4)   Load 9(color)

+              29:    6(float)   CompositeExtract 28 0

+              31:    16(bool)   FOrdLessThan 29 30

+                                SelectionMerge 33 None

+                                BranchConditional 31 32 33

+              32:                 Label

+              35:    7(fvec4)     Load 9(color)

+              36:    7(fvec4)     FAdd 35 34

+                                  Store 9(color) 36

+                                  Branch 14

+              33:               Label

+              38:    7(fvec4)   Load 9(color)

+              39:    7(fvec4)   FAdd 38 24

+                                Store 9(color) 39

+                                Branch 14

               14:             Label

-                              LoopMerge 15 None

-                              BranchConditional 18 16 15

-              16:               Label

-              19:    8(fvec4)   Load 10(color)

-              20:    7(float)   CompositeExtract 19 0

-              22:    17(bool)   FOrdLessThan 20 21

-                                SelectionMerge 24 None

-                                BranchConditional 22 23 24

-              23:                 Label

-              26:    8(fvec4)     Load 10(color)

-              27:    8(fvec4)     FAdd 26 25

-                                  Store 10(color) 27

-                                  Branch 15

-              24:               Label

-              29:    8(fvec4)   Load 10(color)

-              30:    7(float)   CompositeExtract 29 0

-              32:    17(bool)   FOrdLessThan 30 31

-                                SelectionMerge 34 None

-                                BranchConditional 32 33 34

-              33:                 Label

-              36:    8(fvec4)     Load 10(color)

-              37:    8(fvec4)     FAdd 36 35

-                                  Store 10(color) 37

-                                  Branch 15

-              34:               Label

-              39:    8(fvec4)   Load 10(color)

-              40:    8(fvec4)   FAdd 39 25

-                                Store 10(color) 40

-                                Branch 15

-              15:             Label

-                              Branch 42

+                              Branch 41

+              41:             Label

+              44:    7(fvec4) Load 9(color)

+              45:    6(float) CompositeExtract 44 0

+              48:    6(float) Load 47(d)

+              49:    16(bool) FOrdLessThan 45 48

+                              LoopMerge 42 None

+                              BranchConditional 49 43 42

+              43:               Label

+              52:    7(fvec4)   Load 51(bigColor)

+              53:    7(fvec4)   Load 9(color)

+              54:    7(fvec4)   FAdd 53 52

+                                Store 9(color) 54

+                                Branch 41

               42:             Label

-              45:    8(fvec4) Load 10(color)

-              46:    7(float) CompositeExtract 45 0

-              49:    7(float) Load 48(d)

-              50:    17(bool) FOrdLessThan 46 49

-                              LoopMerge 43 None

-                              BranchConditional 50 44 43

-              44:               Label

-              53:    8(fvec4)   Load 52(bigColor)

-              54:    8(fvec4)   Load 10(color)

-              55:    8(fvec4)   FAdd 54 53

-                                Store 10(color) 55

-                                Branch 42

-              43:             Label

-                              Branch 56

+                              Branch 55

+              55:             Label

+              58:    7(fvec4) Load 9(color)

+              59:    6(float) CompositeExtract 58 2

+              60:    6(float) Load 47(d)

+              61:    16(bool) FOrdLessThan 59 60

+                              LoopMerge 56 None

+                              BranchConditional 61 57 56

+              57:               Label

+              63:    7(fvec4)   Load 62(bigColor1_1)

+              64:    7(fvec4)   Load 9(color)

+              65:    7(fvec4)   FAdd 64 63

+                                Store 9(color) 65

+              66:    7(fvec4)   Load 9(color)

+              67:    6(float)   CompositeExtract 66 3

+              68:    6(float)   Load 47(d)

+              69:    16(bool)   FOrdLessThan 67 68

+                                SelectionMerge 71 None

+                                BranchConditional 69 70 71

+              70:                 Label

+                                  Branch 55

+              71:               Label

+              73:    7(fvec4)   Load 62(bigColor1_1)

+              74:    7(fvec4)   Load 9(color)

+              75:    7(fvec4)   FAdd 74 73

+                                Store 9(color) 75

+                                Branch 55

               56:             Label

-              59:    8(fvec4) Load 10(color)

-              60:    7(float) CompositeExtract 59 2

-              61:    7(float) Load 48(d)

-              62:    17(bool) FOrdLessThan 60 61

-                              LoopMerge 57 None

-                              BranchConditional 62 58 57

-              58:               Label

-              64:    8(fvec4)   Load 63(bigColor1_1)

-              65:    8(fvec4)   Load 10(color)

-              66:    8(fvec4)   FAdd 65 64

-                                Store 10(color) 66

-              67:    8(fvec4)   Load 10(color)

-              68:    7(float)   CompositeExtract 67 3

-              69:    7(float)   Load 48(d)

-              70:    17(bool)   FOrdLessThan 68 69

-                                SelectionMerge 72 None

-                                BranchConditional 70 71 72

-              71:                 Label

-                                  Branch 56

-              72:               Label

-              74:    8(fvec4)   Load 63(bigColor1_1)

-              75:    8(fvec4)   Load 10(color)

-              76:    8(fvec4)   FAdd 75 74

-                                Store 10(color) 76

-                                Branch 56

-              57:             Label

-                              Branch 77

+                              Branch 76

+              76:             Label

+              79:    7(fvec4) Load 9(color)

+              80:    6(float) CompositeExtract 79 0

+              82:    16(bool) FOrdLessThan 80 81

+                              LoopMerge 77 None

+                              BranchConditional 82 78 77

+              78:               Label

+              83:    7(fvec4)   Load 9(color)

+              85:    7(fvec4)   CompositeConstruct 84 84 84 84

+              86:    7(fvec4)   FAdd 83 85

+                                Store 9(color) 86

+                                Branch 76

               77:             Label

-              80:    8(fvec4) Load 10(color)

-              81:    7(float) CompositeExtract 80 0

-              83:    17(bool) FOrdLessThan 81 82

-                              LoopMerge 78 None

-                              BranchConditional 83 79 78

-              79:               Label

-              84:    8(fvec4)   Load 10(color)

-              86:    8(fvec4)   CompositeConstruct 85 85 85 85

-              87:    8(fvec4)   FAdd 84 86

-                                Store 10(color) 87

-                                Branch 77

-              78:             Label

-                              Branch 88

+                              Branch 87

+              87:             Label

+              90:    7(fvec4) Load 9(color)

+              91:    6(float) CompositeExtract 90 3

+              93:    6(float) Load 92(d2)

+              94:    16(bool) FOrdLessThan 91 93

+              95:    7(fvec4) Load 9(color)

+              96:    6(float) CompositeExtract 95 1

+              98:    6(float) Load 97(d3)

+              99:    16(bool) FOrdLessThan 96 98

+             100:    16(bool) LogicalAnd 94 99

+                              LoopMerge 88 None

+                              BranchConditional 100 89 88

+              89:               Label

+             102:    7(fvec4)   Load 101(bigColor1_2)

+             103:    7(fvec4)   Load 9(color)

+             104:    7(fvec4)   FAdd 103 102

+                                Store 9(color) 104

+                                Branch 87

               88:             Label

-              91:    8(fvec4) Load 10(color)

-              92:    7(float) CompositeExtract 91 3

-              94:    7(float) Load 93(d2)

-              95:    17(bool) FOrdLessThan 92 94

-              96:    8(fvec4) Load 10(color)

-              97:    7(float) CompositeExtract 96 1

-              99:    7(float) Load 98(d3)

-             100:    17(bool) FOrdLessThan 97 99

-             101:    17(bool) LogicalAnd 95 100

-                              LoopMerge 89 None

-                              BranchConditional 101 90 89

-              90:               Label

-             103:    8(fvec4)   Load 102(bigColor1_2)

-             104:    8(fvec4)   Load 10(color)

-             105:    8(fvec4)   FAdd 104 103

-                                Store 10(color) 105

-                                Branch 88

-              89:             Label

-                              Branch 106

+                              Branch 105

+             105:             Label

+             108:    7(fvec4) Load 9(color)

+             109:    6(float) CompositeExtract 108 2

+             110:    6(float) Load 97(d3)

+             111:    16(bool) FOrdLessThan 109 110

+                              LoopMerge 106 None

+                              BranchConditional 111 107 106

+             107:               Label

+             113:    7(fvec4)   Load 112(bigColor1_3)

+             114:    7(fvec4)   Load 9(color)

+             115:    7(fvec4)   FAdd 114 113

+                                Store 9(color) 115

+             116:    7(fvec4)   Load 9(color)

+             117:    6(float)   CompositeExtract 116 1

+             119:    6(float)   Load 118(d4)

+             120:    16(bool)   FOrdLessThan 117 119

+                                SelectionMerge 122 None

+                                BranchConditional 120 121 122

+             121:                 Label

+                                  Branch 106

+             122:               Label

+             124:    7(fvec4)   Load 112(bigColor1_3)

+             125:    7(fvec4)   Load 9(color)

+             126:    7(fvec4)   FAdd 125 124

+                                Store 9(color) 126

+                                Branch 105

              106:             Label

-             109:    8(fvec4) Load 10(color)

-             110:    7(float) CompositeExtract 109 2

-             111:    7(float) Load 98(d3)

-             112:    17(bool) FOrdLessThan 110 111

-                              LoopMerge 107 None

-                              BranchConditional 112 108 107

-             108:               Label

-             114:    8(fvec4)   Load 113(bigColor1_3)

-             115:    8(fvec4)   Load 10(color)

-             116:    8(fvec4)   FAdd 115 114

-                                Store 10(color) 116

-             117:    8(fvec4)   Load 10(color)

-             118:    7(float)   CompositeExtract 117 1

-             120:    7(float)   Load 119(d4)

-             121:    17(bool)   FOrdLessThan 118 120

-                                SelectionMerge 123 None

-                                BranchConditional 121 122 123

-             122:                 Label

-                                  Branch 107

-             123:               Label

-             125:    8(fvec4)   Load 113(bigColor1_3)

-             126:    8(fvec4)   Load 10(color)

-             127:    8(fvec4)   FAdd 126 125

-                                Store 10(color) 127

-                                Branch 106

-             107:             Label

-                              Store 130(i) 131

-                              Branch 132

+                              Store 129(i) 130

+                              Branch 131

+             131:             Label

+             134:    127(int) Load 129(i)

+             137:    127(int) Load 136(Count)

+             138:    16(bool) SLessThan 134 137

+                              LoopMerge 132 None

+                              BranchConditional 138 133 132

+             133:               Label

+             140:    7(fvec4)   Load 139(bigColor2)

+             141:    7(fvec4)   Load 9(color)

+             142:    7(fvec4)   FAdd 141 140

+                                Store 9(color) 142

+             143:    127(int)   Load 129(i)

+             145:    127(int)   IAdd 143 144

+                                Store 129(i) 145

+                                Branch 131

              132:             Label

-             135:    128(int) Load 130(i)

-             138:    128(int) Load 137(Count)

-             139:    17(bool) SLessThan 135 138

-                              LoopMerge 133 None

-                              BranchConditional 139 134 133

-             134:               Label

-             141:    8(fvec4)   Load 140(bigColor2)

-             142:    8(fvec4)   Load 10(color)

-             143:    8(fvec4)   FAdd 142 141

-                                Store 10(color) 143

-             144:    128(int)   Load 130(i)

-             146:    128(int)   IAdd 144 145

-                                Store 130(i) 146

-                                Branch 132

-             133:             Label

-                              Branch 147

-             147:             Label

-             150:    17(bool) Phi 18 133 162 149

-                              LoopMerge 148 None

-                              Branch 151

-             151:             Label

-                              SelectionMerge 149 None

-                              BranchConditional 150 149 152

-             152:               Label

-             153:    8(fvec4)   Load 10(color)

-             154:    7(float)   CompositeExtract 153 0

-             155:    7(float)   Load 93(d2)

-             156:    17(bool)   FOrdLessThan 154 155

-                                SelectionMerge 157 None

-                                BranchConditional 156 157 148

-             157:               Label

-                                Branch 149

-             149:             Label

-             159:    8(fvec4) Load 158(bigColor3)

-             160:    8(fvec4) Load 10(color)

-             161:    8(fvec4) FAdd 160 159

-                              Store 10(color) 161

-                              Branch 147

+                              Branch 146

+             146:             Label

+             149:    16(bool) Phi 17 132 161 148

+                              LoopMerge 147 None

+                              Branch 150

+             150:             Label

+                              SelectionMerge 148 None

+                              BranchConditional 149 148 151

+             151:               Label

+             152:    7(fvec4)   Load 9(color)

+             153:    6(float)   CompositeExtract 152 0

+             154:    6(float)   Load 92(d2)

+             155:    16(bool)   FOrdLessThan 153 154

+                                SelectionMerge 156 None

+                                BranchConditional 155 156 147

+             156:               Label

+                                Branch 148

              148:             Label

-                              Store 163(i) 131

-                              Branch 164

+             158:    7(fvec4) Load 157(bigColor3)

+             159:    7(fvec4) Load 9(color)

+             160:    7(fvec4) FAdd 159 158

+                              Store 9(color) 160

+                              Branch 146

+             147:             Label

+                              Store 162(i) 130

+                              Branch 163

+             163:             Label

+             166:    127(int) Load 162(i)

+             168:    16(bool) SLessThan 166 167

+                              LoopMerge 164 None

+                              BranchConditional 168 165 164

+             165:               Label

+             169:    6(float)   Load 97(d3)

+             170:    7(fvec4)   Load 9(color)

+             171:    6(float)   CompositeExtract 170 2

+             172:    6(float)   FAdd 171 169

+             173:    7(fvec4)   Load 9(color)

+             174:    7(fvec4)   CompositeInsert 172 173 2

+                                Store 9(color) 174

+             175:    127(int)   Load 162(i)

+             176:    127(int)   IAdd 175 144

+                                Store 162(i) 176

+                                Branch 163

              164:             Label

-             167:    128(int) Load 163(i)

-             169:    17(bool) SLessThan 167 168

-                              LoopMerge 165 None

-                              BranchConditional 169 166 165

-             166:               Label

-             170:    7(float)   Load 98(d3)

-             171:    8(fvec4)   Load 10(color)

-             172:    7(float)   CompositeExtract 171 2

-             173:    7(float)   FAdd 172 170

-             174:    8(fvec4)   Load 10(color)

-             175:    8(fvec4)   CompositeInsert 173 174 2

-                                Store 10(color) 175

-             176:    128(int)   Load 163(i)

-             177:    128(int)   IAdd 176 145

-                                Store 163(i) 177

-                                Branch 164

-             165:             Label

-                              Store 178(i) 131

-                              Branch 179

+                              Store 177(i) 130

+                              Branch 178

+             178:             Label

+             181:    127(int) Load 177(i)

+             183:    16(bool) SLessThan 181 182

+                              LoopMerge 179 None

+                              BranchConditional 183 180 179

+             180:               Label

+             184:    7(fvec4)   Load 9(color)

+             185:    6(float)   CompositeExtract 184 2

+             187:    16(bool)   FOrdLessThan 185 186

+                                SelectionMerge 189 None

+                                BranchConditional 187 188 195

+             188:                 Label

+             190:    7(fvec4)     Load 9(color)

+             191:    6(float)     CompositeExtract 190 0

+             192:    6(float)     FAdd 191 84

+             193:    7(fvec4)     Load 9(color)

+             194:    7(fvec4)     CompositeInsert 192 193 0

+                                  Store 9(color) 194

+                                  Branch 189

+             195:                 Label

+             196:    7(fvec4)     Load 9(color)

+             197:    6(float)     CompositeExtract 196 1

+             198:    6(float)     FAdd 197 84

+             199:    7(fvec4)     Load 9(color)

+             200:    7(fvec4)     CompositeInsert 198 199 1

+                                  Store 9(color) 200

+                                  Branch 189

+             189:               Label

+             201:    7(fvec4)   Load 9(color)

+             202:    6(float)   CompositeExtract 201 3

+             203:    16(bool)   FOrdLessThan 202 186

+                                SelectionMerge 205 None

+                                BranchConditional 203 204 205

+             204:                 Label

+             206:    7(fvec4)     Load 9(color)

+             207:    6(float)     CompositeExtract 206 2

+             208:    7(fvec4)     Load 9(color)

+             209:    6(float)     CompositeExtract 208 1

+             210:    16(bool)     FOrdGreaterThan 207 209

+                                  SelectionMerge 212 None

+                                  BranchConditional 210 211 212

+             211:                   Label

+                                    Branch 212

+             212:                 Label

+                                  Branch 205

+             205:               Label

+             213:    127(int)   Load 177(i)

+             214:    127(int)   IAdd 213 144

+                                Store 177(i) 214

+                                Branch 178

              179:             Label

-             182:    128(int) Load 178(i)

-             184:    17(bool) SLessThan 182 183

-                              LoopMerge 180 None

-                              BranchConditional 184 181 180

-             181:               Label

-             185:    8(fvec4)   Load 10(color)

-             186:    7(float)   CompositeExtract 185 2

-             188:    17(bool)   FOrdLessThan 186 187

-                                SelectionMerge 190 None

-                                BranchConditional 188 189 196

-             189:                 Label

-             191:    8(fvec4)     Load 10(color)

-             192:    7(float)     CompositeExtract 191 0

-             193:    7(float)     FAdd 192 85

-             194:    8(fvec4)     Load 10(color)

-             195:    8(fvec4)     CompositeInsert 193 194 0

-                                  Store 10(color) 195

-                                  Branch 190

-             196:                 Label

-             197:    8(fvec4)     Load 10(color)

-             198:    7(float)     CompositeExtract 197 1

-             199:    7(float)     FAdd 198 85

-             200:    8(fvec4)     Load 10(color)

-             201:    8(fvec4)     CompositeInsert 199 200 1

-                                  Store 10(color) 201

-                                  Branch 190

-             190:               Label

-             202:    8(fvec4)   Load 10(color)

-             203:    7(float)   CompositeExtract 202 3

-             204:    17(bool)   FOrdLessThan 203 187

-                                SelectionMerge 206 None

-                                BranchConditional 204 205 206

-             205:                 Label

-             207:    8(fvec4)     Load 10(color)

-             208:    7(float)     CompositeExtract 207 2

-             209:    8(fvec4)     Load 10(color)

-             210:    7(float)     CompositeExtract 209 1

-             211:    17(bool)     FOrdGreaterThan 208 210

-                                  SelectionMerge 213 None

-                                  BranchConditional 211 212 213

-             212:                   Label

-                                    Branch 213

-             213:                 Label

-                                  Branch 206

-             206:               Label

-             214:    128(int)   Load 178(i)

-             215:    128(int)   IAdd 214 145

-                                Store 178(i) 215

-                                Branch 179

-             180:             Label

-                              Store 216(i) 131

-                              Branch 217

+                              Store 215(i) 130

+                              Branch 216

+             216:             Label

+             219:    127(int) Load 215(i)

+             221:    16(bool) SLessThan 219 220

+                              LoopMerge 217 None

+                              BranchConditional 221 218 217

+             218:               Label

+             222:    7(fvec4)   Load 9(color)

+             223:    6(float)   CompositeExtract 222 2

+             224:    16(bool)   FOrdLessThan 223 186

+                                SelectionMerge 226 None

+                                BranchConditional 224 225 232

+             225:                 Label

+             227:    7(fvec4)     Load 9(color)

+             228:    6(float)     CompositeExtract 227 0

+             229:    6(float)     FAdd 228 84

+             230:    7(fvec4)     Load 9(color)

+             231:    7(fvec4)     CompositeInsert 229 230 0

+                                  Store 9(color) 231

+                                  Branch 226

+             232:                 Label

+             233:    7(fvec4)     Load 9(color)

+             234:    6(float)     CompositeExtract 233 1

+             235:    6(float)     FAdd 234 84

+             236:    7(fvec4)     Load 9(color)

+             237:    7(fvec4)     CompositeInsert 235 236 1

+                                  Store 9(color) 237

+                                  Branch 226

+             226:               Label

+             238:    127(int)   Load 215(i)

+             239:    127(int)   IAdd 238 144

+                                Store 215(i) 239

+                                Branch 216

              217:             Label

-             220:    128(int) Load 216(i)

-             222:    17(bool) SLessThan 220 221

-                              LoopMerge 218 None

-                              BranchConditional 222 219 218

-             219:               Label

-             223:    8(fvec4)   Load 10(color)

-             224:    7(float)   CompositeExtract 223 2

-             225:    17(bool)   FOrdLessThan 224 187

-                                SelectionMerge 227 None

-                                BranchConditional 225 226 233

-             226:                 Label

-             228:    8(fvec4)     Load 10(color)

-             229:    7(float)     CompositeExtract 228 0

-             230:    7(float)     FAdd 229 85

-             231:    8(fvec4)     Load 10(color)

-             232:    8(fvec4)     CompositeInsert 230 231 0

-                                  Store 10(color) 232

-                                  Branch 227

-             233:                 Label

-             234:    8(fvec4)     Load 10(color)

-             235:    7(float)     CompositeExtract 234 1

-             236:    7(float)     FAdd 235 85

-             237:    8(fvec4)     Load 10(color)

-             238:    8(fvec4)     CompositeInsert 236 237 1

-                                  Store 10(color) 238

-                                  Branch 227

-             227:               Label

-             239:    128(int)   Load 216(i)

-             240:    128(int)   IAdd 239 145

-                                Store 216(i) 240

-                                Branch 217

-             218:             Label

-                              Store 241(i) 131

-                              Branch 242

+                              Store 240(i) 130

+                              Branch 241

+             241:             Label

+             244:    127(int) Load 240(i)

+             245:    16(bool) SLessThan 244 167

+                              LoopMerge 242 None

+                              BranchConditional 245 243 242

+             243:               Label

+             246:    6(float)   Load 97(d3)

+             247:    7(fvec4)   Load 9(color)

+             248:    6(float)   CompositeExtract 247 2

+             249:    6(float)   FAdd 248 246

+             250:    7(fvec4)   Load 9(color)

+             251:    7(fvec4)   CompositeInsert 249 250 2

+                                Store 9(color) 251

+             252:    7(fvec4)   Load 9(color)

+             253:    6(float)   CompositeExtract 252 0

+             254:    6(float)   Load 118(d4)

+             255:    16(bool)   FOrdLessThan 253 254

+                                SelectionMerge 257 None

+                                BranchConditional 255 256 257

+             256:                 Label

+             258:    127(int)     Load 240(i)

+             259:    127(int)     IAdd 258 144

+                                  Store 240(i) 259

+                                  Branch 241

+             257:               Label

+             261:    7(fvec4)   Load 9(color)

+             262:    6(float)   CompositeExtract 261 3

+             263:    6(float)   FAdd 262 84

+             264:    7(fvec4)   Load 9(color)

+             265:    7(fvec4)   CompositeInsert 263 264 3

+                                Store 9(color) 265

+             266:    127(int)   Load 240(i)

+             267:    127(int)   IAdd 266 144

+                                Store 240(i) 267

+                                Branch 241

              242:             Label

-             245:    128(int) Load 241(i)

-             246:    17(bool) SLessThan 245 168

-                              LoopMerge 243 None

-                              BranchConditional 246 244 243

-             244:               Label

-             247:    7(float)   Load 98(d3)

-             248:    8(fvec4)   Load 10(color)

-             249:    7(float)   CompositeExtract 248 2

-             250:    7(float)   FAdd 249 247

-             251:    8(fvec4)   Load 10(color)

-             252:    8(fvec4)   CompositeInsert 250 251 2

-                                Store 10(color) 252

-             253:    8(fvec4)   Load 10(color)

-             254:    7(float)   CompositeExtract 253 0

-             255:    7(float)   Load 119(d4)

-             256:    17(bool)   FOrdLessThan 254 255

-                                SelectionMerge 258 None

-                                BranchConditional 256 257 258

-             257:                 Label

-             259:    128(int)     Load 241(i)

-             260:    128(int)     IAdd 259 145

-                                  Store 241(i) 260

-                                  Branch 242

-             258:               Label

-             262:    8(fvec4)   Load 10(color)

-             263:    7(float)   CompositeExtract 262 3

-             264:    7(float)   FAdd 263 85

-             265:    8(fvec4)   Load 10(color)

-             266:    8(fvec4)   CompositeInsert 264 265 3

-                                Store 10(color) 266

-             267:    128(int)   Load 241(i)

-             268:    128(int)   IAdd 267 145

-                                Store 241(i) 268

-                                Branch 242

-             243:             Label

-                              Store 269(i) 131

-                              Branch 270

+                              Store 268(i) 130

+                              Branch 269

+             269:             Label

+             272:    127(int) Load 268(i)

+             273:    16(bool) SLessThan 272 167

+                              LoopMerge 270 None

+                              BranchConditional 273 271 270

+             271:               Label

+             274:    6(float)   Load 97(d3)

+             275:    7(fvec4)   Load 9(color)

+             276:    6(float)   CompositeExtract 275 2

+             277:    6(float)   FAdd 276 274

+             278:    7(fvec4)   Load 9(color)

+             279:    7(fvec4)   CompositeInsert 277 278 2

+                                Store 9(color) 279

+             280:    7(fvec4)   Load 9(color)

+             281:    6(float)   CompositeExtract 280 0

+             282:    6(float)   Load 118(d4)

+             283:    16(bool)   FOrdLessThan 281 282

+                                SelectionMerge 285 None

+                                BranchConditional 283 284 285

+             284:                 Label

+                                  Branch 270

+             285:               Label

+             287:    7(fvec4)   Load 9(color)

+             288:    6(float)   CompositeExtract 287 3

+             289:    6(float)   FAdd 288 84

+             290:    7(fvec4)   Load 9(color)

+             291:    7(fvec4)   CompositeInsert 289 290 3

+                                Store 9(color) 291

+             292:    127(int)   Load 268(i)

+             293:    127(int)   IAdd 292 144

+                                Store 268(i) 293

+                                Branch 269

              270:             Label

-             273:    128(int) Load 269(i)

-             274:    17(bool) SLessThan 273 168

-                              LoopMerge 271 None

-                              BranchConditional 274 272 271

-             272:               Label

-             275:    7(float)   Load 98(d3)

-             276:    8(fvec4)   Load 10(color)

-             277:    7(float)   CompositeExtract 276 2

-             278:    7(float)   FAdd 277 275

-             279:    8(fvec4)   Load 10(color)

-             280:    8(fvec4)   CompositeInsert 278 279 2

-                                Store 10(color) 280

-             281:    8(fvec4)   Load 10(color)

-             282:    7(float)   CompositeExtract 281 0

-             283:    7(float)   Load 119(d4)

-             284:    17(bool)   FOrdLessThan 282 283

-                                SelectionMerge 286 None

-                                BranchConditional 284 285 286

-             285:                 Label

-                                  Branch 271

-             286:               Label

-             288:    8(fvec4)   Load 10(color)

-             289:    7(float)   CompositeExtract 288 3

-             290:    7(float)   FAdd 289 85

-             291:    8(fvec4)   Load 10(color)

-             292:    8(fvec4)   CompositeInsert 290 291 3

-                                Store 10(color) 292

-             293:    128(int)   Load 269(i)

-             294:    128(int)   IAdd 293 145

-                                Store 269(i) 294

-                                Branch 270

-             271:             Label

-                              Branch 295

-             295:             Label

-             298:    17(bool) Phi 18 271 162 314 162 322

-                              LoopMerge 296 None

-                              Branch 299

-             299:             Label

-                              SelectionMerge 297 None

-                              BranchConditional 298 297 300

-             300:               Label

-             301:    8(fvec4)   Load 10(color)

-             302:    7(float)   CompositeExtract 301 2

-             303:    7(float)   Load 119(d4)

-             304:    17(bool)   FOrdLessThan 302 303

-                                SelectionMerge 305 None

-                                BranchConditional 304 305 296

-             305:               Label

-                                Branch 297

-             297:             Label

-             307:    8(fvec4) Load 306(bigColor4)

-             308:    8(fvec4) Load 10(color)

-             309:    8(fvec4) FAdd 308 307

-                              Store 10(color) 309

-             310:    8(fvec4) Load 10(color)

-             311:    7(float) CompositeExtract 310 0

-             312:    7(float) Load 119(d4)

-             313:    17(bool) FOrdLessThan 311 312

-                              SelectionMerge 315 None

-                              BranchConditional 313 314 315

-             314:               Label

-                                Branch 295

-             315:             Label

-             317:    8(fvec4) Load 10(color)

-             318:    7(float) CompositeExtract 317 1

-             319:    7(float) Load 119(d4)

-             320:    17(bool) FOrdLessThan 318 319

-                              SelectionMerge 322 None

-                              BranchConditional 320 321 329

-             321:               Label

-             323:    7(float)   Load 119(d4)

-             324:    8(fvec4)   Load 10(color)

-             325:    7(float)   CompositeExtract 324 1

-             326:    7(float)   FAdd 325 323

-             327:    8(fvec4)   Load 10(color)

-             328:    8(fvec4)   CompositeInsert 326 327 1

-                                Store 10(color) 328

-                                Branch 322

-             329:               Label

-             330:    7(float)   Load 119(d4)

-             331:    8(fvec4)   Load 10(color)

-             332:    7(float)   CompositeExtract 331 0

-             333:    7(float)   FAdd 332 330

-             334:    8(fvec4)   Load 10(color)

-             335:    8(fvec4)   CompositeInsert 333 334 0

-                                Store 10(color) 335

-                                Branch 322

-             322:             Label

-                              Branch 295

+                              Branch 294

+             294:             Label

+             297:    16(bool) Phi 17 270 161 313 161 321

+                              LoopMerge 295 None

+                              Branch 298

+             298:             Label

+                              SelectionMerge 296 None

+                              BranchConditional 297 296 299

+             299:               Label

+             300:    7(fvec4)   Load 9(color)

+             301:    6(float)   CompositeExtract 300 2

+             302:    6(float)   Load 118(d4)

+             303:    16(bool)   FOrdLessThan 301 302

+                                SelectionMerge 304 None

+                                BranchConditional 303 304 295

+             304:               Label

+                                Branch 296

              296:             Label

-                              Branch 336

-             336:             Label

-             339:    17(bool) Phi 18 296 162 357

-                              LoopMerge 337 None

-                              Branch 340

-             340:             Label

-                              SelectionMerge 338 None

-                              BranchConditional 339 338 341

-             341:               Label

-             342:    8(fvec4)   Load 10(color)

-             343:    7(float)   CompositeExtract 342 0

-             345:    7(float)   Load 344(d5)

-             346:    17(bool)   FOrdLessThan 343 345

-                                SelectionMerge 347 None

-                                BranchConditional 346 347 337

-             347:               Label

-                                Branch 338

-             338:             Label

-             349:    8(fvec4) Load 348(bigColor5)

-             350:    8(fvec4) Load 10(color)

-             351:    8(fvec4) FAdd 350 349

-                              Store 10(color) 351

-             352:    8(fvec4) Load 10(color)

-             353:    7(float) CompositeExtract 352 1

-             354:    7(float) Load 344(d5)

-             355:    17(bool) FOrdLessThan 353 354

-                              SelectionMerge 357 None

-                              BranchConditional 355 356 357

-             356:               Label

-             358:    7(float)   Load 344(d5)

-             359:    8(fvec4)   Load 10(color)

-             360:    7(float)   CompositeExtract 359 1

-             361:    7(float)   FAdd 360 358

-             362:    8(fvec4)   Load 10(color)

-             363:    8(fvec4)   CompositeInsert 361 362 1

-                                Store 10(color) 363

-                                Branch 357

-             357:             Label

-                              Branch 336

+             306:    7(fvec4) Load 305(bigColor4)

+             307:    7(fvec4) Load 9(color)

+             308:    7(fvec4) FAdd 307 306

+                              Store 9(color) 308

+             309:    7(fvec4) Load 9(color)

+             310:    6(float) CompositeExtract 309 0

+             311:    6(float) Load 118(d4)

+             312:    16(bool) FOrdLessThan 310 311

+                              SelectionMerge 314 None

+                              BranchConditional 312 313 314

+             313:               Label

+                                Branch 294

+             314:             Label

+             316:    7(fvec4) Load 9(color)

+             317:    6(float) CompositeExtract 316 1

+             318:    6(float) Load 118(d4)

+             319:    16(bool) FOrdLessThan 317 318

+                              SelectionMerge 321 None

+                              BranchConditional 319 320 328

+             320:               Label

+             322:    6(float)   Load 118(d4)

+             323:    7(fvec4)   Load 9(color)

+             324:    6(float)   CompositeExtract 323 1

+             325:    6(float)   FAdd 324 322

+             326:    7(fvec4)   Load 9(color)

+             327:    7(fvec4)   CompositeInsert 325 326 1

+                                Store 9(color) 327

+                                Branch 321

+             328:               Label

+             329:    6(float)   Load 118(d4)

+             330:    7(fvec4)   Load 9(color)

+             331:    6(float)   CompositeExtract 330 0

+             332:    6(float)   FAdd 331 329

+             333:    7(fvec4)   Load 9(color)

+             334:    7(fvec4)   CompositeInsert 332 333 0

+                                Store 9(color) 334

+                                Branch 321

+             321:             Label

+                              Branch 294

+             295:             Label

+                              Branch 335

+             335:             Label

+             338:    16(bool) Phi 17 295 161 356

+                              LoopMerge 336 None

+                              Branch 339

+             339:             Label

+                              SelectionMerge 337 None

+                              BranchConditional 338 337 340

+             340:               Label

+             341:    7(fvec4)   Load 9(color)

+             342:    6(float)   CompositeExtract 341 0

+             344:    6(float)   Load 343(d5)

+             345:    16(bool)   FOrdLessThan 342 344

+                                SelectionMerge 346 None

+                                BranchConditional 345 346 336

+             346:               Label

+                                Branch 337

              337:             Label

-             364:    8(fvec4) Load 10(color)

-             365:    7(float) CompositeExtract 364 0

-             367:    7(float) Load 366(d6)

-             368:    17(bool) FOrdLessThan 365 367

-                              SelectionMerge 370 None

-                              BranchConditional 368 369 382

-             369:               Label

-                                Branch 371

+             348:    7(fvec4) Load 347(bigColor5)

+             349:    7(fvec4) Load 9(color)

+             350:    7(fvec4) FAdd 349 348

+                              Store 9(color) 350

+             351:    7(fvec4) Load 9(color)

+             352:    6(float) CompositeExtract 351 1

+             353:    6(float) Load 343(d5)

+             354:    16(bool) FOrdLessThan 352 353

+                              SelectionMerge 356 None

+                              BranchConditional 354 355 356

+             355:               Label

+             357:    6(float)   Load 343(d5)

+             358:    7(fvec4)   Load 9(color)

+             359:    6(float)   CompositeExtract 358 1

+             360:    6(float)   FAdd 359 357

+             361:    7(fvec4)   Load 9(color)

+             362:    7(fvec4)   CompositeInsert 360 361 1

+                                Store 9(color) 362

+                                Branch 356

+             356:             Label

+                              Branch 335

+             336:             Label

+             363:    7(fvec4) Load 9(color)

+             364:    6(float) CompositeExtract 363 0

+             366:    6(float) Load 365(d6)

+             367:    16(bool) FOrdLessThan 364 366

+                              SelectionMerge 369 None

+                              BranchConditional 367 368 381

+             368:               Label

+                                Branch 370

+             370:               Label

+             373:    7(fvec4)   Load 9(color)

+             374:    6(float)   CompositeExtract 373 1

+             375:    6(float)   Load 365(d6)

+             376:    16(bool)   FOrdLessThan 374 375

+                                LoopMerge 371 None

+                                BranchConditional 376 372 371

+             372:                 Label

+             378:    7(fvec4)     Load 377(bigColor6)

+             379:    7(fvec4)     Load 9(color)

+             380:    7(fvec4)     FAdd 379 378

+                                  Store 9(color) 380

+                                  Branch 370

              371:               Label

-             374:    8(fvec4)   Load 10(color)

-             375:    7(float)   CompositeExtract 374 1

-             376:    7(float)   Load 366(d6)

-             377:    17(bool)   FOrdLessThan 375 376

-                                LoopMerge 372 None

-                                BranchConditional 377 373 372

-             373:                 Label

-             379:    8(fvec4)     Load 378(bigColor6)

-             380:    8(fvec4)     Load 10(color)

-             381:    8(fvec4)     FAdd 380 379

-                                  Store 10(color) 381

-                                  Branch 371

-             372:               Label

-                                Branch 370

+                                Branch 369

+             381:               Label

+                                Branch 382

              382:               Label

-                                Branch 383

+             385:    7(fvec4)   Load 9(color)

+             386:    6(float)   CompositeExtract 385 2

+             387:    6(float)   Load 365(d6)

+             388:    16(bool)   FOrdLessThan 386 387

+                                LoopMerge 383 None

+                                BranchConditional 388 384 383

+             384:                 Label

+             389:    7(fvec4)     Load 377(bigColor6)

+             390:    6(float)     CompositeExtract 389 2

+             391:    7(fvec4)     Load 9(color)

+             392:    6(float)     CompositeExtract 391 2

+             393:    6(float)     FAdd 392 390

+             394:    7(fvec4)     Load 9(color)

+             395:    7(fvec4)     CompositeInsert 393 394 2

+                                  Store 9(color) 395

+                                  Branch 382

              383:               Label

-             386:    8(fvec4)   Load 10(color)

-             387:    7(float)   CompositeExtract 386 2

-             388:    7(float)   Load 366(d6)

-             389:    17(bool)   FOrdLessThan 387 388

-                                LoopMerge 384 None

-                                BranchConditional 389 385 384

-             385:                 Label

-             390:    8(fvec4)     Load 378(bigColor6)

-             391:    7(float)     CompositeExtract 390 2

-             392:    8(fvec4)     Load 10(color)

-             393:    7(float)     CompositeExtract 392 2

-             394:    7(float)     FAdd 393 391

-             395:    8(fvec4)     Load 10(color)

-             396:    8(fvec4)     CompositeInsert 394 395 2

-                                  Store 10(color) 396

-                                  Branch 383

-             384:               Label

-                                Branch 370

-             370:             Label

-             397:    8(fvec4) Load 10(color)

-             398:    7(float) CompositeExtract 397 0

-             399:    7(float) Load 366(d6)

-             400:    17(bool) FOrdLessThan 398 399

-                              SelectionMerge 402 None

-                              BranchConditional 400 401 419

-             401:               Label

-                                Branch 403

+                                Branch 369

+             369:             Label

+             396:    7(fvec4) Load 9(color)

+             397:    6(float) CompositeExtract 396 0

+             398:    6(float) Load 365(d6)

+             399:    16(bool) FOrdLessThan 397 398

+                              SelectionMerge 401 None

+                              BranchConditional 399 400 418

+             400:               Label

+                                Branch 402

+             402:               Label

+             405:    7(fvec4)   Load 9(color)

+             406:    6(float)   CompositeExtract 405 1

+             407:    6(float)   Load 365(d6)

+             408:    16(bool)   FOrdLessThan 406 407

+                                LoopMerge 403 None

+                                BranchConditional 408 404 403

+             404:                 Label

+             409:    7(fvec4)     Load 377(bigColor6)

+             410:    7(fvec4)     Load 9(color)

+             411:    7(fvec4)     FAdd 410 409

+                                  Store 9(color) 411

+             413:    6(float)     Load 412(d7)

+             414:    16(bool)     FOrdLessThan 413 84

+                                  SelectionMerge 416 None

+                                  BranchConditional 414 415 416

+             415:                   Label

+                                    Branch 403

+             416:                 Label

+                                  Branch 402

              403:               Label

-             406:    8(fvec4)   Load 10(color)

-             407:    7(float)   CompositeExtract 406 1

-             408:    7(float)   Load 366(d6)

-             409:    17(bool)   FOrdLessThan 407 408

-                                LoopMerge 404 None

-                                BranchConditional 409 405 404

-             405:                 Label

-             410:    8(fvec4)     Load 378(bigColor6)

-             411:    8(fvec4)     Load 10(color)

-             412:    8(fvec4)     FAdd 411 410

-                                  Store 10(color) 412

-             414:    7(float)     Load 413(d7)

-             415:    17(bool)     FOrdLessThan 414 85

-                                  SelectionMerge 417 None

-                                  BranchConditional 415 416 417

-             416:                   Label

-                                    Branch 404

-             417:                 Label

-                                  Branch 403

-             404:               Label

-                                Branch 402

+                                Branch 401

+             418:               Label

+                                Branch 419

              419:               Label

-                                Branch 420

+             422:    7(fvec4)   Load 9(color)

+             423:    6(float)   CompositeExtract 422 2

+             424:    6(float)   Load 365(d6)

+             425:    16(bool)   FOrdLessThan 423 424

+                                LoopMerge 420 None

+                                BranchConditional 425 421 420

+             421:                 Label

+             426:    7(fvec4)     Load 377(bigColor6)

+             427:    6(float)     CompositeExtract 426 2

+             428:    7(fvec4)     Load 9(color)

+             429:    6(float)     CompositeExtract 428 2

+             430:    6(float)     FAdd 429 427

+             431:    7(fvec4)     Load 9(color)

+             432:    7(fvec4)     CompositeInsert 430 431 2

+                                  Store 9(color) 432

+                                  Branch 419

              420:               Label

-             423:    8(fvec4)   Load 10(color)

-             424:    7(float)   CompositeExtract 423 2

-             425:    7(float)   Load 366(d6)

-             426:    17(bool)   FOrdLessThan 424 425

-                                LoopMerge 421 None

-                                BranchConditional 426 422 421

-             422:                 Label

-             427:    8(fvec4)     Load 378(bigColor6)

-             428:    7(float)     CompositeExtract 427 2

-             429:    8(fvec4)     Load 10(color)

-             430:    7(float)     CompositeExtract 429 2

-             431:    7(float)     FAdd 430 428

-             432:    8(fvec4)     Load 10(color)

-             433:    8(fvec4)     CompositeInsert 431 432 2

-                                  Store 10(color) 433

-                                  Branch 420

-             421:               Label

-                                Branch 402

-             402:             Label

-                              Branch 434

-             434:             Label

-             437:    17(bool) Phi 18 402 162 454

-                              LoopMerge 435 None

-                              Branch 438

-             438:             Label

-                              SelectionMerge 436 None

-                              BranchConditional 437 436 439

+                                Branch 401

+             401:             Label

+                              Branch 433

+             433:             Label

+             436:    16(bool) Phi 17 401 161 453

+                              LoopMerge 434 None

+                              Branch 437

+             437:             Label

+                              SelectionMerge 435 None

+                              BranchConditional 436 435 438

+             438:               Label

+                                SelectionMerge 439 None

+                                BranchConditional 17 439 434

              439:               Label

-                                SelectionMerge 440 None

-                                BranchConditional 18 440 435

-             440:               Label

-                                Branch 436

-             436:             Label

-             441:    7(float) Load 413(d7)

-             443:    17(bool) FOrdLessThan 441 442

-                              SelectionMerge 445 None

-                              BranchConditional 443 444 445

-             444:               Label

                                 Branch 435

-             445:             Label

-             448:    8(fvec4) Load 447(bigColor7)

-             449:    8(fvec4) Load 10(color)

-             450:    8(fvec4) FAdd 449 448

-                              Store 10(color) 450

-             451:    7(float) Load 413(d7)

-             452:    17(bool) FOrdLessThan 451 85

-                              SelectionMerge 454 None

-                              BranchConditional 452 453 454

-             453:               Label

-             455:    8(fvec4)   Load 10(color)

-             456:    7(float)   CompositeExtract 455 2

-             457:    7(float)   FAdd 456 85

-             458:    8(fvec4)   Load 10(color)

-             459:    8(fvec4)   CompositeInsert 457 458 2

-                                Store 10(color) 459

-                                Branch 435

-             454:             Label

-             461:    8(fvec4) Load 12(BaseColor)

-             462:    8(fvec4) Load 10(color)

-             463:    8(fvec4) FAdd 462 461

-                              Store 10(color) 463

-                              Branch 434

              435:             Label

-                              Branch 464

-             464:             Label

-             467:    17(bool) Phi 18 435 162 487

-                              LoopMerge 465 None

-                              Branch 468

-             468:             Label

-                              SelectionMerge 466 None

-                              BranchConditional 467 466 469

-             469:               Label

-             470:    8(fvec4)   Load 10(color)

-             471:    7(float)   CompositeExtract 470 2

-             473:    7(float)   Load 472(d8)

-             474:    17(bool)   FOrdLessThan 471 473

-                                SelectionMerge 475 None

-                                BranchConditional 474 475 465

-             475:               Label

-                                Branch 466

-             466:             Label

-             476:    7(float) Load 472(d8)

-             477:    17(bool) FOrdLessThan 476 442

-                              SelectionMerge 479 None

-                              BranchConditional 477 478 479

-             478:               Label

+             440:    6(float) Load 412(d7)

+             442:    16(bool) FOrdLessThan 440 441

+                              SelectionMerge 444 None

+                              BranchConditional 442 443 444

+             443:               Label

+                                Branch 434

+             444:             Label

+             447:    7(fvec4) Load 446(bigColor7)

+             448:    7(fvec4) Load 9(color)

+             449:    7(fvec4) FAdd 448 447

+                              Store 9(color) 449

+             450:    6(float) Load 412(d7)

+             451:    16(bool) FOrdLessThan 450 84

+                              SelectionMerge 453 None

+                              BranchConditional 451 452 453

+             452:               Label

+             454:    7(fvec4)   Load 9(color)

+             455:    6(float)   CompositeExtract 454 2

+             456:    6(float)   FAdd 455 84

+             457:    7(fvec4)   Load 9(color)

+             458:    7(fvec4)   CompositeInsert 456 457 2

+                                Store 9(color) 458

+                                Branch 434

+             453:             Label

+             460:    7(fvec4) Load 11(BaseColor)

+             461:    7(fvec4) Load 9(color)

+             462:    7(fvec4) FAdd 461 460

+                              Store 9(color) 462

+                              Branch 433

+             434:             Label

+                              Branch 463

+             463:             Label

+             466:    16(bool) Phi 17 434 161 486

+                              LoopMerge 464 None

+                              Branch 467

+             467:             Label

+                              SelectionMerge 465 None

+                              BranchConditional 466 465 468

+             468:               Label

+             469:    7(fvec4)   Load 9(color)

+             470:    6(float)   CompositeExtract 469 2

+             472:    6(float)   Load 471(d8)

+             473:    16(bool)   FOrdLessThan 470 472

+                                SelectionMerge 474 None

+                                BranchConditional 473 474 464

+             474:               Label

                                 Branch 465

-             479:             Label

-             481:    8(fvec4) Load 447(bigColor7)

-             482:    8(fvec4) Load 10(color)

-             483:    8(fvec4) FAdd 482 481

-                              Store 10(color) 483

-             484:    7(float) Load 472(d8)

-             485:    17(bool) FOrdLessThan 484 85

-                              SelectionMerge 487 None

-                              BranchConditional 485 486 487

-             486:               Label

-             488:    8(fvec4)   Load 10(color)

-             489:    7(float)   CompositeExtract 488 2

-             490:    7(float)   FAdd 489 85

-             491:    8(fvec4)   Load 10(color)

-             492:    8(fvec4)   CompositeInsert 490 491 2

-                                Store 10(color) 492

-             493:    7(float)   Load 472(d8)

-             495:    17(bool)   FOrdLessThan 493 494

-                                SelectionMerge 497 None

-                                BranchConditional 495 496 503

-             496:                 Label

-             498:    8(fvec4)     Load 10(color)

-             499:    7(float)     CompositeExtract 498 1

-             500:    7(float)     FAdd 499 85

-             501:    8(fvec4)     Load 10(color)

-             502:    8(fvec4)     CompositeInsert 500 501 1

-                                  Store 10(color) 502

-                                  Branch 497

-             503:                 Label

-             504:    8(fvec4)     Load 10(color)

-             505:    7(float)     CompositeExtract 504 0

-             506:    7(float)     FAdd 505 85

-             507:    8(fvec4)     Load 10(color)

-             508:    8(fvec4)     CompositeInsert 506 507 0

-                                  Store 10(color) 508

-                                  Branch 497

-             497:               Label

-                                Branch 465

-             487:             Label

-             510:    8(fvec4) Load 12(BaseColor)

-             511:    8(fvec4) Load 10(color)

-             512:    8(fvec4) FAdd 511 510

-                              Store 10(color) 512

-                              Branch 464

              465:             Label

-                              Branch 513

+             475:    6(float) Load 471(d8)

+             476:    16(bool) FOrdLessThan 475 441

+                              SelectionMerge 478 None

+                              BranchConditional 476 477 478

+             477:               Label

+                                Branch 464

+             478:             Label

+             480:    7(fvec4) Load 446(bigColor7)

+             481:    7(fvec4) Load 9(color)

+             482:    7(fvec4) FAdd 481 480

+                              Store 9(color) 482

+             483:    6(float) Load 471(d8)

+             484:    16(bool) FOrdLessThan 483 84

+                              SelectionMerge 486 None

+                              BranchConditional 484 485 486

+             485:               Label

+             487:    7(fvec4)   Load 9(color)

+             488:    6(float)   CompositeExtract 487 2

+             489:    6(float)   FAdd 488 84

+             490:    7(fvec4)   Load 9(color)

+             491:    7(fvec4)   CompositeInsert 489 490 2

+                                Store 9(color) 491

+             492:    6(float)   Load 471(d8)

+             494:    16(bool)   FOrdLessThan 492 493

+                                SelectionMerge 496 None

+                                BranchConditional 494 495 502

+             495:                 Label

+             497:    7(fvec4)     Load 9(color)

+             498:    6(float)     CompositeExtract 497 1

+             499:    6(float)     FAdd 498 84

+             500:    7(fvec4)     Load 9(color)

+             501:    7(fvec4)     CompositeInsert 499 500 1

+                                  Store 9(color) 501

+                                  Branch 496

+             502:                 Label

+             503:    7(fvec4)     Load 9(color)

+             504:    6(float)     CompositeExtract 503 0

+             505:    6(float)     FAdd 504 84

+             506:    7(fvec4)     Load 9(color)

+             507:    7(fvec4)     CompositeInsert 505 506 0

+                                  Store 9(color) 507

+                                  Branch 496

+             496:               Label

+                                Branch 464

+             486:             Label

+             509:    7(fvec4) Load 11(BaseColor)

+             510:    7(fvec4) Load 9(color)

+             511:    7(fvec4) FAdd 510 509

+                              Store 9(color) 511

+                              Branch 463

+             464:             Label

+                              Branch 512

+             512:             Label

+             515:    7(fvec4) Load 9(color)

+             516:    6(float) CompositeExtract 515 3

+             518:    6(float) Load 517(d9)

+             519:    16(bool) FOrdLessThan 516 518

+                              LoopMerge 513 None

+                              BranchConditional 519 514 513

+             514:               Label

+             520:    6(float)   Load 517(d9)

+             521:    6(float)   Load 471(d8)

+             522:    16(bool)   FOrdGreaterThan 520 521

+                                SelectionMerge 524 None

+                                BranchConditional 522 523 524

+             523:                 Label

+             525:    7(fvec4)     Load 9(color)

+             526:    6(float)     CompositeExtract 525 0

+             527:    6(float)     Load 412(d7)

+             528:    16(bool)     FOrdLessThanEqual 526 527

+                                  SelectionMerge 530 None

+                                  BranchConditional 528 529 530

+             529:                   Label

+             531:    7(fvec4)       Load 9(color)

+             532:    6(float)       CompositeExtract 531 2

+             534:    16(bool)       FOrdEqual 532 533

+                                    SelectionMerge 536 None

+                                    BranchConditional 534 535 542

+             535:                     Label

+             537:    7(fvec4)         Load 9(color)

+             538:    6(float)         CompositeExtract 537 3

+             539:    6(float)         FAdd 538 84

+             540:    7(fvec4)         Load 9(color)

+             541:    7(fvec4)         CompositeInsert 539 540 3

+                                      Store 9(color) 541

+                                      Branch 536

+             542:                     Label

+                                      Branch 513

+             536:                   Label

+                                    Branch 530

+             530:                 Label

+                                  Branch 524

+             524:               Label

+                                Branch 512

              513:             Label

-             516:    8(fvec4) Load 10(color)

-             517:    7(float) CompositeExtract 516 3

-             519:    7(float) Load 518(d9)

-             520:    17(bool) FOrdLessThan 517 519

-                              LoopMerge 514 None

-                              BranchConditional 520 515 514

-             515:               Label

-             521:    7(float)   Load 518(d9)

-             522:    7(float)   Load 472(d8)

-             523:    17(bool)   FOrdGreaterThan 521 522

-                                SelectionMerge 525 None

-                                BranchConditional 523 524 525

-             524:                 Label

-             526:    8(fvec4)     Load 10(color)

-             527:    7(float)     CompositeExtract 526 0

-             528:    7(float)     Load 413(d7)

-             529:    17(bool)     FOrdLessThanEqual 527 528

-                                  SelectionMerge 531 None

-                                  BranchConditional 529 530 531

-             530:                   Label

-             532:    8(fvec4)       Load 10(color)

-             533:    7(float)       CompositeExtract 532 2

-             535:    17(bool)       FOrdEqual 533 534

-                                    SelectionMerge 537 None

-                                    BranchConditional 535 536 543

-             536:                     Label

-             538:    8(fvec4)         Load 10(color)

-             539:    7(float)         CompositeExtract 538 3

-             540:    7(float)         FAdd 539 85

-             541:    8(fvec4)         Load 10(color)

-             542:    8(fvec4)         CompositeInsert 540 541 3

-                                      Store 10(color) 542

-                                      Branch 537

-             543:                     Label

-                                      Branch 514

-             537:                   Label

-                                    Branch 531

-             531:                 Label

-                                  Branch 525

-             525:               Label

-                                Branch 513

-             514:             Label

-                              Branch 545

+                              Branch 544

+             544:             Label

+             547:    7(fvec4) Load 9(color)

+             548:    6(float) CompositeExtract 547 2

+             550:    6(float) Load 549(d10)

+             551:    16(bool) FOrdLessThan 548 550

+                              LoopMerge 545 None

+                              BranchConditional 551 546 545

+             546:               Label

+             552:    7(fvec4)   Load 9(color)

+             553:    6(float)   CompositeExtract 552 1

+             554:    6(float)   FAdd 553 84

+             555:    7(fvec4)   Load 9(color)

+             556:    7(fvec4)   CompositeInsert 554 555 1

+                                Store 9(color) 556

+             557:    7(fvec4)   Load 9(color)

+             558:    6(float)   CompositeExtract 557 1

+             560:    6(float)   Load 559(d11)

+             561:    16(bool)   FOrdLessThan 558 560

+                                SelectionMerge 563 None

+                                BranchConditional 561 562 563

+             562:                 Label

+             564:    7(fvec4)     Load 9(color)

+             565:    6(float)     CompositeExtract 564 2

+             566:    6(float)     FAdd 565 84

+             567:    7(fvec4)     Load 9(color)

+             568:    7(fvec4)     CompositeInsert 566 567 2

+                                  Store 9(color) 568

+             569:    7(fvec4)     Load 9(color)

+             570:    6(float)     CompositeExtract 569 3

+             572:    6(float)     Load 571(d12)

+             573:    16(bool)     FOrdLessThan 570 572

+                                  SelectionMerge 575 None

+                                  BranchConditional 573 574 581

+             574:                   Label

+             576:    7(fvec4)       Load 9(color)

+             577:    6(float)       CompositeExtract 576 3

+             578:    6(float)       FAdd 577 84

+             579:    7(fvec4)       Load 9(color)

+             580:    7(fvec4)       CompositeInsert 578 579 3

+                                    Store 9(color) 580

+                                    Branch 575

+             581:                   Label

+             582:    7(fvec4)       Load 9(color)

+             583:    6(float)       CompositeExtract 582 0

+             584:    6(float)       FAdd 583 84

+             585:    7(fvec4)       Load 9(color)

+             586:    7(fvec4)       CompositeInsert 584 585 0

+                                    Store 9(color) 586

+                                    Branch 575

+             575:                 Label

+                                  Branch 544

+             563:               Label

+             588:    7(fvec4)   Load 9(color)

+             589:    7(fvec4)   CompositeConstruct 84 84 84 84

+             590:    7(fvec4)   FAdd 588 589

+                                Store 9(color) 590

+                                Branch 545

              545:             Label

-             548:    8(fvec4) Load 10(color)

-             549:    7(float) CompositeExtract 548 2

-             551:    7(float) Load 550(d10)

-             552:    17(bool) FOrdLessThan 549 551

-                              LoopMerge 546 None

-                              BranchConditional 552 547 546

-             547:               Label

-             553:    8(fvec4)   Load 10(color)

-             554:    7(float)   CompositeExtract 553 1

-             555:    7(float)   FAdd 554 85

-             556:    8(fvec4)   Load 10(color)

-             557:    8(fvec4)   CompositeInsert 555 556 1

-                                Store 10(color) 557

-             558:    8(fvec4)   Load 10(color)

-             559:    7(float)   CompositeExtract 558 1

-             561:    7(float)   Load 560(d11)

-             562:    17(bool)   FOrdLessThan 559 561

-                                SelectionMerge 564 None

-                                BranchConditional 562 563 564

-             563:                 Label

-             565:    8(fvec4)     Load 10(color)

-             566:    7(float)     CompositeExtract 565 2

-             567:    7(float)     FAdd 566 85

-             568:    8(fvec4)     Load 10(color)

-             569:    8(fvec4)     CompositeInsert 567 568 2

-                                  Store 10(color) 569

-             570:    8(fvec4)     Load 10(color)

-             571:    7(float)     CompositeExtract 570 3

-             573:    7(float)     Load 572(d12)

-             574:    17(bool)     FOrdLessThan 571 573

-                                  SelectionMerge 576 None

-                                  BranchConditional 574 575 582

-             575:                   Label

-             577:    8(fvec4)       Load 10(color)

-             578:    7(float)       CompositeExtract 577 3

-             579:    7(float)       FAdd 578 85

-             580:    8(fvec4)       Load 10(color)

-             581:    8(fvec4)       CompositeInsert 579 580 3

-                                    Store 10(color) 581

-                                    Branch 576

-             582:                   Label

-             583:    8(fvec4)       Load 10(color)

-             584:    7(float)       CompositeExtract 583 0

-             585:    7(float)       FAdd 584 85

-             586:    8(fvec4)       Load 10(color)

-             587:    8(fvec4)       CompositeInsert 585 586 0

-                                    Store 10(color) 587

-                                    Branch 576

-             576:                 Label

-                                  Branch 545

-             564:               Label

-             589:    8(fvec4)   Load 10(color)

-             590:    8(fvec4)   CompositeConstruct 85 85 85 85

-             591:    8(fvec4)   FAdd 589 590

-                                Store 10(color) 591

-                                Branch 546

-             546:             Label

-                              Branch 593

+                              Branch 592

+             592:             Label

+             595:    7(fvec4) Load 9(color)

+             596:    6(float) CompositeExtract 595 0

+             598:    16(bool) FOrdLessThan 596 597

+                              LoopMerge 593 None

+                              BranchConditional 598 594 593

+             594:               Label

+             600:    7(fvec4)   Load 599(bigColor8)

+             601:    7(fvec4)   Load 9(color)

+             602:    7(fvec4)   FAdd 601 600

+                                Store 9(color) 602

+             603:    7(fvec4)   Load 9(color)

+             604:    6(float)   CompositeExtract 603 2

+             605:    6(float)   Load 471(d8)

+             606:    16(bool)   FOrdLessThan 604 605

+                                SelectionMerge 608 None

+                                BranchConditional 606 607 608

+             607:                 Label

+             609:    7(fvec4)     Load 9(color)

+             610:    6(float)     CompositeExtract 609 3

+             611:    6(float)     Load 365(d6)

+             612:    16(bool)     FOrdLessThan 610 611

+                                  SelectionMerge 614 None

+                                  BranchConditional 612 613 614

+             613:                   Label

+                                    Branch 592

+             614:                 Label

+                                  Branch 608

+             608:               Label

+             616:    7(fvec4)   Load 599(bigColor8)

+             617:    6(float)   CompositeExtract 616 0

+             618:    7(fvec4)   Load 9(color)

+             619:    6(float)   CompositeExtract 618 1

+             620:    6(float)   FAdd 619 617

+             621:    7(fvec4)   Load 9(color)

+             622:    7(fvec4)   CompositeInsert 620 621 1

+                                Store 9(color) 622

+                                Branch 592

              593:             Label

-             596:    8(fvec4) Load 10(color)

-             597:    7(float) CompositeExtract 596 0

-             599:    17(bool) FOrdLessThan 597 598

-                              LoopMerge 594 None

-                              BranchConditional 599 595 594

-             595:               Label

-             601:    8(fvec4)   Load 600(bigColor8)

-             602:    8(fvec4)   Load 10(color)

-             603:    8(fvec4)   FAdd 602 601

-                                Store 10(color) 603

-             604:    8(fvec4)   Load 10(color)

-             605:    7(float)   CompositeExtract 604 2

-             606:    7(float)   Load 472(d8)

-             607:    17(bool)   FOrdLessThan 605 606

-                                SelectionMerge 609 None

-                                BranchConditional 607 608 609

-             608:                 Label

-             610:    8(fvec4)     Load 10(color)

-             611:    7(float)     CompositeExtract 610 3

-             612:    7(float)     Load 366(d6)

-             613:    17(bool)     FOrdLessThan 611 612

-                                  SelectionMerge 615 None

-                                  BranchConditional 613 614 615

-             614:                   Label

-                                    Branch 593

-             615:                 Label

-                                  Branch 609

-             609:               Label

-             617:    8(fvec4)   Load 600(bigColor8)

-             618:    7(float)   CompositeExtract 617 0

-             619:    8(fvec4)   Load 10(color)

-             620:    7(float)   CompositeExtract 619 1

-             621:    7(float)   FAdd 620 618

-             622:    8(fvec4)   Load 10(color)

-             623:    8(fvec4)   CompositeInsert 621 622 1

-                                Store 10(color) 623

-                                Branch 593

-             594:             Label

-             624:    8(fvec4) Load 10(color)

-             625:    8(fvec4) CompositeConstruct 85 85 85 85

-             626:    8(fvec4) FAdd 624 625

-                              Store 10(color) 626

-             629:    8(fvec4) Load 10(color)

-                              Store 628(gl_FragColor) 629

-                              Branch 630

+             623:    7(fvec4) Load 9(color)

+             624:    7(fvec4) CompositeConstruct 84 84 84 84

+             625:    7(fvec4) FAdd 623 624

+                              Store 9(color) 625

+             628:    7(fvec4) Load 9(color)

+                              Store 627(gl_FragColor) 628

+                              Branch 629

+             629:             Label

+             632:    7(fvec4) Load 9(color)

+             633:    6(float) CompositeExtract 632 0

+             635:    6(float) Load 634(d14)

+             636:    16(bool) FOrdLessThan 633 635

+                              LoopMerge 630 None

+                              BranchConditional 636 631 630

+             631:               Label

+             637:    7(fvec4)   Load 9(color)

+             638:    6(float)   CompositeExtract 637 1

+             640:    6(float)   Load 639(d15)

+             641:    16(bool)   FOrdLessThan 638 640

+                                SelectionMerge 643 None

+                                BranchConditional 641 642 645

+             642:                 Label

+                                  Return

+             645:                 Label

+             646:    7(fvec4)     Load 9(color)

+             647:    7(fvec4)     CompositeConstruct 84 84 84 84

+             648:    7(fvec4)     FAdd 646 647

+                                  Store 9(color) 648

+                                  Branch 643

+             643:               Label

+                                Branch 629

              630:             Label

-             633:    8(fvec4) Load 10(color)

-             634:    7(float) CompositeExtract 633 0

-             636:    7(float) Load 635(d14)

-             637:    17(bool) FOrdLessThan 634 636

-                              LoopMerge 631 None

-                              BranchConditional 637 632 631

-             632:               Label

-             638:    8(fvec4)   Load 10(color)

-             639:    7(float)   CompositeExtract 638 1

-             641:    7(float)   Load 640(d15)

-             642:    17(bool)   FOrdLessThan 639 641

-                                SelectionMerge 644 None

-                                BranchConditional 642 643 646

-             643:                 Label

-                                  Branch 6

-             646:                 Label

-             647:    8(fvec4)     Load 10(color)

-             648:    8(fvec4)     CompositeConstruct 85 85 85 85

-             649:    8(fvec4)     FAdd 647 648

-                                  Store 10(color) 649

-                                  Branch 644

-             644:               Label

-                                Branch 630

-             631:             Label

-             650:    8(fvec4) Load 10(color)

-             651:    8(fvec4) CompositeConstruct 85 85 85 85

-             652:    8(fvec4) FAdd 650 651

-                              Store 10(color) 652

-                              Branch 653

+             649:    7(fvec4) Load 9(color)

+             650:    7(fvec4) CompositeConstruct 84 84 84 84

+             651:    7(fvec4) FAdd 649 650

+                              Store 9(color) 651

+                              Branch 652

+             652:             Label

+             655:    7(fvec4) Load 9(color)

+             656:    6(float) CompositeExtract 655 3

+             658:    6(float) Load 657(d16)

+             659:    16(bool) FOrdLessThan 656 658

+                              LoopMerge 653 None

+                              BranchConditional 659 654 653

+             654:               Label

+             660:    7(fvec4)   Load 9(color)

+             661:    6(float)   CompositeExtract 660 3

+             662:    6(float)   FAdd 661 84

+             663:    7(fvec4)   Load 9(color)

+             664:    7(fvec4)   CompositeInsert 662 663 3

+                                Store 9(color) 664

+                                Branch 652

              653:             Label

-             656:    8(fvec4) Load 10(color)

-             657:    7(float) CompositeExtract 656 3

-             659:    7(float) Load 658(d16)

-             660:    17(bool) FOrdLessThan 657 659

-                              LoopMerge 654 None

-                              BranchConditional 660 655 654

-             655:               Label

-             661:    8(fvec4)   Load 10(color)

-             662:    7(float)   CompositeExtract 661 3

-             663:    7(float)   FAdd 662 85

-             664:    8(fvec4)   Load 10(color)

-             665:    8(fvec4)   CompositeInsert 663 664 3

-                                Store 10(color) 665

-                                Branch 653

-             654:             Label

-                              Branch 666

+                              Branch 665

+             665:             Label

+             668:    7(fvec4) Load 9(color)

+             669:    6(float) CompositeExtract 668 3

+             670:    6(float) Load 92(d2)

+             671:    16(bool) FOrdLessThan 669 670

+             672:    7(fvec4) Load 9(color)

+             673:    6(float) CompositeExtract 672 1

+             674:    6(float) Load 97(d3)

+             675:    16(bool) FOrdLessThan 673 674

+             676:    16(bool) LogicalAnd 671 675

+                              LoopMerge 666 None

+                              BranchConditional 676 667 666

+             667:               Label

+             677:    7(fvec4)   Load 101(bigColor1_2)

+             678:    7(fvec4)   Load 9(color)

+             679:    7(fvec4)   FAdd 678 677

+                                Store 9(color) 679

+             680:    7(fvec4)   Load 9(color)

+             681:    6(float)   CompositeExtract 680 2

+             682:    6(float)   Load 97(d3)

+             683:    16(bool)   FOrdLessThan 681 682

+                                SelectionMerge 685 None

+                                BranchConditional 683 684 685

+             684:                 Label

+                                  Return

+             685:               Label

+                                Branch 665

              666:             Label

-             669:    8(fvec4) Load 10(color)

-             670:    7(float) CompositeExtract 669 3

-             671:    7(float) Load 93(d2)

-             672:    17(bool) FOrdLessThan 670 671

-             673:    8(fvec4) Load 10(color)

-             674:    7(float) CompositeExtract 673 1

-             675:    7(float) Load 98(d3)

-             676:    17(bool) FOrdLessThan 674 675

-             677:    17(bool) LogicalAnd 672 676

-                              LoopMerge 667 None

-                              BranchConditional 677 668 667

-             668:               Label

-             678:    8(fvec4)   Load 102(bigColor1_2)

-             679:    8(fvec4)   Load 10(color)

-             680:    8(fvec4)   FAdd 679 678

-                                Store 10(color) 680

-             681:    8(fvec4)   Load 10(color)

-             682:    7(float)   CompositeExtract 681 2

-             683:    7(float)   Load 98(d3)

-             684:    17(bool)   FOrdLessThan 682 683

-                                SelectionMerge 686 None

-                                BranchConditional 684 685 686

-             685:                 Label

-                                  Branch 6

-             686:               Label

-                                Branch 666

-             667:             Label

-                              Branch 688

-             688:             Label

-             691:    17(bool) Phi 18 667 162 706

-                              LoopMerge 689 None

-                              Branch 692

-             692:             Label

-                              SelectionMerge 690 None

-                              BranchConditional 691 690 693

-             693:               Label

-             694:    8(fvec4)   Load 10(color)

-             695:    7(float)   CompositeExtract 694 0

-             697:    7(float)   Load 696(d17)

-             698:    17(bool)   FOrdLessThan 695 697

-                                SelectionMerge 699 None

-                                BranchConditional 698 699 689

-             699:               Label

-                                Branch 690

-             690:             Label

-             700:    8(fvec4) Load 10(color)

-             701:    7(float) CompositeExtract 700 1

-             703:    7(float) Load 702(d18)

-             704:    17(bool) FOrdLessThan 701 703

-                              SelectionMerge 706 None

-                              BranchConditional 704 705 706

-             705:               Label

-                                Branch 6

-             706:             Label

-             708:    8(fvec4) Load 10(color)

-             709:    8(fvec4) CompositeConstruct 85 85 85 85

-             710:    8(fvec4) FAdd 708 709

-                              Store 10(color) 710

-                              Branch 688

+                              Branch 687

+             687:             Label

+             690:    16(bool) Phi 17 666 161 705

+                              LoopMerge 688 None

+                              Branch 691

+             691:             Label

+                              SelectionMerge 689 None

+                              BranchConditional 690 689 692

+             692:               Label

+             693:    7(fvec4)   Load 9(color)

+             694:    6(float)   CompositeExtract 693 0

+             696:    6(float)   Load 695(d17)

+             697:    16(bool)   FOrdLessThan 694 696

+                                SelectionMerge 698 None

+                                BranchConditional 697 698 688

+             698:               Label

+                                Branch 689

              689:             Label

-                              Branch 711

-             711:             Label

-             714:    8(fvec4) Load 10(color)

-             715:    7(float) CompositeExtract 714 1

-             716:    7(float) Load 658(d16)

-             717:    17(bool) FOrdLessThan 715 716

-                              LoopMerge 712 None

-                              BranchConditional 717 713 712

-             713:               Label

-             718:    8(fvec4)   Load 10(color)

-             719:    7(float)   CompositeExtract 718 3

-             720:    7(float)   Load 658(d16)

-             721:    17(bool)   FOrdLessThan 719 720

-                                SelectionMerge 723 None

-                                BranchConditional 721 722 725

-             722:                 Label

+             699:    7(fvec4) Load 9(color)

+             700:    6(float) CompositeExtract 699 1

+             702:    6(float) Load 701(d18)

+             703:    16(bool) FOrdLessThan 700 702

+                              SelectionMerge 705 None

+                              BranchConditional 703 704 705

+             704:               Label

+                                Return

+             705:             Label

+             707:    7(fvec4) Load 9(color)

+             708:    7(fvec4) CompositeConstruct 84 84 84 84

+             709:    7(fvec4) FAdd 707 708

+                              Store 9(color) 709

+                              Branch 687

+             688:             Label

+                              Branch 710

+             710:             Label

+             713:    7(fvec4) Load 9(color)

+             714:    6(float) CompositeExtract 713 1

+             715:    6(float) Load 657(d16)

+             716:    16(bool) FOrdLessThan 714 715

+                              LoopMerge 711 None

+                              BranchConditional 716 712 711

+             712:               Label

+             717:    7(fvec4)   Load 9(color)

+             718:    6(float)   CompositeExtract 717 3

+             719:    6(float)   Load 657(d16)

+             720:    16(bool)   FOrdLessThan 718 719

+                                SelectionMerge 722 None

+                                BranchConditional 720 721 724

+             721:                 Label

                                   Kill

-             725:                 Label

-             726:    8(fvec4)     Load 10(color)

-             727:    8(fvec4)     CompositeConstruct 85 85 85 85

-             728:    8(fvec4)     FAdd 726 727

-                                  Store 10(color) 728

-                                  Branch 723

-             723:               Label

-                                Branch 711

-             712:             Label

-             729:    8(fvec4) Load 10(color)

-             730:    8(fvec4) CompositeConstruct 85 85 85 85

-             731:    8(fvec4) FAdd 729 730

-                              Store 10(color) 731

-             732:    8(fvec4) Load 10(color)

-                              Store 628(gl_FragColor) 732

-                              Branch 6

-               6:             Label

+             724:                 Label

+             725:    7(fvec4)     Load 9(color)

+             726:    7(fvec4)     CompositeConstruct 84 84 84 84

+             727:    7(fvec4)     FAdd 725 726

+                                  Store 9(color) 727

+                                  Branch 722

+             722:               Label

+                                Branch 710

+             711:             Label

+             728:    7(fvec4) Load 9(color)

+             729:    7(fvec4) CompositeConstruct 84 84 84 84

+             730:    7(fvec4) FAdd 728 729

+                              Store 9(color) 730

+             731:    7(fvec4) Load 9(color)

+                              Store 627(gl_FragColor) 731

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.loopsArtificial.frag.out b/Test/baseResults/spv.loopsArtificial.frag.out
index d9af6e9..3871d85 100755
--- a/Test/baseResults/spv.loopsArtificial.frag.out
+++ b/Test/baseResults/spv.loopsArtificial.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 196

+// Id's are bound by 195

 

                               Source GLSL 130

                               Capability Shader

@@ -16,344 +16,342 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 25  "d4"

-                              Name 30  "bigColor4"

-                              Name 84  "d13"

-                              Name 149  "gl_FragColor"

-                              Name 151  "bigColor"

-                              Name 152  "bigColor1_1"

-                              Name 153  "bigColor1_2"

-                              Name 154  "bigColor1_3"

-                              Name 155  "bigColor2"

-                              Name 156  "bigColor3"

-                              Name 157  "bigColor5"

-                              Name 158  "bigColor6"

-                              Name 159  "bigColor7"

-                              Name 160  "bigColor8"

-                              Name 161  "d"

-                              Name 162  "d2"

-                              Name 163  "d3"

-                              Name 164  "d5"

-                              Name 165  "d6"

-                              Name 166  "d7"

-                              Name 167  "d8"

-                              Name 168  "d9"

-                              Name 169  "d10"

-                              Name 170  "d11"

-                              Name 171  "d12"

-                              Name 172  "d14"

-                              Name 173  "d15"

-                              Name 174  "d16"

-                              Name 175  "d17"

-                              Name 176  "d18"

-                              Name 177  "d19"

-                              Name 178  "d20"

-                              Name 179  "d21"

-                              Name 180  "d22"

-                              Name 181  "d23"

-                              Name 182  "d24"

-                              Name 183  "d25"

-                              Name 184  "d26"

-                              Name 185  "d27"

-                              Name 186  "d28"

-                              Name 187  "d29"

-                              Name 188  "d30"

-                              Name 189  "d31"

-                              Name 190  "d32"

-                              Name 191  "d33"

-                              Name 192  "d34"

-                              Name 195  "Count"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 149(gl_FragColor) BuiltIn FragColor

-                              Decorate 151(bigColor) NoStaticUse

-                              Decorate 152(bigColor1_1) NoStaticUse

-                              Decorate 153(bigColor1_2) NoStaticUse

-                              Decorate 154(bigColor1_3) NoStaticUse

-                              Decorate 155(bigColor2) NoStaticUse

-                              Decorate 156(bigColor3) NoStaticUse

-                              Decorate 157(bigColor5) NoStaticUse

-                              Decorate 158(bigColor6) NoStaticUse

-                              Decorate 159(bigColor7) NoStaticUse

-                              Decorate 160(bigColor8) NoStaticUse

-                              Decorate 161(d) NoStaticUse

-                              Decorate 162(d2) NoStaticUse

-                              Decorate 163(d3) NoStaticUse

-                              Decorate 164(d5) NoStaticUse

-                              Decorate 165(d6) NoStaticUse

-                              Decorate 166(d7) NoStaticUse

-                              Decorate 167(d8) NoStaticUse

-                              Decorate 168(d9) NoStaticUse

-                              Decorate 169(d10) NoStaticUse

-                              Decorate 170(d11) NoStaticUse

-                              Decorate 171(d12) NoStaticUse

-                              Decorate 172(d14) NoStaticUse

-                              Decorate 173(d15) NoStaticUse

-                              Decorate 174(d16) NoStaticUse

-                              Decorate 175(d17) NoStaticUse

-                              Decorate 176(d18) NoStaticUse

-                              Decorate 177(d19) NoStaticUse

-                              Decorate 178(d20) NoStaticUse

-                              Decorate 179(d21) NoStaticUse

-                              Decorate 180(d22) NoStaticUse

-                              Decorate 181(d23) NoStaticUse

-                              Decorate 182(d24) NoStaticUse

-                              Decorate 183(d25) NoStaticUse

-                              Decorate 184(d26) NoStaticUse

-                              Decorate 185(d27) NoStaticUse

-                              Decorate 186(d28) NoStaticUse

-                              Decorate 187(d29) NoStaticUse

-                              Decorate 188(d30) NoStaticUse

-                              Decorate 189(d31) NoStaticUse

-                              Decorate 190(d32) NoStaticUse

-                              Decorate 191(d33) NoStaticUse

-                              Decorate 192(d34) NoStaticUse

-                              Decorate 195(Count) NoStaticUse

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 24  "d4"

+                              Name 29  "bigColor4"

+                              Name 83  "d13"

+                              Name 148  "gl_FragColor"

+                              Name 150  "bigColor"

+                              Name 151  "bigColor1_1"

+                              Name 152  "bigColor1_2"

+                              Name 153  "bigColor1_3"

+                              Name 154  "bigColor2"

+                              Name 155  "bigColor3"

+                              Name 156  "bigColor5"

+                              Name 157  "bigColor6"

+                              Name 158  "bigColor7"

+                              Name 159  "bigColor8"

+                              Name 160  "d"

+                              Name 161  "d2"

+                              Name 162  "d3"

+                              Name 163  "d5"

+                              Name 164  "d6"

+                              Name 165  "d7"

+                              Name 166  "d8"

+                              Name 167  "d9"

+                              Name 168  "d10"

+                              Name 169  "d11"

+                              Name 170  "d12"

+                              Name 171  "d14"

+                              Name 172  "d15"

+                              Name 173  "d16"

+                              Name 174  "d17"

+                              Name 175  "d18"

+                              Name 176  "d19"

+                              Name 177  "d20"

+                              Name 178  "d21"

+                              Name 179  "d22"

+                              Name 180  "d23"

+                              Name 181  "d24"

+                              Name 182  "d25"

+                              Name 183  "d26"

+                              Name 184  "d27"

+                              Name 185  "d28"

+                              Name 186  "d29"

+                              Name 187  "d30"

+                              Name 188  "d31"

+                              Name 189  "d32"

+                              Name 190  "d33"

+                              Name 191  "d34"

+                              Name 194  "Count"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 148(gl_FragColor) BuiltIn FragColor

+                              Decorate 150(bigColor) NoStaticUse

+                              Decorate 151(bigColor1_1) NoStaticUse

+                              Decorate 152(bigColor1_2) NoStaticUse

+                              Decorate 153(bigColor1_3) NoStaticUse

+                              Decorate 154(bigColor2) NoStaticUse

+                              Decorate 155(bigColor3) NoStaticUse

+                              Decorate 156(bigColor5) NoStaticUse

+                              Decorate 157(bigColor6) NoStaticUse

+                              Decorate 158(bigColor7) NoStaticUse

+                              Decorate 159(bigColor8) NoStaticUse

+                              Decorate 160(d) NoStaticUse

+                              Decorate 161(d2) NoStaticUse

+                              Decorate 162(d3) NoStaticUse

+                              Decorate 163(d5) NoStaticUse

+                              Decorate 164(d6) NoStaticUse

+                              Decorate 165(d7) NoStaticUse

+                              Decorate 166(d8) NoStaticUse

+                              Decorate 167(d9) NoStaticUse

+                              Decorate 168(d10) NoStaticUse

+                              Decorate 169(d11) NoStaticUse

+                              Decorate 170(d12) NoStaticUse

+                              Decorate 171(d14) NoStaticUse

+                              Decorate 172(d15) NoStaticUse

+                              Decorate 173(d16) NoStaticUse

+                              Decorate 174(d17) NoStaticUse

+                              Decorate 175(d18) NoStaticUse

+                              Decorate 176(d19) NoStaticUse

+                              Decorate 177(d20) NoStaticUse

+                              Decorate 178(d21) NoStaticUse

+                              Decorate 179(d22) NoStaticUse

+                              Decorate 180(d23) NoStaticUse

+                              Decorate 181(d24) NoStaticUse

+                              Decorate 182(d25) NoStaticUse

+                              Decorate 183(d26) NoStaticUse

+                              Decorate 184(d27) NoStaticUse

+                              Decorate 185(d28) NoStaticUse

+                              Decorate 186(d29) NoStaticUse

+                              Decorate 187(d30) NoStaticUse

+                              Decorate 188(d31) NoStaticUse

+                              Decorate 189(d32) NoStaticUse

+                              Decorate 190(d33) NoStaticUse

+                              Decorate 191(d34) NoStaticUse

+                              Decorate 194(Count) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              18:             TypeBool

-              19:    18(bool) ConstantTrue

-              24:             TypePointer UniformConstant 7(float)

-          25(d4):     24(ptr) Variable UniformConstant

-              29:             TypePointer UniformConstant 8(fvec4)

-   30(bigColor4):     29(ptr) Variable UniformConstant

-              40:    7(float) Constant 1073741824

-              54:    7(float) Constant 1065353216

-              58:    18(bool) ConstantFalse

-         84(d13):     24(ptr) Variable UniformConstant

-             148:             TypePointer Output 8(fvec4)

-149(gl_FragColor):    148(ptr) Variable Output

-   151(bigColor):     29(ptr) Variable UniformConstant

-152(bigColor1_1):     29(ptr) Variable UniformConstant

-153(bigColor1_2):     29(ptr) Variable UniformConstant

-154(bigColor1_3):     29(ptr) Variable UniformConstant

-  155(bigColor2):     29(ptr) Variable UniformConstant

-  156(bigColor3):     29(ptr) Variable UniformConstant

-  157(bigColor5):     29(ptr) Variable UniformConstant

-  158(bigColor6):     29(ptr) Variable UniformConstant

-  159(bigColor7):     29(ptr) Variable UniformConstant

-  160(bigColor8):     29(ptr) Variable UniformConstant

-          161(d):     24(ptr) Variable UniformConstant

-         162(d2):     24(ptr) Variable UniformConstant

-         163(d3):     24(ptr) Variable UniformConstant

-         164(d5):     24(ptr) Variable UniformConstant

-         165(d6):     24(ptr) Variable UniformConstant

-         166(d7):     24(ptr) Variable UniformConstant

-         167(d8):     24(ptr) Variable UniformConstant

-         168(d9):     24(ptr) Variable UniformConstant

-        169(d10):     24(ptr) Variable UniformConstant

-        170(d11):     24(ptr) Variable UniformConstant

-        171(d12):     24(ptr) Variable UniformConstant

-        172(d14):     24(ptr) Variable UniformConstant

-        173(d15):     24(ptr) Variable UniformConstant

-        174(d16):     24(ptr) Variable UniformConstant

-        175(d17):     24(ptr) Variable UniformConstant

-        176(d18):     24(ptr) Variable UniformConstant

-        177(d19):     24(ptr) Variable UniformConstant

-        178(d20):     24(ptr) Variable UniformConstant

-        179(d21):     24(ptr) Variable UniformConstant

-        180(d22):     24(ptr) Variable UniformConstant

-        181(d23):     24(ptr) Variable UniformConstant

-        182(d24):     24(ptr) Variable UniformConstant

-        183(d25):     24(ptr) Variable UniformConstant

-        184(d26):     24(ptr) Variable UniformConstant

-        185(d27):     24(ptr) Variable UniformConstant

-        186(d28):     24(ptr) Variable UniformConstant

-        187(d29):     24(ptr) Variable UniformConstant

-        188(d30):     24(ptr) Variable UniformConstant

-        189(d31):     24(ptr) Variable UniformConstant

-        190(d32):     24(ptr) Variable UniformConstant

-        191(d33):     24(ptr) Variable UniformConstant

-        192(d34):     24(ptr) Variable UniformConstant

-             193:             TypeInt 32 1

-             194:             TypePointer UniformConstant 193(int)

-      195(Count):    194(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              17:             TypeBool

+              18:    17(bool) ConstantTrue

+              23:             TypePointer UniformConstant 6(float)

+          24(d4):     23(ptr) Variable UniformConstant

+              28:             TypePointer UniformConstant 7(fvec4)

+   29(bigColor4):     28(ptr) Variable UniformConstant

+              39:    6(float) Constant 1073741824

+              53:    6(float) Constant 1065353216

+              57:    17(bool) ConstantFalse

+         83(d13):     23(ptr) Variable UniformConstant

+             147:             TypePointer Output 7(fvec4)

+148(gl_FragColor):    147(ptr) Variable Output

+   150(bigColor):     28(ptr) Variable UniformConstant

+151(bigColor1_1):     28(ptr) Variable UniformConstant

+152(bigColor1_2):     28(ptr) Variable UniformConstant

+153(bigColor1_3):     28(ptr) Variable UniformConstant

+  154(bigColor2):     28(ptr) Variable UniformConstant

+  155(bigColor3):     28(ptr) Variable UniformConstant

+  156(bigColor5):     28(ptr) Variable UniformConstant

+  157(bigColor6):     28(ptr) Variable UniformConstant

+  158(bigColor7):     28(ptr) Variable UniformConstant

+  159(bigColor8):     28(ptr) Variable UniformConstant

+          160(d):     23(ptr) Variable UniformConstant

+         161(d2):     23(ptr) Variable UniformConstant

+         162(d3):     23(ptr) Variable UniformConstant

+         163(d5):     23(ptr) Variable UniformConstant

+         164(d6):     23(ptr) Variable UniformConstant

+         165(d7):     23(ptr) Variable UniformConstant

+         166(d8):     23(ptr) Variable UniformConstant

+         167(d9):     23(ptr) Variable UniformConstant

+        168(d10):     23(ptr) Variable UniformConstant

+        169(d11):     23(ptr) Variable UniformConstant

+        170(d12):     23(ptr) Variable UniformConstant

+        171(d14):     23(ptr) Variable UniformConstant

+        172(d15):     23(ptr) Variable UniformConstant

+        173(d16):     23(ptr) Variable UniformConstant

+        174(d17):     23(ptr) Variable UniformConstant

+        175(d18):     23(ptr) Variable UniformConstant

+        176(d19):     23(ptr) Variable UniformConstant

+        177(d20):     23(ptr) Variable UniformConstant

+        178(d21):     23(ptr) Variable UniformConstant

+        179(d22):     23(ptr) Variable UniformConstant

+        180(d23):     23(ptr) Variable UniformConstant

+        181(d24):     23(ptr) Variable UniformConstant

+        182(d25):     23(ptr) Variable UniformConstant

+        183(d26):     23(ptr) Variable UniformConstant

+        184(d27):     23(ptr) Variable UniformConstant

+        185(d28):     23(ptr) Variable UniformConstant

+        186(d29):     23(ptr) Variable UniformConstant

+        187(d30):     23(ptr) Variable UniformConstant

+        188(d31):     23(ptr) Variable UniformConstant

+        189(d32):     23(ptr) Variable UniformConstant

+        190(d33):     23(ptr) Variable UniformConstant

+        191(d34):     23(ptr) Variable UniformConstant

+             192:             TypeInt 32 1

+             193:             TypePointer UniformConstant 192(int)

+      194(Count):    193(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-                              Branch 14

-              14:             Label

-              17:    18(bool) Phi 19 5 58 50 58 65

-                              LoopMerge 15 None

-                              Branch 20

-              20:             Label

-                              SelectionMerge 16 None

-                              BranchConditional 17 16 21

-              21:               Label

-              22:    8(fvec4)   Load 10(color)

-              23:    7(float)   CompositeExtract 22 2

-              26:    7(float)   Load 25(d4)

-              27:    18(bool)   FOrdLessThan 23 26

-                                SelectionMerge 28 None

-                                BranchConditional 27 28 15

-              28:               Label

-                                Branch 16

-              16:             Label

-              31:    8(fvec4) Load 30(bigColor4)

-              32:    8(fvec4) Load 10(color)

-              33:    8(fvec4) FAdd 32 31

-                              Store 10(color) 33

-              34:    8(fvec4) Load 10(color)

-              35:    7(float) CompositeExtract 34 0

-              36:    7(float) Load 25(d4)

-              37:    18(bool) FOrdLessThan 35 36

-                              SelectionMerge 39 None

-                              BranchConditional 37 38 39

-              38:               Label

-              41:    8(fvec4)   Load 10(color)

-              42:    7(float)   CompositeExtract 41 2

-              43:    7(float)   FAdd 42 40

-              44:    8(fvec4)   Load 10(color)

-              45:    8(fvec4)   CompositeInsert 43 44 2

-                                Store 10(color) 45

-              46:    8(fvec4)   Load 10(color)

-              47:    7(float)   CompositeExtract 46 2

-              48:    7(float)   Load 25(d4)

-              49:    18(bool)   FOrdLessThan 47 48

-                                SelectionMerge 51 None

-                                BranchConditional 49 50 51

-              50:                 Label

-              52:    8(fvec4)     Load 10(color)

-              53:    7(float)     CompositeExtract 52 0

-              55:    7(float)     FAdd 53 54

-              56:    8(fvec4)     Load 10(color)

-              57:    8(fvec4)     CompositeInsert 55 56 0

-                                  Store 10(color) 57

-                                  Branch 14

-              51:               Label

-                                Branch 39

-              39:             Label

-              60:    8(fvec4) Load 10(color)

-              61:    7(float) CompositeExtract 60 1

-              62:    7(float) Load 25(d4)

-              63:    18(bool) FOrdLessThan 61 62

-                              SelectionMerge 65 None

-                              BranchConditional 63 64 72

-              64:               Label

-              66:    7(float)   Load 25(d4)

-              67:    8(fvec4)   Load 10(color)

-              68:    7(float)   CompositeExtract 67 1

-              69:    7(float)   FAdd 68 66

-              70:    8(fvec4)   Load 10(color)

-              71:    8(fvec4)   CompositeInsert 69 70 1

-                                Store 10(color) 71

-                                Branch 65

-              72:               Label

-              73:    7(float)   Load 25(d4)

-              74:    8(fvec4)   Load 10(color)

-              75:    7(float)   CompositeExtract 74 0

-              76:    7(float)   FAdd 75 73

-              77:    8(fvec4)   Load 10(color)

-              78:    8(fvec4)   CompositeInsert 76 77 0

-                                Store 10(color) 78

-                                Branch 65

-              65:             Label

-                              Branch 14

+        9(color):      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+                              Branch 13

+              13:             Label

+              16:    17(bool) Phi 18 5 57 49 57 64

+                              LoopMerge 14 None

+                              Branch 19

+              19:             Label

+                              SelectionMerge 15 None

+                              BranchConditional 16 15 20

+              20:               Label

+              21:    7(fvec4)   Load 9(color)

+              22:    6(float)   CompositeExtract 21 2

+              25:    6(float)   Load 24(d4)

+              26:    17(bool)   FOrdLessThan 22 25

+                                SelectionMerge 27 None

+                                BranchConditional 26 27 14

+              27:               Label

+                                Branch 15

               15:             Label

-                              Branch 79

+              30:    7(fvec4) Load 29(bigColor4)

+              31:    7(fvec4) Load 9(color)

+              32:    7(fvec4) FAdd 31 30

+                              Store 9(color) 32

+              33:    7(fvec4) Load 9(color)

+              34:    6(float) CompositeExtract 33 0

+              35:    6(float) Load 24(d4)

+              36:    17(bool) FOrdLessThan 34 35

+                              SelectionMerge 38 None

+                              BranchConditional 36 37 38

+              37:               Label

+              40:    7(fvec4)   Load 9(color)

+              41:    6(float)   CompositeExtract 40 2

+              42:    6(float)   FAdd 41 39

+              43:    7(fvec4)   Load 9(color)

+              44:    7(fvec4)   CompositeInsert 42 43 2

+                                Store 9(color) 44

+              45:    7(fvec4)   Load 9(color)

+              46:    6(float)   CompositeExtract 45 2

+              47:    6(float)   Load 24(d4)

+              48:    17(bool)   FOrdLessThan 46 47

+                                SelectionMerge 50 None

+                                BranchConditional 48 49 50

+              49:                 Label

+              51:    7(fvec4)     Load 9(color)

+              52:    6(float)     CompositeExtract 51 0

+              54:    6(float)     FAdd 52 53

+              55:    7(fvec4)     Load 9(color)

+              56:    7(fvec4)     CompositeInsert 54 55 0

+                                  Store 9(color) 56

+                                  Branch 13

+              50:               Label

+                                Branch 38

+              38:             Label

+              59:    7(fvec4) Load 9(color)

+              60:    6(float) CompositeExtract 59 1

+              61:    6(float) Load 24(d4)

+              62:    17(bool) FOrdLessThan 60 61

+                              SelectionMerge 64 None

+                              BranchConditional 62 63 71

+              63:               Label

+              65:    6(float)   Load 24(d4)

+              66:    7(fvec4)   Load 9(color)

+              67:    6(float)   CompositeExtract 66 1

+              68:    6(float)   FAdd 67 65

+              69:    7(fvec4)   Load 9(color)

+              70:    7(fvec4)   CompositeInsert 68 69 1

+                                Store 9(color) 70

+                                Branch 64

+              71:               Label

+              72:    6(float)   Load 24(d4)

+              73:    7(fvec4)   Load 9(color)

+              74:    6(float)   CompositeExtract 73 0

+              75:    6(float)   FAdd 74 72

+              76:    7(fvec4)   Load 9(color)

+              77:    7(fvec4)   CompositeInsert 75 76 0

+                                Store 9(color) 77

+                                Branch 64

+              64:             Label

+                              Branch 13

+              14:             Label

+                              Branch 78

+              78:             Label

+              81:    7(fvec4) Load 9(color)

+              82:    6(float) CompositeExtract 81 3

+              84:    6(float) Load 83(d13)

+              85:    17(bool) FOrdLessThan 82 84

+                              LoopMerge 79 None

+                              BranchConditional 85 80 79

+              80:               Label

+              86:    7(fvec4)   Load 9(color)

+              87:    6(float)   CompositeExtract 86 2

+              88:    6(float)   Load 83(d13)

+              89:    17(bool)   FOrdLessThan 87 88

+                                SelectionMerge 91 None

+                                BranchConditional 89 90 95

+              90:                 Label

+              92:    7(fvec4)     Load 9(color)

+              93:    7(fvec4)     CompositeConstruct 53 53 53 53

+              94:    7(fvec4)     FAdd 92 93

+                                  Store 9(color) 94

+                                  Branch 91

+              95:                 Label

+              96:    7(fvec4)     Load 9(color)

+              97:    7(fvec4)     CompositeConstruct 53 53 53 53

+              98:    7(fvec4)     FSub 96 97

+                                  Store 9(color) 98

+                                  Branch 91

+              91:               Label

+              99:    7(fvec4)   Load 29(bigColor4)

+             100:    7(fvec4)   Load 9(color)

+             101:    7(fvec4)   FAdd 100 99

+                                Store 9(color) 101

+             102:    7(fvec4)   Load 9(color)

+             103:    6(float)   CompositeExtract 102 0

+             104:    6(float)   Load 24(d4)

+             105:    17(bool)   FOrdLessThan 103 104

+                                SelectionMerge 107 None

+                                BranchConditional 105 106 107

+             106:                 Label

+             108:    7(fvec4)     Load 9(color)

+             109:    6(float)     CompositeExtract 108 2

+             110:    6(float)     FAdd 109 39

+             111:    7(fvec4)     Load 9(color)

+             112:    7(fvec4)     CompositeInsert 110 111 2

+                                  Store 9(color) 112

+             113:    7(fvec4)     Load 9(color)

+             114:    6(float)     CompositeExtract 113 2

+             115:    6(float)     Load 24(d4)

+             116:    17(bool)     FOrdLessThan 114 115

+                                  SelectionMerge 118 None

+                                  BranchConditional 116 117 118

+             117:                   Label

+             119:    7(fvec4)       Load 9(color)

+             120:    6(float)       CompositeExtract 119 0

+             121:    6(float)       FAdd 120 53

+             122:    7(fvec4)       Load 9(color)

+             123:    7(fvec4)       CompositeInsert 121 122 0

+                                    Store 9(color) 123

+                                    Branch 78

+             118:                 Label

+                                  Branch 107

+             107:               Label

+             125:    7(fvec4)   Load 9(color)

+             126:    6(float)   CompositeExtract 125 1

+             127:    6(float)   Load 24(d4)

+             128:    17(bool)   FOrdLessThan 126 127

+                                SelectionMerge 130 None

+                                BranchConditional 128 129 137

+             129:                 Label

+             131:    6(float)     Load 24(d4)

+             132:    7(fvec4)     Load 9(color)

+             133:    6(float)     CompositeExtract 132 1

+             134:    6(float)     FAdd 133 131

+             135:    7(fvec4)     Load 9(color)

+             136:    7(fvec4)     CompositeInsert 134 135 1

+                                  Store 9(color) 136

+                                  Branch 130

+             137:                 Label

+             138:    6(float)     Load 24(d4)

+             139:    7(fvec4)     Load 9(color)

+             140:    6(float)     CompositeExtract 139 0

+             141:    6(float)     FAdd 140 138

+             142:    7(fvec4)     Load 9(color)

+             143:    7(fvec4)     CompositeInsert 141 142 0

+                                  Store 9(color) 143

+                                  Branch 130

+             130:               Label

+                                Branch 78

               79:             Label

-              82:    8(fvec4) Load 10(color)

-              83:    7(float) CompositeExtract 82 3

-              85:    7(float) Load 84(d13)

-              86:    18(bool) FOrdLessThan 83 85

-                              LoopMerge 80 None

-                              BranchConditional 86 81 80

-              81:               Label

-              87:    8(fvec4)   Load 10(color)

-              88:    7(float)   CompositeExtract 87 2

-              89:    7(float)   Load 84(d13)

-              90:    18(bool)   FOrdLessThan 88 89

-                                SelectionMerge 92 None

-                                BranchConditional 90 91 96

-              91:                 Label

-              93:    8(fvec4)     Load 10(color)

-              94:    8(fvec4)     CompositeConstruct 54 54 54 54

-              95:    8(fvec4)     FAdd 93 94

-                                  Store 10(color) 95

-                                  Branch 92

-              96:                 Label

-              97:    8(fvec4)     Load 10(color)

-              98:    8(fvec4)     CompositeConstruct 54 54 54 54

-              99:    8(fvec4)     FSub 97 98

-                                  Store 10(color) 99

-                                  Branch 92

-              92:               Label

-             100:    8(fvec4)   Load 30(bigColor4)

-             101:    8(fvec4)   Load 10(color)

-             102:    8(fvec4)   FAdd 101 100

-                                Store 10(color) 102

-             103:    8(fvec4)   Load 10(color)

-             104:    7(float)   CompositeExtract 103 0

-             105:    7(float)   Load 25(d4)

-             106:    18(bool)   FOrdLessThan 104 105

-                                SelectionMerge 108 None

-                                BranchConditional 106 107 108

-             107:                 Label

-             109:    8(fvec4)     Load 10(color)

-             110:    7(float)     CompositeExtract 109 2

-             111:    7(float)     FAdd 110 40

-             112:    8(fvec4)     Load 10(color)

-             113:    8(fvec4)     CompositeInsert 111 112 2

-                                  Store 10(color) 113

-             114:    8(fvec4)     Load 10(color)

-             115:    7(float)     CompositeExtract 114 2

-             116:    7(float)     Load 25(d4)

-             117:    18(bool)     FOrdLessThan 115 116

-                                  SelectionMerge 119 None

-                                  BranchConditional 117 118 119

-             118:                   Label

-             120:    8(fvec4)       Load 10(color)

-             121:    7(float)       CompositeExtract 120 0

-             122:    7(float)       FAdd 121 54

-             123:    8(fvec4)       Load 10(color)

-             124:    8(fvec4)       CompositeInsert 122 123 0

-                                    Store 10(color) 124

-                                    Branch 79

-             119:                 Label

-                                  Branch 108

-             108:               Label

-             126:    8(fvec4)   Load 10(color)

-             127:    7(float)   CompositeExtract 126 1

-             128:    7(float)   Load 25(d4)

-             129:    18(bool)   FOrdLessThan 127 128

-                                SelectionMerge 131 None

-                                BranchConditional 129 130 138

-             130:                 Label

-             132:    7(float)     Load 25(d4)

-             133:    8(fvec4)     Load 10(color)

-             134:    7(float)     CompositeExtract 133 1

-             135:    7(float)     FAdd 134 132

-             136:    8(fvec4)     Load 10(color)

-             137:    8(fvec4)     CompositeInsert 135 136 1

-                                  Store 10(color) 137

-                                  Branch 131

-             138:                 Label

-             139:    7(float)     Load 25(d4)

-             140:    8(fvec4)     Load 10(color)

-             141:    7(float)     CompositeExtract 140 0

-             142:    7(float)     FAdd 141 139

-             143:    8(fvec4)     Load 10(color)

-             144:    8(fvec4)     CompositeInsert 142 143 0

-                                  Store 10(color) 144

-                                  Branch 131

-             131:               Label

-                                Branch 79

-              80:             Label

-             145:    8(fvec4) Load 10(color)

-             146:    8(fvec4) CompositeConstruct 54 54 54 54

-             147:    8(fvec4) FAdd 145 146

-                              Store 10(color) 147

-             150:    8(fvec4) Load 10(color)

-                              Store 149(gl_FragColor) 150

-                              Branch 6

-               6:             Label

+             144:    7(fvec4) Load 9(color)

+             145:    7(fvec4) CompositeConstruct 53 53 53 53

+             146:    7(fvec4) FAdd 144 145

+                              Store 9(color) 146

+             149:    7(fvec4) Load 9(color)

+                              Store 148(gl_FragColor) 149

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.matFun.vert.out b/Test/baseResults/spv.matFun.vert.out
index 4ba2e08..e46f796 100755
--- a/Test/baseResults/spv.matFun.vert.out
+++ b/Test/baseResults/spv.matFun.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 94

+// Id's are bound by 93

 

                               Source GLSL 130

                               Capability Shader

@@ -13,128 +13,126 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 15  "xf(mf33;vf3;"

-                              Name 13  "m"

-                              Name 14  "v"

-                              Name 22  "Mat3(mf44;"

-                              Name 21  "m"

-                              Name 27  "mxv(mf44;vf3;"

-                              Name 25  "m4"

-                              Name 26  "v"

-                              Name 64  "param"

-                              Name 70  "gl_Position"

-                              Name 72  "m4"

-                              Name 74  "v3"

-                              Name 75  "param"

-                              Name 77  "param"

-                              Name 81  "m3"

-                              Name 82  "param"

-                              Name 84  "param"

-                              Name 93  "gl_VertexID"

-                              Decorate 70(gl_Position) BuiltIn Position

-                              Decorate 93(gl_VertexID) BuiltIn VertexId

-                              Decorate 93(gl_VertexID) NoStaticUse

+                              Name 14  "xf(mf33;vf3;"

+                              Name 12  "m"

+                              Name 13  "v"

+                              Name 21  "Mat3(mf44;"

+                              Name 20  "m"

+                              Name 26  "mxv(mf44;vf3;"

+                              Name 24  "m4"

+                              Name 25  "v"

+                              Name 63  "param"

+                              Name 69  "gl_Position"

+                              Name 71  "m4"

+                              Name 73  "v3"

+                              Name 74  "param"

+                              Name 76  "param"

+                              Name 80  "m3"

+                              Name 81  "param"

+                              Name 83  "param"

+                              Name 92  "gl_VertexID"

+                              Decorate 69(gl_Position) BuiltIn Position

+                              Decorate 92(gl_VertexID) BuiltIn VertexId

+                              Decorate 92(gl_VertexID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 3

-               9:             TypeMatrix 8(fvec3) 3

-              10:             TypePointer Function 9

-              11:             TypePointer Function 8(fvec3)

-              12:             TypeFunction 8(fvec3) 10(ptr) 11(ptr)

-              17:             TypeVector 7(float) 4

-              18:             TypeMatrix 17(fvec4) 4

-              19:             TypePointer Function 18

-              20:             TypeFunction 9 19(ptr)

-              24:             TypeFunction 8(fvec3) 19(ptr) 11(ptr)

-              33:             TypeInt 32 1

-              34:     33(int) Constant 0

-              35:             TypePointer Function 17(fvec4)

-              39:     33(int) Constant 1

-              43:     33(int) Constant 2

-              47:    7(float) Constant 1065353216

-              48:    7(float) Constant 0

-              69:             TypePointer Output 17(fvec4)

- 70(gl_Position):     69(ptr) Variable Output

-              71:             TypePointer UniformConstant 18

-          72(m4):     71(ptr) Variable UniformConstant

-              73:             TypePointer Input 8(fvec3)

-          74(v3):     73(ptr) Variable Input

-              80:             TypePointer UniformConstant 9

-          81(m3):     80(ptr) Variable UniformConstant

-              92:             TypePointer Input 33(int)

- 93(gl_VertexID):     92(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 3

+               8:             TypeMatrix 7(fvec3) 3

+               9:             TypePointer Function 8

+              10:             TypePointer Function 7(fvec3)

+              11:             TypeFunction 7(fvec3) 9(ptr) 10(ptr)

+              16:             TypeVector 6(float) 4

+              17:             TypeMatrix 16(fvec4) 4

+              18:             TypePointer Function 17

+              19:             TypeFunction 8 18(ptr)

+              23:             TypeFunction 7(fvec3) 18(ptr) 10(ptr)

+              32:             TypeInt 32 1

+              33:     32(int) Constant 0

+              34:             TypePointer Function 16(fvec4)

+              38:     32(int) Constant 1

+              42:     32(int) Constant 2

+              46:    6(float) Constant 1065353216

+              47:    6(float) Constant 0

+              68:             TypePointer Output 16(fvec4)

+ 69(gl_Position):     68(ptr) Variable Output

+              70:             TypePointer UniformConstant 17

+          71(m4):     70(ptr) Variable UniformConstant

+              72:             TypePointer Input 7(fvec3)

+          73(v3):     72(ptr) Variable Input

+              79:             TypePointer UniformConstant 8

+          80(m3):     79(ptr) Variable UniformConstant

+              91:             TypePointer Input 32(int)

+ 92(gl_VertexID):     91(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-       75(param):     19(ptr) Variable Function

-       77(param):     11(ptr) Variable Function

-       82(param):     10(ptr) Variable Function

-       84(param):     11(ptr) Variable Function

-              76:          18 Load 72(m4)

-                              Store 75(param) 76

-              78:    8(fvec3) Load 74(v3)

-                              Store 77(param) 78

-              79:    8(fvec3) FunctionCall 27(mxv(mf44;vf3;) 75(param) 77(param)

-              83:           9 Load 81(m3)

-                              Store 82(param) 83

-              85:    8(fvec3) Load 74(v3)

-                              Store 84(param) 85

-              86:    8(fvec3) FunctionCall 15(xf(mf33;vf3;) 82(param) 84(param)

-              87:    8(fvec3) FAdd 79 86

-              88:    7(float) CompositeExtract 87 0

-              89:    7(float) CompositeExtract 87 1

-              90:    7(float) CompositeExtract 87 2

-              91:   17(fvec4) CompositeConstruct 88 89 90 47

-                              Store 70(gl_Position) 91

-                              Branch 6

-               6:             Label

+       74(param):     18(ptr) Variable Function

+       76(param):     10(ptr) Variable Function

+       81(param):      9(ptr) Variable Function

+       83(param):     10(ptr) Variable Function

+              75:          17 Load 71(m4)

+                              Store 74(param) 75

+              77:    7(fvec3) Load 73(v3)

+                              Store 76(param) 77

+              78:    7(fvec3) FunctionCall 26(mxv(mf44;vf3;) 74(param) 76(param)

+              82:           8 Load 80(m3)

+                              Store 81(param) 82

+              84:    7(fvec3) Load 73(v3)

+                              Store 83(param) 84

+              85:    7(fvec3) FunctionCall 14(xf(mf33;vf3;) 81(param) 83(param)

+              86:    7(fvec3) FAdd 78 85

+              87:    6(float) CompositeExtract 86 0

+              88:    6(float) CompositeExtract 86 1

+              89:    6(float) CompositeExtract 86 2

+              90:   16(fvec4) CompositeConstruct 87 88 89 46

+                              Store 69(gl_Position) 90

                               Return

                               FunctionEnd

-15(xf(mf33;vf3;):    8(fvec3) Function None 12

-           13(m):     10(ptr) FunctionParameter

-           14(v):     11(ptr) FunctionParameter

-              16:             Label

-              29:    8(fvec3) Load 14(v)

-              30:           9 Load 13(m)

-              31:    8(fvec3) VectorTimesMatrix 29 30

-                              ReturnValue 31

+14(xf(mf33;vf3;):    7(fvec3) Function None 11

+           12(m):      9(ptr) FunctionParameter

+           13(v):     10(ptr) FunctionParameter

+              15:             Label

+              28:    7(fvec3) Load 13(v)

+              29:           8 Load 12(m)

+              30:    7(fvec3) VectorTimesMatrix 28 29

+                              ReturnValue 30

                               FunctionEnd

-  22(Mat3(mf44;):           9 Function None 20

-           21(m):     19(ptr) FunctionParameter

-              23:             Label

-              36:     35(ptr) AccessChain 21(m) 34

-              37:   17(fvec4) Load 36

-              38:    8(fvec3) VectorShuffle 37 37 0 1 2

-              40:     35(ptr) AccessChain 21(m) 39

-              41:   17(fvec4) Load 40

-              42:    8(fvec3) VectorShuffle 41 41 0 1 2

-              44:     35(ptr) AccessChain 21(m) 43

-              45:   17(fvec4) Load 44

-              46:    8(fvec3) VectorShuffle 45 45 0 1 2

-              49:    7(float) CompositeExtract 38 0

-              50:    7(float) CompositeExtract 38 1

-              51:    7(float) CompositeExtract 38 2

-              52:    7(float) CompositeExtract 42 0

-              53:    7(float) CompositeExtract 42 1

-              54:    7(float) CompositeExtract 42 2

-              55:    7(float) CompositeExtract 46 0

-              56:    7(float) CompositeExtract 46 1

-              57:    7(float) CompositeExtract 46 2

-              58:    8(fvec3) CompositeConstruct 49 50 51

-              59:    8(fvec3) CompositeConstruct 52 53 54

-              60:    8(fvec3) CompositeConstruct 55 56 57

-              61:           9 CompositeConstruct 58 59 60

-                              ReturnValue 61

+  21(Mat3(mf44;):           8 Function None 19

+           20(m):     18(ptr) FunctionParameter

+              22:             Label

+              35:     34(ptr) AccessChain 20(m) 33

+              36:   16(fvec4) Load 35

+              37:    7(fvec3) VectorShuffle 36 36 0 1 2

+              39:     34(ptr) AccessChain 20(m) 38

+              40:   16(fvec4) Load 39

+              41:    7(fvec3) VectorShuffle 40 40 0 1 2

+              43:     34(ptr) AccessChain 20(m) 42

+              44:   16(fvec4) Load 43

+              45:    7(fvec3) VectorShuffle 44 44 0 1 2

+              48:    6(float) CompositeExtract 37 0

+              49:    6(float) CompositeExtract 37 1

+              50:    6(float) CompositeExtract 37 2

+              51:    6(float) CompositeExtract 41 0

+              52:    6(float) CompositeExtract 41 1

+              53:    6(float) CompositeExtract 41 2

+              54:    6(float) CompositeExtract 45 0

+              55:    6(float) CompositeExtract 45 1

+              56:    6(float) CompositeExtract 45 2

+              57:    7(fvec3) CompositeConstruct 48 49 50

+              58:    7(fvec3) CompositeConstruct 51 52 53

+              59:    7(fvec3) CompositeConstruct 54 55 56

+              60:           8 CompositeConstruct 57 58 59

+                              ReturnValue 60

                               FunctionEnd

-27(mxv(mf44;vf3;):    8(fvec3) Function None 24

-          25(m4):     19(ptr) FunctionParameter

-           26(v):     11(ptr) FunctionParameter

-              28:             Label

-       64(param):     19(ptr) Variable Function

-              63:    8(fvec3) Load 26(v)

-              65:          18 Load 25(m4)

-                              Store 64(param) 65

-              66:           9 FunctionCall 22(Mat3(mf44;) 64(param)

-              67:    8(fvec3) VectorTimesMatrix 63 66

-                              ReturnValue 67

+26(mxv(mf44;vf3;):    7(fvec3) Function None 23

+          24(m4):     18(ptr) FunctionParameter

+           25(v):     10(ptr) FunctionParameter

+              27:             Label

+       63(param):     18(ptr) Variable Function

+              62:    7(fvec3) Load 25(v)

+              64:          17 Load 24(m4)

+                              Store 63(param) 64

+              65:           8 FunctionCall 21(Mat3(mf44;) 63(param)

+              66:    7(fvec3) VectorTimesMatrix 62 65

+                              ReturnValue 66

                               FunctionEnd

diff --git a/Test/baseResults/spv.newTexture.frag.out b/Test/baseResults/spv.newTexture.frag.out
index 1e862e1..ef63565 100644
--- a/Test/baseResults/spv.newTexture.frag.out
+++ b/Test/baseResults/spv.newTexture.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 256

+// Id's are bound by 255

 

                               Source GLSL 430

                               Capability Shader

@@ -16,330 +16,328 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "v"

-                              Name 14  "s2D"

-                              Name 18  "c2D"

-                              Name 24  "s3D"

-                              Name 27  "c4D"

-                              Name 35  "s2DArray"

-                              Name 39  "c3D"

-                              Name 48  "s2DShadow"

-                              Name 56  "c1D"

-                              Name 68  "ic3D"

-                              Name 71  "ic1D"

-                              Name 78  "ic2D"

-                              Name 103  "sCube"

-                              Name 114  "s2DArrayShadow"

-                              Name 142  "iv"

-                              Name 146  "is2D"

-                              Name 181  "is3D"

-                              Name 193  "isCube"

-                              Name 205  "is2DArray"

-                              Name 215  "iv2"

-                              Name 219  "sCubeShadow"

-                              Name 224  "FragData"

-                              Name 236  "is2Dms"

-                              Name 241  "us2D"

-                              Name 245  "us3D"

-                              Name 249  "usCube"

-                              Name 253  "us2DArray"

-                              Name 255  "ic4D"

-                              Decorate 18(c2D) Smooth

-                              Decorate 27(c4D) Smooth

-                              Decorate 39(c3D) Smooth

-                              Decorate 56(c1D) Smooth

-                              Decorate 68(ic3D) Flat

-                              Decorate 71(ic1D) Flat

-                              Decorate 78(ic2D) Flat

-                              Decorate 236(is2Dms) NoStaticUse

-                              Decorate 241(us2D) NoStaticUse

-                              Decorate 245(us3D) NoStaticUse

-                              Decorate 249(usCube) NoStaticUse

-                              Decorate 253(us2DArray) NoStaticUse

-                              Decorate 255(ic4D) Flat

-                              Decorate 255(ic4D) NoStaticUse

+                              Name 9  "v"

+                              Name 13  "s2D"

+                              Name 17  "c2D"

+                              Name 23  "s3D"

+                              Name 26  "c4D"

+                              Name 34  "s2DArray"

+                              Name 38  "c3D"

+                              Name 47  "s2DShadow"

+                              Name 55  "c1D"

+                              Name 67  "ic3D"

+                              Name 70  "ic1D"

+                              Name 77  "ic2D"

+                              Name 102  "sCube"

+                              Name 113  "s2DArrayShadow"

+                              Name 141  "iv"

+                              Name 145  "is2D"

+                              Name 180  "is3D"

+                              Name 192  "isCube"

+                              Name 204  "is2DArray"

+                              Name 214  "iv2"

+                              Name 218  "sCubeShadow"

+                              Name 223  "FragData"

+                              Name 235  "is2Dms"

+                              Name 240  "us2D"

+                              Name 244  "us3D"

+                              Name 248  "usCube"

+                              Name 252  "us2DArray"

+                              Name 254  "ic4D"

+                              Decorate 17(c2D) Smooth

+                              Decorate 26(c4D) Smooth

+                              Decorate 38(c3D) Smooth

+                              Decorate 55(c1D) Smooth

+                              Decorate 67(ic3D) Flat

+                              Decorate 70(ic1D) Flat

+                              Decorate 77(ic2D) Flat

+                              Decorate 235(is2Dms) NoStaticUse

+                              Decorate 240(us2D) NoStaticUse

+                              Decorate 244(us3D) NoStaticUse

+                              Decorate 248(usCube) NoStaticUse

+                              Decorate 252(us2DArray) NoStaticUse

+                              Decorate 254(ic4D) Flat

+                              Decorate 254(ic4D) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypeImage 7(float) 2D sampled format:Unknown

-              12:             TypeSampledImage 11

-              13:             TypePointer UniformConstant 12

-         14(s2D):     13(ptr) Variable UniformConstant

-              16:             TypeVector 7(float) 2

-              17:             TypePointer Input 16(fvec2)

-         18(c2D):     17(ptr) Variable Input

-              21:             TypeImage 7(float) 3D sampled format:Unknown

-              22:             TypeSampledImage 21

-              23:             TypePointer UniformConstant 22

-         24(s3D):     23(ptr) Variable UniformConstant

-              26:             TypePointer Input 8(fvec4)

-         27(c4D):     26(ptr) Variable Input

-              32:             TypeImage 7(float) 2D array sampled format:Unknown

-              33:             TypeSampledImage 32

-              34:             TypePointer UniformConstant 33

-    35(s2DArray):     34(ptr) Variable UniformConstant

-              37:             TypeVector 7(float) 3

-              38:             TypePointer Input 37(fvec3)

-         39(c3D):     38(ptr) Variable Input

-              41:    7(float) Constant 1067030938

-              45:             TypeImage 7(float) 2D depth sampled format:Unknown

-              46:             TypeSampledImage 45

-              47:             TypePointer UniformConstant 46

-   48(s2DShadow):     47(ptr) Variable UniformConstant

-              51:             TypeInt 32 1

-              52:             TypeVector 51(int) 2

-              53:     51(int) Constant 3

-              54:   52(ivec2) ConstantComposite 53 53

-              55:             TypePointer Input 7(float)

-         56(c1D):     55(ptr) Variable Input

-              66:             TypeVector 51(int) 3

-              67:             TypePointer Input 66(ivec3)

-        68(ic3D):     67(ptr) Variable Input

-              70:             TypePointer Input 51(int)

-        71(ic1D):     70(ptr) Variable Input

-              77:             TypePointer Input 52(ivec2)

-        78(ic2D):     77(ptr) Variable Input

-              80:     51(int) Constant 4

-             100:             TypeImage 7(float) Cube sampled format:Unknown

-             101:             TypeSampledImage 100

-             102:             TypePointer UniformConstant 101

-      103(sCube):    102(ptr) Variable UniformConstant

-             111:             TypeImage 7(float) 2D depth array sampled format:Unknown

-             112:             TypeSampledImage 111

-             113:             TypePointer UniformConstant 112

-114(s2DArrayShadow):    113(ptr) Variable UniformConstant

-             140:             TypeVector 51(int) 4

-             141:             TypePointer Function 140(ivec4)

-             143:             TypeImage 51(int) 2D sampled format:Unknown

-             144:             TypeSampledImage 143

-             145:             TypePointer UniformConstant 144

-       146(is2D):    145(ptr) Variable UniformConstant

-             178:             TypeImage 51(int) 3D sampled format:Unknown

-             179:             TypeSampledImage 178

-             180:             TypePointer UniformConstant 179

-       181(is3D):    180(ptr) Variable UniformConstant

-             184:    7(float) Constant 1082549862

-             190:             TypeImage 51(int) Cube sampled format:Unknown

-             191:             TypeSampledImage 190

-             192:             TypePointer UniformConstant 191

-     193(isCube):    192(ptr) Variable UniformConstant

-             202:             TypeImage 51(int) 2D array sampled format:Unknown

-             203:             TypeSampledImage 202

-             204:             TypePointer UniformConstant 203

-  205(is2DArray):    204(ptr) Variable UniformConstant

-             214:             TypePointer Function 52(ivec2)

-             216:             TypeImage 7(float) Cube depth sampled format:Unknown

-             217:             TypeSampledImage 216

-             218:             TypePointer UniformConstant 217

-219(sCubeShadow):    218(ptr) Variable UniformConstant

-             221:     51(int) Constant 2

-             223:             TypePointer Output 8(fvec4)

-   224(FragData):    223(ptr) Variable Output

-             228:    7(float) Constant 0

-             233:             TypeImage 51(int) 2D multi-sampled sampled format:Unknown

-             234:             TypeSampledImage 233

-             235:             TypePointer UniformConstant 234

-     236(is2Dms):    235(ptr) Variable UniformConstant

-             237:             TypeInt 32 0

-             238:             TypeImage 237(int) 2D sampled format:Unknown

-             239:             TypeSampledImage 238

-             240:             TypePointer UniformConstant 239

-       241(us2D):    240(ptr) Variable UniformConstant

-             242:             TypeImage 237(int) 3D sampled format:Unknown

-             243:             TypeSampledImage 242

-             244:             TypePointer UniformConstant 243

-       245(us3D):    244(ptr) Variable UniformConstant

-             246:             TypeImage 237(int) Cube sampled format:Unknown

-             247:             TypeSampledImage 246

-             248:             TypePointer UniformConstant 247

-     249(usCube):    248(ptr) Variable UniformConstant

-             250:             TypeImage 237(int) 2D array sampled format:Unknown

-             251:             TypeSampledImage 250

-             252:             TypePointer UniformConstant 251

-  253(us2DArray):    252(ptr) Variable UniformConstant

-             254:             TypePointer Input 140(ivec4)

-       255(ic4D):    254(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypeImage 6(float) 2D sampled format:Unknown

+              11:             TypeSampledImage 10

+              12:             TypePointer UniformConstant 11

+         13(s2D):     12(ptr) Variable UniformConstant

+              15:             TypeVector 6(float) 2

+              16:             TypePointer Input 15(fvec2)

+         17(c2D):     16(ptr) Variable Input

+              20:             TypeImage 6(float) 3D sampled format:Unknown

+              21:             TypeSampledImage 20

+              22:             TypePointer UniformConstant 21

+         23(s3D):     22(ptr) Variable UniformConstant

+              25:             TypePointer Input 7(fvec4)

+         26(c4D):     25(ptr) Variable Input

+              31:             TypeImage 6(float) 2D array sampled format:Unknown

+              32:             TypeSampledImage 31

+              33:             TypePointer UniformConstant 32

+    34(s2DArray):     33(ptr) Variable UniformConstant

+              36:             TypeVector 6(float) 3

+              37:             TypePointer Input 36(fvec3)

+         38(c3D):     37(ptr) Variable Input

+              40:    6(float) Constant 1067030938

+              44:             TypeImage 6(float) 2D depth sampled format:Unknown

+              45:             TypeSampledImage 44

+              46:             TypePointer UniformConstant 45

+   47(s2DShadow):     46(ptr) Variable UniformConstant

+              50:             TypeInt 32 1

+              51:             TypeVector 50(int) 2

+              52:     50(int) Constant 3

+              53:   51(ivec2) ConstantComposite 52 52

+              54:             TypePointer Input 6(float)

+         55(c1D):     54(ptr) Variable Input

+              65:             TypeVector 50(int) 3

+              66:             TypePointer Input 65(ivec3)

+        67(ic3D):     66(ptr) Variable Input

+              69:             TypePointer Input 50(int)

+        70(ic1D):     69(ptr) Variable Input

+              76:             TypePointer Input 51(ivec2)

+        77(ic2D):     76(ptr) Variable Input

+              79:     50(int) Constant 4

+              99:             TypeImage 6(float) Cube sampled format:Unknown

+             100:             TypeSampledImage 99

+             101:             TypePointer UniformConstant 100

+      102(sCube):    101(ptr) Variable UniformConstant

+             110:             TypeImage 6(float) 2D depth array sampled format:Unknown

+             111:             TypeSampledImage 110

+             112:             TypePointer UniformConstant 111

+113(s2DArrayShadow):    112(ptr) Variable UniformConstant

+             139:             TypeVector 50(int) 4

+             140:             TypePointer Function 139(ivec4)

+             142:             TypeImage 50(int) 2D sampled format:Unknown

+             143:             TypeSampledImage 142

+             144:             TypePointer UniformConstant 143

+       145(is2D):    144(ptr) Variable UniformConstant

+             177:             TypeImage 50(int) 3D sampled format:Unknown

+             178:             TypeSampledImage 177

+             179:             TypePointer UniformConstant 178

+       180(is3D):    179(ptr) Variable UniformConstant

+             183:    6(float) Constant 1082549862

+             189:             TypeImage 50(int) Cube sampled format:Unknown

+             190:             TypeSampledImage 189

+             191:             TypePointer UniformConstant 190

+     192(isCube):    191(ptr) Variable UniformConstant

+             201:             TypeImage 50(int) 2D array sampled format:Unknown

+             202:             TypeSampledImage 201

+             203:             TypePointer UniformConstant 202

+  204(is2DArray):    203(ptr) Variable UniformConstant

+             213:             TypePointer Function 51(ivec2)

+             215:             TypeImage 6(float) Cube depth sampled format:Unknown

+             216:             TypeSampledImage 215

+             217:             TypePointer UniformConstant 216

+218(sCubeShadow):    217(ptr) Variable UniformConstant

+             220:     50(int) Constant 2

+             222:             TypePointer Output 7(fvec4)

+   223(FragData):    222(ptr) Variable Output

+             227:    6(float) Constant 0

+             232:             TypeImage 50(int) 2D multi-sampled sampled format:Unknown

+             233:             TypeSampledImage 232

+             234:             TypePointer UniformConstant 233

+     235(is2Dms):    234(ptr) Variable UniformConstant

+             236:             TypeInt 32 0

+             237:             TypeImage 236(int) 2D sampled format:Unknown

+             238:             TypeSampledImage 237

+             239:             TypePointer UniformConstant 238

+       240(us2D):    239(ptr) Variable UniformConstant

+             241:             TypeImage 236(int) 3D sampled format:Unknown

+             242:             TypeSampledImage 241

+             243:             TypePointer UniformConstant 242

+       244(us3D):    243(ptr) Variable UniformConstant

+             245:             TypeImage 236(int) Cube sampled format:Unknown

+             246:             TypeSampledImage 245

+             247:             TypePointer UniformConstant 246

+     248(usCube):    247(ptr) Variable UniformConstant

+             249:             TypeImage 236(int) 2D array sampled format:Unknown

+             250:             TypeSampledImage 249

+             251:             TypePointer UniformConstant 250

+  252(us2DArray):    251(ptr) Variable UniformConstant

+             253:             TypePointer Input 139(ivec4)

+       254(ic4D):    253(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-           10(v):      9(ptr) Variable Function

-         142(iv):    141(ptr) Variable Function

-        215(iv2):    214(ptr) Variable Function

-              15:          12 Load 14(s2D)

-              19:   16(fvec2) Load 18(c2D)

-              20:    8(fvec4) ImageSampleImplicitLod 15 19

-                              Store 10(v) 20

-              25:          22 Load 24(s3D)

-              28:    8(fvec4) Load 27(c4D)

-              29:    8(fvec4) ImageSampleProjImplicitLod 25 28

-              30:    8(fvec4) Load 10(v)

-              31:    8(fvec4) FAdd 30 29

-                              Store 10(v) 31

-              36:          33 Load 35(s2DArray)

-              40:   37(fvec3) Load 39(c3D)

-              42:    8(fvec4) ImageSampleExplicitLod 36 40 41

-              43:    8(fvec4) Load 10(v)

-              44:    8(fvec4) FAdd 43 42

-                              Store 10(v) 44

-              49:          46 Load 48(s2DShadow)

-              50:   37(fvec3) Load 39(c3D)

-              57:    7(float) Load 56(c1D)

-              58:    7(float) CompositeExtract 50 2

-              59:    7(float) ImageSampleDrefImplicitLod 49 50 58 57 54

-              60:    8(fvec4) Load 10(v)

-              61:    7(float) CompositeExtract 60 1

-              62:    7(float) FAdd 61 59

-              63:    8(fvec4) Load 10(v)

-              64:    8(fvec4) CompositeInsert 62 63 1

-                              Store 10(v) 64

-              65:          22 Load 24(s3D)

-              69:   66(ivec3) Load 68(ic3D)

-              72:     51(int) Load 71(ic1D)

-              73:    8(fvec4) ImageFetch 65 69

-              74:    8(fvec4) Load 10(v)

-              75:    8(fvec4) FAdd 74 73

-                              Store 10(v) 75

-              76:          12 Load 14(s2D)

-              79:   52(ivec2) Load 78(ic2D)

-              81:    8(fvec4) ImageFetch 76 79 80

-              82:    8(fvec4) Load 10(v)

-              83:    8(fvec4) FAdd 82 81

-                              Store 10(v) 83

-              84:          46 Load 48(s2DShadow)

-              85:   37(fvec3) Load 39(c3D)

-              86:    7(float) Load 56(c1D)

-              87:    7(float) CompositeExtract 85 2

-              88:    7(float) ImageSampleDrefExplicitLod 84 85 87 86 54

-              89:    8(fvec4) Load 10(v)

-              90:    7(float) CompositeExtract 89 1

-              91:    7(float) FAdd 90 88

-              92:    8(fvec4) Load 10(v)

-              93:    8(fvec4) CompositeInsert 91 92 1

-                              Store 10(v) 93

-              94:          12 Load 14(s2D)

-              95:   37(fvec3) Load 39(c3D)

-              96:    7(float) Load 56(c1D)

-              97:    8(fvec4) ImageSampleProjExplicitLod 94 95 96 54

-              98:    8(fvec4) Load 10(v)

-              99:    8(fvec4) FAdd 98 97

-                              Store 10(v) 99

-             104:         101 Load 103(sCube)

-             105:   37(fvec3) Load 39(c3D)

-             106:   37(fvec3) Load 39(c3D)

-             107:   37(fvec3) Load 39(c3D)

-             108:    8(fvec4) ImageSampleExplicitLod 104 105 106 107

-             109:    8(fvec4) Load 10(v)

-             110:    8(fvec4) FAdd 109 108

-                              Store 10(v) 110

-             115:         112 Load 114(s2DArrayShadow)

-             116:    8(fvec4) Load 27(c4D)

-             117:   16(fvec2) Load 18(c2D)

-             118:   16(fvec2) Load 18(c2D)

-             119:    7(float) CompositeExtract 116 3

-             120:    7(float) ImageSampleDrefExplicitLod 115 116 119 117 118 54

-             121:    8(fvec4) Load 10(v)

-             122:    7(float) CompositeExtract 121 0

-             123:    7(float) FAdd 122 120

-             124:    8(fvec4) Load 10(v)

-             125:    8(fvec4) CompositeInsert 123 124 0

-                              Store 10(v) 125

-             126:          22 Load 24(s3D)

-             127:    8(fvec4) Load 27(c4D)

-             128:   37(fvec3) Load 39(c3D)

-             129:   37(fvec3) Load 39(c3D)

-             130:    8(fvec4) ImageSampleProjExplicitLod 126 127 128 129

-             131:    8(fvec4) Load 10(v)

-             132:    8(fvec4) FAdd 131 130

-                              Store 10(v) 132

-             133:          12 Load 14(s2D)

-             134:   37(fvec3) Load 39(c3D)

-             135:   16(fvec2) Load 18(c2D)

-             136:   16(fvec2) Load 18(c2D)

-             137:    8(fvec4) ImageSampleProjExplicitLod 133 134 135 136 54

-             138:    8(fvec4) Load 10(v)

-             139:    8(fvec4) FAdd 138 137

-                              Store 10(v) 139

-             147:         144 Load 146(is2D)

-             148:   16(fvec2) Load 18(c2D)

-             149:  140(ivec4) ImageSampleImplicitLod 147 148

-                              Store 142(iv) 149

-             150:  140(ivec4) Load 142(iv)

-             151:    8(fvec4) ConvertSToF 150

-             152:    8(fvec4) Load 10(v)

-             153:    8(fvec4) FAdd 152 151

-                              Store 10(v) 153

-             154:         144 Load 146(is2D)

-             155:    8(fvec4) Load 27(c4D)

-             156:  140(ivec4) ImageSampleProjImplicitLod 154 155 54

-                              Store 142(iv) 156

-             157:  140(ivec4) Load 142(iv)

-             158:    8(fvec4) ConvertSToF 157

-             159:    8(fvec4) Load 10(v)

-             160:    8(fvec4) FAdd 159 158

-                              Store 10(v) 160

-             161:         144 Load 146(is2D)

-             162:   37(fvec3) Load 39(c3D)

-             163:    7(float) Load 56(c1D)

-             164:  140(ivec4) ImageSampleProjExplicitLod 161 162 163

-                              Store 142(iv) 164

-             165:  140(ivec4) Load 142(iv)

-             166:    8(fvec4) ConvertSToF 165

-             167:    8(fvec4) Load 10(v)

-             168:    8(fvec4) FAdd 167 166

-                              Store 10(v) 168

-             169:         144 Load 146(is2D)

-             170:   37(fvec3) Load 39(c3D)

-             171:   16(fvec2) Load 18(c2D)

-             172:   16(fvec2) Load 18(c2D)

-             173:  140(ivec4) ImageSampleProjExplicitLod 169 170 171 172

-                              Store 142(iv) 173

-             174:  140(ivec4) Load 142(iv)

-             175:    8(fvec4) ConvertSToF 174

-             176:    8(fvec4) Load 10(v)

-             177:    8(fvec4) FAdd 176 175

-                              Store 10(v) 177

-             182:         179 Load 181(is3D)

-             183:   37(fvec3) Load 39(c3D)

-             185:  140(ivec4) ImageSampleImplicitLod 182 183 184

-                              Store 142(iv) 185

-             186:  140(ivec4) Load 142(iv)

-             187:    8(fvec4) ConvertSToF 186

-             188:    8(fvec4) Load 10(v)

-             189:    8(fvec4) FAdd 188 187

-                              Store 10(v) 189

-             194:         191 Load 193(isCube)

-             195:   37(fvec3) Load 39(c3D)

-             196:    7(float) Load 56(c1D)

-             197:  140(ivec4) ImageSampleExplicitLod 194 195 196

-                              Store 142(iv) 197

-             198:  140(ivec4) Load 142(iv)

-             199:    8(fvec4) ConvertSToF 198

-             200:    8(fvec4) Load 10(v)

-             201:    8(fvec4) FAdd 200 199

-                              Store 10(v) 201

-             206:         203 Load 205(is2DArray)

-             207:   66(ivec3) Load 68(ic3D)

-             208:     51(int) Load 71(ic1D)

-             209:  140(ivec4) ImageFetch 206 207

-                              Store 142(iv) 209

-             210:  140(ivec4) Load 142(iv)

-             211:    8(fvec4) ConvertSToF 210

-             212:    8(fvec4) Load 10(v)

-             213:    8(fvec4) FAdd 212 211

-                              Store 10(v) 213

-             220:         217 Load 219(sCubeShadow)

-             222:   52(ivec2) ImageQuerySizeLod 220 221

-                              Store 215(iv2) 222

-             225:    8(fvec4) Load 10(v)

-             226:   52(ivec2) Load 215(iv2)

-             227:   16(fvec2) ConvertSToF 226

-             229:    7(float) CompositeExtract 227 0

-             230:    7(float) CompositeExtract 227 1

-             231:    8(fvec4) CompositeConstruct 229 230 228 228

-             232:    8(fvec4) FAdd 225 231

-                              Store 224(FragData) 232

-                              Branch 6

-               6:             Label

+            9(v):      8(ptr) Variable Function

+         141(iv):    140(ptr) Variable Function

+        214(iv2):    213(ptr) Variable Function

+              14:          11 Load 13(s2D)

+              18:   15(fvec2) Load 17(c2D)

+              19:    7(fvec4) ImageSampleImplicitLod 14 18

+                              Store 9(v) 19

+              24:          21 Load 23(s3D)

+              27:    7(fvec4) Load 26(c4D)

+              28:    7(fvec4) ImageSampleProjImplicitLod 24 27

+              29:    7(fvec4) Load 9(v)

+              30:    7(fvec4) FAdd 29 28

+                              Store 9(v) 30

+              35:          32 Load 34(s2DArray)

+              39:   36(fvec3) Load 38(c3D)

+              41:    7(fvec4) ImageSampleExplicitLod 35 39 40

+              42:    7(fvec4) Load 9(v)

+              43:    7(fvec4) FAdd 42 41

+                              Store 9(v) 43

+              48:          45 Load 47(s2DShadow)

+              49:   36(fvec3) Load 38(c3D)

+              56:    6(float) Load 55(c1D)

+              57:    6(float) CompositeExtract 49 2

+              58:    6(float) ImageSampleDrefImplicitLod 48 49 57 56 53

+              59:    7(fvec4) Load 9(v)

+              60:    6(float) CompositeExtract 59 1

+              61:    6(float) FAdd 60 58

+              62:    7(fvec4) Load 9(v)

+              63:    7(fvec4) CompositeInsert 61 62 1

+                              Store 9(v) 63

+              64:          21 Load 23(s3D)

+              68:   65(ivec3) Load 67(ic3D)

+              71:     50(int) Load 70(ic1D)

+              72:    7(fvec4) ImageFetch 64 68

+              73:    7(fvec4) Load 9(v)

+              74:    7(fvec4) FAdd 73 72

+                              Store 9(v) 74

+              75:          11 Load 13(s2D)

+              78:   51(ivec2) Load 77(ic2D)

+              80:    7(fvec4) ImageFetch 75 78 79

+              81:    7(fvec4) Load 9(v)

+              82:    7(fvec4) FAdd 81 80

+                              Store 9(v) 82

+              83:          45 Load 47(s2DShadow)

+              84:   36(fvec3) Load 38(c3D)

+              85:    6(float) Load 55(c1D)

+              86:    6(float) CompositeExtract 84 2

+              87:    6(float) ImageSampleDrefExplicitLod 83 84 86 85 53

+              88:    7(fvec4) Load 9(v)

+              89:    6(float) CompositeExtract 88 1

+              90:    6(float) FAdd 89 87

+              91:    7(fvec4) Load 9(v)

+              92:    7(fvec4) CompositeInsert 90 91 1

+                              Store 9(v) 92

+              93:          11 Load 13(s2D)

+              94:   36(fvec3) Load 38(c3D)

+              95:    6(float) Load 55(c1D)

+              96:    7(fvec4) ImageSampleProjExplicitLod 93 94 95 53

+              97:    7(fvec4) Load 9(v)

+              98:    7(fvec4) FAdd 97 96

+                              Store 9(v) 98

+             103:         100 Load 102(sCube)

+             104:   36(fvec3) Load 38(c3D)

+             105:   36(fvec3) Load 38(c3D)

+             106:   36(fvec3) Load 38(c3D)

+             107:    7(fvec4) ImageSampleExplicitLod 103 104 105 106

+             108:    7(fvec4) Load 9(v)

+             109:    7(fvec4) FAdd 108 107

+                              Store 9(v) 109

+             114:         111 Load 113(s2DArrayShadow)

+             115:    7(fvec4) Load 26(c4D)

+             116:   15(fvec2) Load 17(c2D)

+             117:   15(fvec2) Load 17(c2D)

+             118:    6(float) CompositeExtract 115 3

+             119:    6(float) ImageSampleDrefExplicitLod 114 115 118 116 117 53

+             120:    7(fvec4) Load 9(v)

+             121:    6(float) CompositeExtract 120 0

+             122:    6(float) FAdd 121 119

+             123:    7(fvec4) Load 9(v)

+             124:    7(fvec4) CompositeInsert 122 123 0

+                              Store 9(v) 124

+             125:          21 Load 23(s3D)

+             126:    7(fvec4) Load 26(c4D)

+             127:   36(fvec3) Load 38(c3D)

+             128:   36(fvec3) Load 38(c3D)

+             129:    7(fvec4) ImageSampleProjExplicitLod 125 126 127 128

+             130:    7(fvec4) Load 9(v)

+             131:    7(fvec4) FAdd 130 129

+                              Store 9(v) 131

+             132:          11 Load 13(s2D)

+             133:   36(fvec3) Load 38(c3D)

+             134:   15(fvec2) Load 17(c2D)

+             135:   15(fvec2) Load 17(c2D)

+             136:    7(fvec4) ImageSampleProjExplicitLod 132 133 134 135 53

+             137:    7(fvec4) Load 9(v)

+             138:    7(fvec4) FAdd 137 136

+                              Store 9(v) 138

+             146:         143 Load 145(is2D)

+             147:   15(fvec2) Load 17(c2D)

+             148:  139(ivec4) ImageSampleImplicitLod 146 147

+                              Store 141(iv) 148

+             149:  139(ivec4) Load 141(iv)

+             150:    7(fvec4) ConvertSToF 149

+             151:    7(fvec4) Load 9(v)

+             152:    7(fvec4) FAdd 151 150

+                              Store 9(v) 152

+             153:         143 Load 145(is2D)

+             154:    7(fvec4) Load 26(c4D)

+             155:  139(ivec4) ImageSampleProjImplicitLod 153 154 53

+                              Store 141(iv) 155

+             156:  139(ivec4) Load 141(iv)

+             157:    7(fvec4) ConvertSToF 156

+             158:    7(fvec4) Load 9(v)

+             159:    7(fvec4) FAdd 158 157

+                              Store 9(v) 159

+             160:         143 Load 145(is2D)

+             161:   36(fvec3) Load 38(c3D)

+             162:    6(float) Load 55(c1D)

+             163:  139(ivec4) ImageSampleProjExplicitLod 160 161 162

+                              Store 141(iv) 163

+             164:  139(ivec4) Load 141(iv)

+             165:    7(fvec4) ConvertSToF 164

+             166:    7(fvec4) Load 9(v)

+             167:    7(fvec4) FAdd 166 165

+                              Store 9(v) 167

+             168:         143 Load 145(is2D)

+             169:   36(fvec3) Load 38(c3D)

+             170:   15(fvec2) Load 17(c2D)

+             171:   15(fvec2) Load 17(c2D)

+             172:  139(ivec4) ImageSampleProjExplicitLod 168 169 170 171

+                              Store 141(iv) 172

+             173:  139(ivec4) Load 141(iv)

+             174:    7(fvec4) ConvertSToF 173

+             175:    7(fvec4) Load 9(v)

+             176:    7(fvec4) FAdd 175 174

+                              Store 9(v) 176

+             181:         178 Load 180(is3D)

+             182:   36(fvec3) Load 38(c3D)

+             184:  139(ivec4) ImageSampleImplicitLod 181 182 183

+                              Store 141(iv) 184

+             185:  139(ivec4) Load 141(iv)

+             186:    7(fvec4) ConvertSToF 185

+             187:    7(fvec4) Load 9(v)

+             188:    7(fvec4) FAdd 187 186

+                              Store 9(v) 188

+             193:         190 Load 192(isCube)

+             194:   36(fvec3) Load 38(c3D)

+             195:    6(float) Load 55(c1D)

+             196:  139(ivec4) ImageSampleExplicitLod 193 194 195

+                              Store 141(iv) 196

+             197:  139(ivec4) Load 141(iv)

+             198:    7(fvec4) ConvertSToF 197

+             199:    7(fvec4) Load 9(v)

+             200:    7(fvec4) FAdd 199 198

+                              Store 9(v) 200

+             205:         202 Load 204(is2DArray)

+             206:   65(ivec3) Load 67(ic3D)

+             207:     50(int) Load 70(ic1D)

+             208:  139(ivec4) ImageFetch 205 206

+                              Store 141(iv) 208

+             209:  139(ivec4) Load 141(iv)

+             210:    7(fvec4) ConvertSToF 209

+             211:    7(fvec4) Load 9(v)

+             212:    7(fvec4) FAdd 211 210

+                              Store 9(v) 212

+             219:         216 Load 218(sCubeShadow)

+             221:   51(ivec2) ImageQuerySizeLod 219 220

+                              Store 214(iv2) 221

+             224:    7(fvec4) Load 9(v)

+             225:   51(ivec2) Load 214(iv2)

+             226:   15(fvec2) ConvertSToF 225

+             228:    6(float) CompositeExtract 226 0

+             229:    6(float) CompositeExtract 226 1

+             230:    7(fvec4) CompositeConstruct 228 229 227 227

+             231:    7(fvec4) FAdd 224 230

+                              Store 223(FragData) 231

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.nonSquare.vert.out b/Test/baseResults/spv.nonSquare.vert.out
index fe27f56..6903490 100755
--- a/Test/baseResults/spv.nonSquare.vert.out
+++ b/Test/baseResults/spv.nonSquare.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 91

+// Id's are bound by 90

 

                               Source GLSL 120

                               Capability Shader

@@ -13,109 +13,107 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "a"

-                              Name 13  "v3"

-                              Name 17  "m23"

-                              Name 20  "b"

-                              Name 23  "m32"

-                              Name 29  "gl_Position"

-                              Name 56  "v4"

-                              Decorate 29(gl_Position) BuiltIn Position

-                              Decorate 75 NoStaticUse

-                              Decorate 79 NoStaticUse

-                              Decorate 90 NoStaticUse

+                              Name 9  "a"

+                              Name 12  "v3"

+                              Name 16  "m23"

+                              Name 19  "b"

+                              Name 22  "m32"

+                              Name 28  "gl_Position"

+                              Name 55  "v4"

+                              Decorate 28(gl_Position) BuiltIn Position

+                              Decorate 74 NoStaticUse

+                              Decorate 78 NoStaticUse

+                              Decorate 89 NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 2

-               9:             TypePointer Function 8(fvec2)

-              11:             TypeVector 7(float) 3

-              12:             TypePointer Input 11(fvec3)

-          13(v3):     12(ptr) Variable Input

-              15:             TypeMatrix 11(fvec3) 2

-              16:             TypePointer Function 15

-              21:             TypeMatrix 8(fvec2) 3

-              22:             TypePointer UniformConstant 21

-         23(m32):     22(ptr) Variable UniformConstant

-              27:             TypeVector 7(float) 4

-              28:             TypePointer Output 27(fvec4)

- 29(gl_Position):     28(ptr) Variable Output

-              32:             TypeMatrix 11(fvec3) 3

-              36:    7(float) Constant 0

-              41:             TypeMatrix 27(fvec4) 4

-              42:    7(float) Constant 1077936128

-              43:    7(float) Constant 1086324736

-              44:   27(fvec4) ConstantComposite 42 43 36 36

-              45:    7(float) Constant 1091567616

-              46:    7(float) Constant 1094713344

-              47:   27(fvec4) ConstantComposite 45 46 36 36

-              48:    7(float) Constant 1097859072

-              49:    7(float) Constant 1099956224

-              50:   27(fvec4) ConstantComposite 48 49 36 36

-              51:    7(float) Constant 1101529088

-              52:    7(float) Constant 1103101952

-              53:   27(fvec4) ConstantComposite 51 52 36 36

-              54:          41 ConstantComposite 44 47 50 53

-              55:             TypePointer Input 27(fvec4)

-          56(v4):     55(ptr) Variable Input

-              60:    7(float) Constant 1112014848

-              61:    7(float) Constant 1121714176

-              62:    7(float) Constant 1126825984

-              63:    7(float) Constant 1130758144

-              64:   27(fvec4) ConstantComposite 60 61 62 63

-              66:    7(float) Constant 1106247680

-              67:    7(float) Constant 1114636288

-              68:   27(fvec4) ConstantComposite 66 67 36 36

-              70:    7(float) Constant 1101004800

-              71:    7(float) Constant 1092616192

-              72:    7(float) Constant 1084227584

-              73:   27(fvec4) ConstantComposite 70 71 43 72

-              75:    8(fvec2) ConstantComposite 71 70

-              76:             TypeMatrix 27(fvec4) 2

-              77:   27(fvec4) ConstantComposite 42 36 36 36

-              78:   27(fvec4) ConstantComposite 36 42 36 36

-              79:          76 ConstantComposite 77 78

-              80:             TypeMatrix 8(fvec2) 4

-              81:    7(float) Constant 1065353216

-              82:    7(float) Constant 1073741824

-              83:    8(fvec2) ConstantComposite 81 82

-              84:    7(float) Constant 1082130432

-              85:    8(fvec2) ConstantComposite 42 84

-              86:    8(fvec2) ConstantComposite 72 43

-              87:    7(float) Constant 1088421888

-              88:    7(float) Constant 1090519040

-              89:    8(fvec2) ConstantComposite 87 88

-              90:          80 ConstantComposite 83 85 86 89

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 2

+               8:             TypePointer Function 7(fvec2)

+              10:             TypeVector 6(float) 3

+              11:             TypePointer Input 10(fvec3)

+          12(v3):     11(ptr) Variable Input

+              14:             TypeMatrix 10(fvec3) 2

+              15:             TypePointer Function 14

+              20:             TypeMatrix 7(fvec2) 3

+              21:             TypePointer UniformConstant 20

+         22(m32):     21(ptr) Variable UniformConstant

+              26:             TypeVector 6(float) 4

+              27:             TypePointer Output 26(fvec4)

+ 28(gl_Position):     27(ptr) Variable Output

+              31:             TypeMatrix 10(fvec3) 3

+              35:    6(float) Constant 0

+              40:             TypeMatrix 26(fvec4) 4

+              41:    6(float) Constant 1077936128

+              42:    6(float) Constant 1086324736

+              43:   26(fvec4) ConstantComposite 41 42 35 35

+              44:    6(float) Constant 1091567616

+              45:    6(float) Constant 1094713344

+              46:   26(fvec4) ConstantComposite 44 45 35 35

+              47:    6(float) Constant 1097859072

+              48:    6(float) Constant 1099956224

+              49:   26(fvec4) ConstantComposite 47 48 35 35

+              50:    6(float) Constant 1101529088

+              51:    6(float) Constant 1103101952

+              52:   26(fvec4) ConstantComposite 50 51 35 35

+              53:          40 ConstantComposite 43 46 49 52

+              54:             TypePointer Input 26(fvec4)

+          55(v4):     54(ptr) Variable Input

+              59:    6(float) Constant 1112014848

+              60:    6(float) Constant 1121714176

+              61:    6(float) Constant 1126825984

+              62:    6(float) Constant 1130758144

+              63:   26(fvec4) ConstantComposite 59 60 61 62

+              65:    6(float) Constant 1106247680

+              66:    6(float) Constant 1114636288

+              67:   26(fvec4) ConstantComposite 65 66 35 35

+              69:    6(float) Constant 1101004800

+              70:    6(float) Constant 1092616192

+              71:    6(float) Constant 1084227584

+              72:   26(fvec4) ConstantComposite 69 70 42 71

+              74:    7(fvec2) ConstantComposite 70 69

+              75:             TypeMatrix 26(fvec4) 2

+              76:   26(fvec4) ConstantComposite 41 35 35 35

+              77:   26(fvec4) ConstantComposite 35 41 35 35

+              78:          75 ConstantComposite 76 77

+              79:             TypeMatrix 7(fvec2) 4

+              80:    6(float) Constant 1065353216

+              81:    6(float) Constant 1073741824

+              82:    7(fvec2) ConstantComposite 80 81

+              83:    6(float) Constant 1082130432

+              84:    7(fvec2) ConstantComposite 41 83

+              85:    7(fvec2) ConstantComposite 71 42

+              86:    6(float) Constant 1088421888

+              87:    6(float) Constant 1090519040

+              88:    7(fvec2) ConstantComposite 86 87

+              89:          79 ConstantComposite 82 84 85 88

          4(main):           2 Function None 3

                5:             Label

-           10(a):      9(ptr) Variable Function

-         17(m23):     16(ptr) Variable Function

-           20(b):      9(ptr) Variable Function

-              14:   11(fvec3) Load 13(v3)

-              18:          15 Load 17(m23)

-              19:    8(fvec2) VectorTimesMatrix 14 18

-                              Store 10(a) 19

-              24:          21 Load 23(m32)

-              25:   11(fvec3) Load 13(v3)

-              26:    8(fvec2) MatrixTimesVector 24 25

-                              Store 20(b) 26

-              30:          15 Load 17(m23)

-              31:          21 Load 23(m32)

-              33:          32 MatrixTimesMatrix 30 31

-              34:   11(fvec3) Load 13(v3)

-              35:   11(fvec3) MatrixTimesVector 33 34

-              37:    7(float) CompositeExtract 35 0

-              38:    7(float) CompositeExtract 35 1

-              39:    7(float) CompositeExtract 35 2

-              40:   27(fvec4) CompositeConstruct 37 38 39 36

-              57:   27(fvec4) Load 56(v4)

-              58:   27(fvec4) MatrixTimesVector 54 57

-              59:   27(fvec4) FAdd 40 58

-              65:   27(fvec4) FAdd 59 64

-              69:   27(fvec4) FAdd 65 68

-              74:   27(fvec4) FAdd 69 73

-                              Store 29(gl_Position) 74

-                              Branch 6

-               6:             Label

+            9(a):      8(ptr) Variable Function

+         16(m23):     15(ptr) Variable Function

+           19(b):      8(ptr) Variable Function

+              13:   10(fvec3) Load 12(v3)

+              17:          14 Load 16(m23)

+              18:    7(fvec2) VectorTimesMatrix 13 17

+                              Store 9(a) 18

+              23:          20 Load 22(m32)

+              24:   10(fvec3) Load 12(v3)

+              25:    7(fvec2) MatrixTimesVector 23 24

+                              Store 19(b) 25

+              29:          14 Load 16(m23)

+              30:          20 Load 22(m32)

+              32:          31 MatrixTimesMatrix 29 30

+              33:   10(fvec3) Load 12(v3)

+              34:   10(fvec3) MatrixTimesVector 32 33

+              36:    6(float) CompositeExtract 34 0

+              37:    6(float) CompositeExtract 34 1

+              38:    6(float) CompositeExtract 34 2

+              39:   26(fvec4) CompositeConstruct 36 37 38 35

+              56:   26(fvec4) Load 55(v4)

+              57:   26(fvec4) MatrixTimesVector 53 56

+              58:   26(fvec4) FAdd 39 57

+              64:   26(fvec4) FAdd 58 63

+              68:   26(fvec4) FAdd 64 67

+              73:   26(fvec4) FAdd 68 72

+                              Store 28(gl_Position) 73

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.precision.frag.out b/Test/baseResults/spv.precision.frag.out
index 71f6e77..042faa4 100755
--- a/Test/baseResults/spv.precision.frag.out
+++ b/Test/baseResults/spv.precision.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 111

+// Id's are bound by 110

 

                               Source ESSL 300

                               Capability Shader

@@ -14,164 +14,162 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 13  "foo(vf3;"

-                              Name 12  "mv3"

-                              Name 20  "boolfun(vb2;"

-                              Name 19  "bv2"

-                              Name 24  "highfin"

-                              Name 37  "sum"

-                              Name 39  "uniform_medium"

-                              Name 41  "uniform_high"

-                              Name 47  "uniform_low"

-                              Name 52  "arg1"

-                              Name 54  "arg2"

-                              Name 56  "d"

-                              Name 58  "lowfin"

-                              Name 60  "mediumfin"

-                              Name 64  "global_highp"

-                              Name 68  "local_highp"

-                              Name 72  "mediumfout"

-                              Name 101  "ub2"

-                              Name 102  "param"

-                              Decorate 24(highfin) Smooth

-                              Decorate 37(sum) RelaxedPrecision

-                              Decorate 39(uniform_medium) RelaxedPrecision

-                              Decorate 47(uniform_low) RelaxedPrecision

-                              Decorate 52(arg1) RelaxedPrecision

-                              Decorate 54(arg2) RelaxedPrecision

-                              Decorate 56(d) RelaxedPrecision

-                              Decorate 58(lowfin) RelaxedPrecision

-                              Decorate 58(lowfin) Smooth

-                              Decorate 60(mediumfin) RelaxedPrecision

-                              Decorate 60(mediumfin) Smooth

-                              Decorate 72(mediumfout) RelaxedPrecision

+                              Name 12  "foo(vf3;"

+                              Name 11  "mv3"

+                              Name 19  "boolfun(vb2;"

+                              Name 18  "bv2"

+                              Name 23  "highfin"

+                              Name 36  "sum"

+                              Name 38  "uniform_medium"

+                              Name 40  "uniform_high"

+                              Name 46  "uniform_low"

+                              Name 51  "arg1"

+                              Name 53  "arg2"

+                              Name 55  "d"

+                              Name 57  "lowfin"

+                              Name 59  "mediumfin"

+                              Name 63  "global_highp"

+                              Name 67  "local_highp"

+                              Name 71  "mediumfout"

+                              Name 100  "ub2"

+                              Name 101  "param"

+                              Decorate 23(highfin) Smooth

+                              Decorate 36(sum) RelaxedPrecision

+                              Decorate 38(uniform_medium) RelaxedPrecision

+                              Decorate 46(uniform_low) RelaxedPrecision

+                              Decorate 51(arg1) RelaxedPrecision

+                              Decorate 53(arg2) RelaxedPrecision

+                              Decorate 55(d) RelaxedPrecision

+                              Decorate 57(lowfin) RelaxedPrecision

+                              Decorate 57(lowfin) Smooth

+                              Decorate 59(mediumfin) RelaxedPrecision

+                              Decorate 59(mediumfin) Smooth

+                              Decorate 71(mediumfout) RelaxedPrecision

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 3

-               9:             TypePointer Function 8(fvec3)

-              10:             TypeVector 7(float) 2

-              11:             TypeFunction 10(fvec2) 9(ptr)

-              15:             TypeBool

-              16:             TypeVector 15(bool) 2

-              17:             TypePointer Function 16(bvec2)

-              18:             TypeFunction 15(bool) 17(ptr)

-              22:             TypeVector 7(float) 4

-              23:             TypePointer Input 22(fvec4)

-     24(highfin):     23(ptr) Variable Input

-              29:    15(bool) ConstantFalse

-              30:    15(bool) ConstantTrue

-              31:   16(bvec2) ConstantComposite 29 30

-              35:             TypeInt 32 1

-              36:             TypePointer Function 35(int)

-              38:             TypePointer UniformConstant 35(int)

-39(uniform_medium):     38(ptr) Variable UniformConstant

-41(uniform_high):     38(ptr) Variable UniformConstant

- 47(uniform_low):     38(ptr) Variable UniformConstant

-              51:             TypePointer Function 7(float)

-              53:    7(float) Constant 1078774989

-              55:    7(float) Constant 1232730691

-              57:             TypePointer Input 7(float)

-      58(lowfin):     57(ptr) Variable Input

-   60(mediumfin):     57(ptr) Variable Input

-              63:             TypePointer PrivateGlobal 7(float)

-64(global_highp):     63(ptr) Variable PrivateGlobal

-              67:             TypePointer Function 22(fvec4)

-              71:             TypePointer Output 22(fvec4)

-  72(mediumfout):     71(ptr) Variable Output

-              81:     35(int) Constant 4

-              83:             TypeVector 35(int) 2

-             100:             TypePointer UniformConstant 16(bvec2)

-        101(ub2):    100(ptr) Variable UniformConstant

-             108:    7(float) Constant 1065353216

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 3

+               8:             TypePointer Function 7(fvec3)

+               9:             TypeVector 6(float) 2

+              10:             TypeFunction 9(fvec2) 8(ptr)

+              14:             TypeBool

+              15:             TypeVector 14(bool) 2

+              16:             TypePointer Function 15(bvec2)

+              17:             TypeFunction 14(bool) 16(ptr)

+              21:             TypeVector 6(float) 4

+              22:             TypePointer Input 21(fvec4)

+     23(highfin):     22(ptr) Variable Input

+              28:    14(bool) ConstantFalse

+              29:    14(bool) ConstantTrue

+              30:   15(bvec2) ConstantComposite 28 29

+              34:             TypeInt 32 1

+              35:             TypePointer Function 34(int)

+              37:             TypePointer UniformConstant 34(int)

+38(uniform_medium):     37(ptr) Variable UniformConstant

+40(uniform_high):     37(ptr) Variable UniformConstant

+ 46(uniform_low):     37(ptr) Variable UniformConstant

+              50:             TypePointer Function 6(float)

+              52:    6(float) Constant 1078774989

+              54:    6(float) Constant 1232730691

+              56:             TypePointer Input 6(float)

+      57(lowfin):     56(ptr) Variable Input

+   59(mediumfin):     56(ptr) Variable Input

+              62:             TypePointer PrivateGlobal 6(float)

+63(global_highp):     62(ptr) Variable PrivateGlobal

+              66:             TypePointer Function 21(fvec4)

+              70:             TypePointer Output 21(fvec4)

+  71(mediumfout):     70(ptr) Variable Output

+              80:     34(int) Constant 4

+              82:             TypeVector 34(int) 2

+              99:             TypePointer UniformConstant 15(bvec2)

+        100(ub2):     99(ptr) Variable UniformConstant

+             107:    6(float) Constant 1065353216

          4(main):           2 Function None 3

                5:             Label

-         37(sum):     36(ptr) Variable Function

-        52(arg1):     51(ptr) Variable Function

-        54(arg2):     51(ptr) Variable Function

-           56(d):     51(ptr) Variable Function

- 68(local_highp):     67(ptr) Variable Function

-      102(param):     17(ptr) Variable Function

-              40:     35(int) Load 39(uniform_medium)

-              42:     35(int) Load 41(uniform_high)

-              43:     35(int) IAdd 40 42

-                              Store 37(sum) 43

-              44:     35(int) Load 41(uniform_high)

-              45:     35(int) Load 37(sum)

-              46:     35(int) IAdd 45 44

-                              Store 37(sum) 46

-              48:     35(int) Load 47(uniform_low)

-              49:     35(int) Load 37(sum)

-              50:     35(int) IAdd 49 48

-                              Store 37(sum) 50

-                              Store 52(arg1) 53

-                              Store 54(arg2) 55

-              59:    7(float) Load 58(lowfin)

-              61:    7(float) Load 60(mediumfin)

-              62:    7(float) ExtInst 1(GLSL.std.450) 66(Distance) 59 61

-                              Store 56(d) 62

-              65:   22(fvec4) Load 24(highfin)

-              66:    7(float) ExtInst 1(GLSL.std.450) 65(Length) 65

-                              Store 64(global_highp) 66

-              69:    7(float) Load 64(global_highp)

-              70:   22(fvec4) CompositeConstruct 69 69 69 69

-                              Store 68(local_highp) 70

-              73:    7(float) Load 56(d)

-              74:    7(float) ExtInst 1(GLSL.std.450) 13(Sin) 73

-              75:   22(fvec4) CompositeConstruct 74 74 74 74

-              76:    7(float) Load 54(arg2)

-              77:   22(fvec4) CompositeConstruct 76 76 76 76

-              78:   22(fvec4) FAdd 75 77

-              79:   22(fvec4) Load 68(local_highp)

-              80:   22(fvec4) FAdd 78 79

-                              Store 72(mediumfout) 80

-              82:     35(int) Load 47(uniform_low)

-              84:   83(ivec2) CompositeConstruct 82 82

-              85:     35(int) Load 41(uniform_high)

-              86:   83(ivec2) CompositeConstruct 85 85

-              87:   83(ivec2) IMul 84 86

-              88:     35(int) Load 41(uniform_high)

-              89:   83(ivec2) CompositeConstruct 88 88

-              90:   83(ivec2) IAdd 87 89

-              91:     35(int) CompositeExtract 90 0

-              92:     35(int) IAdd 81 91

-              93:     35(int) Load 37(sum)

-              94:     35(int) IAdd 93 92

-                              Store 37(sum) 94

-              95:     35(int) Load 37(sum)

-              96:    7(float) ConvertSToF 95

-              97:   22(fvec4) CompositeConstruct 96 96 96 96

-              98:   22(fvec4) Load 72(mediumfout)

-              99:   22(fvec4) FAdd 98 97

-                              Store 72(mediumfout) 99

-             103:   16(bvec2) Load 101(ub2)

-                              Store 102(param) 103

-             104:    15(bool) FunctionCall 20(boolfun(vb2;) 102(param)

-                              SelectionMerge 106 None

-                              BranchConditional 104 105 106

-             105:               Label

-             107:   22(fvec4)   Load 72(mediumfout)

-             109:   22(fvec4)   CompositeConstruct 108 108 108 108

-             110:   22(fvec4)   FAdd 107 109

-                                Store 72(mediumfout) 110

-                                Branch 106

-             106:             Label

-                              Branch 6

-               6:             Label

+         36(sum):     35(ptr) Variable Function

+        51(arg1):     50(ptr) Variable Function

+        53(arg2):     50(ptr) Variable Function

+           55(d):     50(ptr) Variable Function

+ 67(local_highp):     66(ptr) Variable Function

+      101(param):     16(ptr) Variable Function

+              39:     34(int) Load 38(uniform_medium)

+              41:     34(int) Load 40(uniform_high)

+              42:     34(int) IAdd 39 41

+                              Store 36(sum) 42

+              43:     34(int) Load 40(uniform_high)

+              44:     34(int) Load 36(sum)

+              45:     34(int) IAdd 44 43

+                              Store 36(sum) 45

+              47:     34(int) Load 46(uniform_low)

+              48:     34(int) Load 36(sum)

+              49:     34(int) IAdd 48 47

+                              Store 36(sum) 49

+                              Store 51(arg1) 52

+                              Store 53(arg2) 54

+              58:    6(float) Load 57(lowfin)

+              60:    6(float) Load 59(mediumfin)

+              61:    6(float) ExtInst 1(GLSL.std.450) 66(Distance) 58 60

+                              Store 55(d) 61

+              64:   21(fvec4) Load 23(highfin)

+              65:    6(float) ExtInst 1(GLSL.std.450) 65(Length) 64

+                              Store 63(global_highp) 65

+              68:    6(float) Load 63(global_highp)

+              69:   21(fvec4) CompositeConstruct 68 68 68 68

+                              Store 67(local_highp) 69

+              72:    6(float) Load 55(d)

+              73:    6(float) ExtInst 1(GLSL.std.450) 13(Sin) 72

+              74:   21(fvec4) CompositeConstruct 73 73 73 73

+              75:    6(float) Load 53(arg2)

+              76:   21(fvec4) CompositeConstruct 75 75 75 75

+              77:   21(fvec4) FAdd 74 76

+              78:   21(fvec4) Load 67(local_highp)

+              79:   21(fvec4) FAdd 77 78

+                              Store 71(mediumfout) 79

+              81:     34(int) Load 46(uniform_low)

+              83:   82(ivec2) CompositeConstruct 81 81

+              84:     34(int) Load 40(uniform_high)

+              85:   82(ivec2) CompositeConstruct 84 84

+              86:   82(ivec2) IMul 83 85

+              87:     34(int) Load 40(uniform_high)

+              88:   82(ivec2) CompositeConstruct 87 87

+              89:   82(ivec2) IAdd 86 88

+              90:     34(int) CompositeExtract 89 0

+              91:     34(int) IAdd 80 90

+              92:     34(int) Load 36(sum)

+              93:     34(int) IAdd 92 91

+                              Store 36(sum) 93

+              94:     34(int) Load 36(sum)

+              95:    6(float) ConvertSToF 94

+              96:   21(fvec4) CompositeConstruct 95 95 95 95

+              97:   21(fvec4) Load 71(mediumfout)

+              98:   21(fvec4) FAdd 97 96

+                              Store 71(mediumfout) 98

+             102:   15(bvec2) Load 100(ub2)

+                              Store 101(param) 102

+             103:    14(bool) FunctionCall 19(boolfun(vb2;) 101(param)

+                              SelectionMerge 105 None

+                              BranchConditional 103 104 105

+             104:               Label

+             106:   21(fvec4)   Load 71(mediumfout)

+             108:   21(fvec4)   CompositeConstruct 107 107 107 107

+             109:   21(fvec4)   FAdd 106 108

+                                Store 71(mediumfout) 109

+                                Branch 105

+             105:             Label

                               Return

                               FunctionEnd

-    13(foo(vf3;):   10(fvec2) Function None 11

-         12(mv3):      9(ptr) FunctionParameter

-              14:             Label

-              25:   22(fvec4) Load 24(highfin)

-              26:   10(fvec2) VectorShuffle 25 25 0 1

-                              ReturnValue 26

+    12(foo(vf3;):    9(fvec2) Function None 10

+         11(mv3):      8(ptr) FunctionParameter

+              13:             Label

+              24:   21(fvec4) Load 23(highfin)

+              25:    9(fvec2) VectorShuffle 24 24 0 1

+                              ReturnValue 25

                               FunctionEnd

-20(boolfun(vb2;):    15(bool) Function None 18

-         19(bv2):     17(ptr) FunctionParameter

-              21:             Label

-              28:   16(bvec2) Load 19(bv2)

-              32:   16(bvec2) IEqual 28 31

-              33:    15(bool) All 32

-                              ReturnValue 33

+19(boolfun(vb2;):    14(bool) Function None 17

+         18(bv2):     16(ptr) FunctionParameter

+              20:             Label

+              27:   15(bvec2) Load 18(bv2)

+              31:   15(bvec2) IEqual 27 30

+              32:    14(bool) All 31

+                              ReturnValue 32

                               FunctionEnd

diff --git a/Test/baseResults/spv.prepost.frag.out b/Test/baseResults/spv.prepost.frag.out
index 5c85d5e..22f41a6 100755
--- a/Test/baseResults/spv.prepost.frag.out
+++ b/Test/baseResults/spv.prepost.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 97

+// Id's are bound by 96

 

                               Source GLSL 140

                               Capability Shader

@@ -14,139 +14,137 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "index"

-                              Name 15  "s"

-                              MemberName 15(s) 0  "y"

-                              Name 17  "str"

-                              Name 23  "t"

-                              Name 51  "x"

-                              Name 62  "y"

-                              Name 67  "z"

-                              Name 74  "v"

-                              Name 93  "gl_FragColor"

-                              Decorate 93(gl_FragColor) BuiltIn FragColor

+                              Name 8  "index"

+                              Name 14  "s"

+                              MemberName 14(s) 0  "y"

+                              Name 16  "str"

+                              Name 22  "t"

+                              Name 50  "x"

+                              Name 61  "y"

+                              Name 66  "z"

+                              Name 73  "v"

+                              Name 92  "gl_FragColor"

+                              Decorate 92(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 5

-              11:             TypeFloat 32

-              12:             TypeInt 32 0

-              13:     12(int) Constant 5

-              14:             TypeArray 11(float) 13

-           15(s):             TypeStruct 14

-              16:             TypePointer Function 15(s)

-              18:      7(int) Constant 0

-              19:      7(int) Constant 4

-              20:   11(float) Constant 1073741824

-              21:             TypePointer Function 11(float)

-              25:      7(int) Constant 1

-              29:   11(float) Constant 1065353216

-              72:             TypeVector 11(float) 4

-              73:             TypePointer Function 72(fvec4)

-              75:   11(float) Constant 1077936128

-              76:   11(float) Constant 1082130432

-              77:   72(fvec4) ConstantComposite 29 20 75 76

-              92:             TypePointer Output 72(fvec4)

-93(gl_FragColor):     92(ptr) Variable Output

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 5

+              10:             TypeFloat 32

+              11:             TypeInt 32 0

+              12:     11(int) Constant 5

+              13:             TypeArray 10(float) 12

+           14(s):             TypeStruct 13

+              15:             TypePointer Function 14(s)

+              17:      6(int) Constant 0

+              18:      6(int) Constant 4

+              19:   10(float) Constant 1073741824

+              20:             TypePointer Function 10(float)

+              24:      6(int) Constant 1

+              28:   10(float) Constant 1065353216

+              71:             TypeVector 10(float) 4

+              72:             TypePointer Function 71(fvec4)

+              74:   10(float) Constant 1077936128

+              75:   10(float) Constant 1082130432

+              76:   71(fvec4) ConstantComposite 28 19 74 75

+              91:             TypePointer Output 71(fvec4)

+92(gl_FragColor):     91(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-        9(index):      8(ptr) Variable Function

-         17(str):     16(ptr) Variable Function

-           23(t):     21(ptr) Variable Function

-           51(x):     21(ptr) Variable Function

-           62(y):     21(ptr) Variable Function

-           67(z):     21(ptr) Variable Function

-           74(v):     73(ptr) Variable Function

-                              Store 9(index) 10

-              22:     21(ptr) AccessChain 17(str) 18 19

-                              Store 22 20

-              24:      7(int) Load 9(index)

-              26:      7(int) ISub 24 25

-                              Store 9(index) 26

-              27:     21(ptr) AccessChain 17(str) 18 26

-              28:   11(float) Load 27

-              30:   11(float) FAdd 28 29

-                              Store 27 30

-                              Store 23(t) 30

-              31:   11(float) Load 23(t)

-              32:     21(ptr) AccessChain 17(str) 18 19

-              33:   11(float) Load 32

-              34:   11(float) FAdd 33 31

-              35:     21(ptr) AccessChain 17(str) 18 19

-                              Store 35 34

-              36:     21(ptr) AccessChain 17(str) 18 19

-              37:   11(float) Load 36

-              38:   11(float) FSub 37 29

-                              Store 36 38

-                              Store 23(t) 37

-              39:      7(int) Load 9(index)

-              40:      7(int) IAdd 39 25

-                              Store 9(index) 40

-              41:   11(float) Load 23(t)

-              42:     21(ptr) AccessChain 17(str) 18 39

-              43:   11(float) Load 42

-              44:   11(float) FAdd 43 41

-              45:     21(ptr) AccessChain 17(str) 18 39

-                              Store 45 44

-              46:      7(int) Load 9(index)

-              47:      7(int) ISub 46 25

-                              Store 9(index) 47

-              48:     21(ptr) AccessChain 17(str) 18 47

-              49:   11(float) Load 48

-              50:   11(float) FSub 49 29

-                              Store 48 50

-              52:     21(ptr) AccessChain 17(str) 18 19

-              53:   11(float) Load 52

-                              Store 51(x) 53

-              54:   11(float) Load 51(x)

-              55:   11(float) FAdd 54 29

-                              Store 51(x) 55

-              56:   11(float) Load 51(x)

-              57:   11(float) FSub 56 29

-                              Store 51(x) 57

-              58:   11(float) Load 51(x)

-              59:   11(float) FAdd 58 29

-                              Store 51(x) 59

-              60:   11(float) Load 51(x)

-              61:   11(float) FSub 60 29

-                              Store 51(x) 61

-              63:   11(float) Load 51(x)

-              64:   11(float) Load 51(x)

-              65:   11(float) FAdd 64 29

-                              Store 51(x) 65

-              66:   11(float) FMul 63 65

-                              Store 62(y) 66

-              68:   11(float) Load 62(y)

-              69:   11(float) Load 51(x)

-              70:   11(float) FSub 69 29

-                              Store 51(x) 70

-              71:   11(float) FMul 68 69

-                              Store 67(z) 71

-                              Store 74(v) 77

-              78:   72(fvec4) Load 74(v)

-              79:   11(float) CompositeExtract 78 2

-              80:   11(float) FSub 79 29

-              81:   72(fvec4) Load 74(v)

-              82:   72(fvec4) CompositeInsert 80 81 2

-                              Store 74(v) 82

-              83:   72(fvec4) Load 74(v)

-              84:   72(fvec4) CompositeInsert 79 83 1

-                              Store 74(v) 84

-              85:   72(fvec4) Load 74(v)

-              86:   11(float) CompositeExtract 85 3

-              87:   11(float) FSub 86 29

-              88:   72(fvec4) Load 74(v)

-              89:   72(fvec4) CompositeInsert 87 88 3

-                              Store 74(v) 89

-              90:   72(fvec4) Load 74(v)

-              91:   72(fvec4) CompositeInsert 87 90 0

-                              Store 74(v) 91

-              94:   11(float) Load 67(z)

-              95:   72(fvec4) Load 74(v)

-              96:   72(fvec4) VectorTimesScalar 95 94

-                              Store 93(gl_FragColor) 96

-                              Branch 6

-               6:             Label

+        8(index):      7(ptr) Variable Function

+         16(str):     15(ptr) Variable Function

+           22(t):     20(ptr) Variable Function

+           50(x):     20(ptr) Variable Function

+           61(y):     20(ptr) Variable Function

+           66(z):     20(ptr) Variable Function

+           73(v):     72(ptr) Variable Function

+                              Store 8(index) 9

+              21:     20(ptr) AccessChain 16(str) 17 18

+                              Store 21 19

+              23:      6(int) Load 8(index)

+              25:      6(int) ISub 23 24

+                              Store 8(index) 25

+              26:     20(ptr) AccessChain 16(str) 17 25

+              27:   10(float) Load 26

+              29:   10(float) FAdd 27 28

+                              Store 26 29

+                              Store 22(t) 29

+              30:   10(float) Load 22(t)

+              31:     20(ptr) AccessChain 16(str) 17 18

+              32:   10(float) Load 31

+              33:   10(float) FAdd 32 30

+              34:     20(ptr) AccessChain 16(str) 17 18

+                              Store 34 33

+              35:     20(ptr) AccessChain 16(str) 17 18

+              36:   10(float) Load 35

+              37:   10(float) FSub 36 28

+                              Store 35 37

+                              Store 22(t) 36

+              38:      6(int) Load 8(index)

+              39:      6(int) IAdd 38 24

+                              Store 8(index) 39

+              40:   10(float) Load 22(t)

+              41:     20(ptr) AccessChain 16(str) 17 38

+              42:   10(float) Load 41

+              43:   10(float) FAdd 42 40

+              44:     20(ptr) AccessChain 16(str) 17 38

+                              Store 44 43

+              45:      6(int) Load 8(index)

+              46:      6(int) ISub 45 24

+                              Store 8(index) 46

+              47:     20(ptr) AccessChain 16(str) 17 46

+              48:   10(float) Load 47

+              49:   10(float) FSub 48 28

+                              Store 47 49

+              51:     20(ptr) AccessChain 16(str) 17 18

+              52:   10(float) Load 51

+                              Store 50(x) 52

+              53:   10(float) Load 50(x)

+              54:   10(float) FAdd 53 28

+                              Store 50(x) 54

+              55:   10(float) Load 50(x)

+              56:   10(float) FSub 55 28

+                              Store 50(x) 56

+              57:   10(float) Load 50(x)

+              58:   10(float) FAdd 57 28

+                              Store 50(x) 58

+              59:   10(float) Load 50(x)

+              60:   10(float) FSub 59 28

+                              Store 50(x) 60

+              62:   10(float) Load 50(x)

+              63:   10(float) Load 50(x)

+              64:   10(float) FAdd 63 28

+                              Store 50(x) 64

+              65:   10(float) FMul 62 64

+                              Store 61(y) 65

+              67:   10(float) Load 61(y)

+              68:   10(float) Load 50(x)

+              69:   10(float) FSub 68 28

+                              Store 50(x) 69

+              70:   10(float) FMul 67 68

+                              Store 66(z) 70

+                              Store 73(v) 76

+              77:   71(fvec4) Load 73(v)

+              78:   10(float) CompositeExtract 77 2

+              79:   10(float) FSub 78 28

+              80:   71(fvec4) Load 73(v)

+              81:   71(fvec4) CompositeInsert 79 80 2

+                              Store 73(v) 81

+              82:   71(fvec4) Load 73(v)

+              83:   71(fvec4) CompositeInsert 78 82 1

+                              Store 73(v) 83

+              84:   71(fvec4) Load 73(v)

+              85:   10(float) CompositeExtract 84 3

+              86:   10(float) FSub 85 28

+              87:   71(fvec4) Load 73(v)

+              88:   71(fvec4) CompositeInsert 86 87 3

+                              Store 73(v) 88

+              89:   71(fvec4) Load 73(v)

+              90:   71(fvec4) CompositeInsert 86 89 0

+                              Store 73(v) 90

+              93:   10(float) Load 66(z)

+              94:   71(fvec4) Load 73(v)

+              95:   71(fvec4) VectorTimesScalar 94 93

+                              Store 92(gl_FragColor) 95

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.qualifiers.vert.out b/Test/baseResults/spv.qualifiers.vert.out
index 46d3b0e..90b7f72 100755
--- a/Test/baseResults/spv.qualifiers.vert.out
+++ b/Test/baseResults/spv.qualifiers.vert.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 26

+// Id's are bound by 25

 

                               Source GLSL 430

                               Capability Shader

@@ -15,52 +15,50 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "outVc"

-                              Name 12  "inV"

-                              Name 14  "outVs"

-                              Name 16  "outVf"

-                              Name 18  "outVn"

-                              Name 20  "outVcn"

-                              Name 24  "gl_VertexID"

-                              Name 25  "gl_InstanceID"

-                              Decorate 10(outVc) Smooth

-                              Decorate 14(outVs) Smooth

-                              Decorate 16(outVf) Flat

-                              Decorate 18(outVn) Noperspective

-                              Decorate 20(outVcn) Noperspective

-                              Decorate 24(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_VertexID) NoStaticUse

-                              Decorate 25(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 25(gl_InstanceID) NoStaticUse

+                              Name 9  "outVc"

+                              Name 11  "inV"

+                              Name 13  "outVs"

+                              Name 15  "outVf"

+                              Name 17  "outVn"

+                              Name 19  "outVcn"

+                              Name 23  "gl_VertexID"

+                              Name 24  "gl_InstanceID"

+                              Decorate 9(outVc) Smooth

+                              Decorate 13(outVs) Smooth

+                              Decorate 15(outVf) Flat

+                              Decorate 17(outVn) Noperspective

+                              Decorate 19(outVcn) Noperspective

+                              Decorate 23(gl_VertexID) BuiltIn VertexId

+                              Decorate 23(gl_VertexID) NoStaticUse

+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 24(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Output 8(fvec4)

-       10(outVc):      9(ptr) Variable Output

-              11:             TypePointer Input 8(fvec4)

-         12(inV):     11(ptr) Variable Input

-       14(outVs):      9(ptr) Variable Output

-       16(outVf):      9(ptr) Variable Output

-       18(outVn):      9(ptr) Variable Output

-      20(outVcn):      9(ptr) Variable Output

-              22:             TypeInt 32 1

-              23:             TypePointer Input 22(int)

- 24(gl_VertexID):     23(ptr) Variable Input

-25(gl_InstanceID):     23(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Output 7(fvec4)

+        9(outVc):      8(ptr) Variable Output

+              10:             TypePointer Input 7(fvec4)

+         11(inV):     10(ptr) Variable Input

+       13(outVs):      8(ptr) Variable Output

+       15(outVf):      8(ptr) Variable Output

+       17(outVn):      8(ptr) Variable Output

+      19(outVcn):      8(ptr) Variable Output

+              21:             TypeInt 32 1

+              22:             TypePointer Input 21(int)

+ 23(gl_VertexID):     22(ptr) Variable Input

+24(gl_InstanceID):     22(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              13:    8(fvec4) Load 12(inV)

-                              Store 10(outVc) 13

-              15:    8(fvec4) Load 12(inV)

-                              Store 14(outVs) 15

-              17:    8(fvec4) Load 12(inV)

-                              Store 16(outVf) 17

-              19:    8(fvec4) Load 12(inV)

-                              Store 18(outVn) 19

-              21:    8(fvec4) Load 12(inV)

-                              Store 20(outVcn) 21

-                              Branch 6

-               6:             Label

+              12:    7(fvec4) Load 11(inV)

+                              Store 9(outVc) 12

+              14:    7(fvec4) Load 11(inV)

+                              Store 13(outVs) 14

+              16:    7(fvec4) Load 11(inV)

+                              Store 15(outVf) 16

+              18:    7(fvec4) Load 11(inV)

+                              Store 17(outVn) 18

+              20:    7(fvec4) Load 11(inV)

+                              Store 19(outVcn) 20

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.set.vert.out b/Test/baseResults/spv.set.vert.out
index 396cfb3..77868fa 100755
--- a/Test/baseResults/spv.set.vert.out
+++ b/Test/baseResults/spv.set.vert.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 26

+// Id's are bound by 25

 

                               Source GLSL 450

                               Capability Shader

@@ -15,50 +15,48 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 11  "setBuf"

-                              MemberName 11(setBuf) 0  "color"

-                              Name 13  "setBufInst"

-                              Name 22  "sampler"

-                              Name 24  "gl_VertexID"

-                              Name 25  "gl_InstanceID"

-                              Decorate 10(color) Smooth

-                              Decorate 11(setBuf) GLSLShared

-                              Decorate 11(setBuf) BufferBlock

-                              Decorate 13(setBufInst) DescriptorSet 0

-                              Decorate 13(setBufInst) Binding 8

-                              Decorate 22(sampler) DescriptorSet 4

-                              Decorate 22(sampler) Binding 7

-                              Decorate 22(sampler) NoStaticUse

-                              Decorate 24(gl_VertexID) BuiltIn VertexId

-                              Decorate 24(gl_VertexID) NoStaticUse

-                              Decorate 25(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 25(gl_InstanceID) NoStaticUse

+                              Name 9  "color"

+                              Name 10  "setBuf"

+                              MemberName 10(setBuf) 0  "color"

+                              Name 12  "setBufInst"

+                              Name 21  "sampler"

+                              Name 23  "gl_VertexID"

+                              Name 24  "gl_InstanceID"

+                              Decorate 9(color) Smooth

+                              Decorate 10(setBuf) GLSLShared

+                              Decorate 10(setBuf) BufferBlock

+                              Decorate 12(setBufInst) DescriptorSet 0

+                              Decorate 12(setBufInst) Binding 8

+                              Decorate 21(sampler) DescriptorSet 4

+                              Decorate 21(sampler) Binding 7

+                              Decorate 21(sampler) NoStaticUse

+                              Decorate 23(gl_VertexID) BuiltIn VertexId

+                              Decorate 23(gl_VertexID) NoStaticUse

+                              Decorate 24(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 24(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Output 8(fvec4)

-       10(color):      9(ptr) Variable Output

-      11(setBuf):             TypeStruct 8(fvec4)

-              12:             TypePointer Uniform 11(setBuf)

-  13(setBufInst):     12(ptr) Variable Uniform

-              14:             TypeInt 32 1

-              15:     14(int) Constant 0

-              16:             TypePointer Uniform 8(fvec4)

-              19:             TypeImage 7(float) 2D sampled format:Unknown

-              20:             TypeSampledImage 19

-              21:             TypePointer UniformConstant 20

-     22(sampler):     21(ptr) Variable UniformConstant

-              23:             TypePointer Input 14(int)

- 24(gl_VertexID):     23(ptr) Variable Input

-25(gl_InstanceID):     23(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Output 7(fvec4)

+        9(color):      8(ptr) Variable Output

+      10(setBuf):             TypeStruct 7(fvec4)

+              11:             TypePointer Uniform 10(setBuf)

+  12(setBufInst):     11(ptr) Variable Uniform

+              13:             TypeInt 32 1

+              14:     13(int) Constant 0

+              15:             TypePointer Uniform 7(fvec4)

+              18:             TypeImage 6(float) 2D sampled format:Unknown

+              19:             TypeSampledImage 18

+              20:             TypePointer UniformConstant 19

+     21(sampler):     20(ptr) Variable UniformConstant

+              22:             TypePointer Input 13(int)

+ 23(gl_VertexID):     22(ptr) Variable Input

+24(gl_InstanceID):     22(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              17:     16(ptr) AccessChain 13(setBufInst) 15

-              18:    8(fvec4) Load 17

-                              Store 10(color) 18

-                              Branch 6

-               6:             Label

+              16:     15(ptr) AccessChain 12(setBufInst) 14

+              17:    7(fvec4) Load 16

+                              Store 9(color) 17

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.simpleFunctionCall.frag.out b/Test/baseResults/spv.simpleFunctionCall.frag.out
index 5b4ecd0..3c04142 100755
--- a/Test/baseResults/spv.simpleFunctionCall.frag.out
+++ b/Test/baseResults/spv.simpleFunctionCall.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 23

+// Id's are bound by 22

 

                               Source GLSL 150

                               Capability Shader

@@ -16,38 +16,36 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "foo("

-                              Name 13  "BaseColor"

-                              Name 17  "gl_FragColor"

-                              Name 20  "bigColor"

-                              Name 22  "d"

-                              Decorate 13(BaseColor) Smooth

-                              Decorate 17(gl_FragColor) BuiltIn FragColor

-                              Decorate 20(bigColor) NoStaticUse

-                              Decorate 22(d) NoStaticUse

+                              Name 9  "foo("

+                              Name 12  "BaseColor"

+                              Name 16  "gl_FragColor"

+                              Name 19  "bigColor"

+                              Name 21  "d"

+                              Decorate 12(BaseColor) Smooth

+                              Decorate 16(gl_FragColor) BuiltIn FragColor

+                              Decorate 19(bigColor) NoStaticUse

+                              Decorate 21(d) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypeFunction 8(fvec4)

-              12:             TypePointer Input 8(fvec4)

-   13(BaseColor):     12(ptr) Variable Input

-              16:             TypePointer Output 8(fvec4)

-17(gl_FragColor):     16(ptr) Variable Output

-              19:             TypePointer UniformConstant 8(fvec4)

-    20(bigColor):     19(ptr) Variable UniformConstant

-              21:             TypePointer UniformConstant 7(float)

-           22(d):     21(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypeFunction 7(fvec4)

+              11:             TypePointer Input 7(fvec4)

+   12(BaseColor):     11(ptr) Variable Input

+              15:             TypePointer Output 7(fvec4)

+16(gl_FragColor):     15(ptr) Variable Output

+              18:             TypePointer UniformConstant 7(fvec4)

+    19(bigColor):     18(ptr) Variable UniformConstant

+              20:             TypePointer UniformConstant 6(float)

+           21(d):     20(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-              18:    8(fvec4) FunctionCall 10(foo()

-                              Store 17(gl_FragColor) 18

-                              Branch 6

-               6:             Label

+              17:    7(fvec4) FunctionCall 9(foo()

+                              Store 16(gl_FragColor) 17

                               Return

                               FunctionEnd

-        10(foo():    8(fvec4) Function None 9

-              11:             Label

-              14:    8(fvec4) Load 13(BaseColor)

-                              ReturnValue 14

+         9(foo():    7(fvec4) Function None 8

+              10:             Label

+              13:    7(fvec4) Load 12(BaseColor)

+                              ReturnValue 13

                               FunctionEnd

diff --git a/Test/baseResults/spv.simpleMat.vert.out b/Test/baseResults/spv.simpleMat.vert.out
index 4cae545..e2502c1 100755
--- a/Test/baseResults/spv.simpleMat.vert.out
+++ b/Test/baseResults/spv.simpleMat.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 44

+// Id's are bound by 43

 

                               Source GLSL 330

                               Capability Shader

@@ -13,64 +13,62 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "glPos"

-                              Name 13  "mvp"

-                              Name 16  "v"

-                              Name 20  "f"

-                              Name 24  "am3"

-                              Name 35  "arraym"

-                              Name 42  "gl_VertexID"

-                              Name 43  "gl_InstanceID"

-                              Decorate 10(glPos) Smooth

-                              Decorate 20(f) Smooth

-                              Decorate 42(gl_VertexID) BuiltIn VertexId

-                              Decorate 42(gl_VertexID) NoStaticUse

-                              Decorate 43(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 43(gl_InstanceID) NoStaticUse

+                              Name 9  "glPos"

+                              Name 12  "mvp"

+                              Name 15  "v"

+                              Name 19  "f"

+                              Name 23  "am3"

+                              Name 34  "arraym"

+                              Name 41  "gl_VertexID"

+                              Name 42  "gl_InstanceID"

+                              Decorate 9(glPos) Smooth

+                              Decorate 19(f) Smooth

+                              Decorate 41(gl_VertexID) BuiltIn VertexId

+                              Decorate 41(gl_VertexID) NoStaticUse

+                              Decorate 42(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 42(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Output 8(fvec4)

-       10(glPos):      9(ptr) Variable Output

-              11:             TypeMatrix 8(fvec4) 4

-              12:             TypePointer UniformConstant 11

-         13(mvp):     12(ptr) Variable UniformConstant

-              15:             TypePointer Input 8(fvec4)

-           16(v):     15(ptr) Variable Input

-              19:             TypePointer Output 7(float)

-           20(f):     19(ptr) Variable Output

-              21:             TypeVector 7(float) 3

-              22:             TypeMatrix 21(fvec3) 3

-              23:             TypePointer Input 22

-         24(am3):     23(ptr) Variable Input

-              25:             TypeInt 32 1

-              26:     25(int) Constant 2

-              27:             TypePointer Input 21(fvec3)

-              31:             TypeInt 32 0

-              32:     31(int) Constant 3

-              33:             TypeArray 11 32

-              34:             TypePointer Input 33

-      35(arraym):     34(ptr) Variable Input

-              36:     25(int) Constant 1

-              41:             TypePointer Input 25(int)

- 42(gl_VertexID):     41(ptr) Variable Input

-43(gl_InstanceID):     41(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Output 7(fvec4)

+        9(glPos):      8(ptr) Variable Output

+              10:             TypeMatrix 7(fvec4) 4

+              11:             TypePointer UniformConstant 10

+         12(mvp):     11(ptr) Variable UniformConstant

+              14:             TypePointer Input 7(fvec4)

+           15(v):     14(ptr) Variable Input

+              18:             TypePointer Output 6(float)

+           19(f):     18(ptr) Variable Output

+              20:             TypeVector 6(float) 3

+              21:             TypeMatrix 20(fvec3) 3

+              22:             TypePointer Input 21

+         23(am3):     22(ptr) Variable Input

+              24:             TypeInt 32 1

+              25:     24(int) Constant 2

+              26:             TypePointer Input 20(fvec3)

+              30:             TypeInt 32 0

+              31:     30(int) Constant 3

+              32:             TypeArray 10 31

+              33:             TypePointer Input 32

+      34(arraym):     33(ptr) Variable Input

+              35:     24(int) Constant 1

+              40:             TypePointer Input 24(int)

+ 41(gl_VertexID):     40(ptr) Variable Input

+42(gl_InstanceID):     40(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              14:          11 Load 13(mvp)

-              17:    8(fvec4) Load 16(v)

-              18:    8(fvec4) MatrixTimesVector 14 17

-                              Store 10(glPos) 18

-              28:     27(ptr) AccessChain 24(am3) 26

-              29:   21(fvec3) Load 28

-              30:    7(float) CompositeExtract 29 1

-              37:     15(ptr) AccessChain 35(arraym) 36 26

-              38:    8(fvec4) Load 37

-              39:    7(float) CompositeExtract 38 3

-              40:    7(float) FAdd 30 39

-                              Store 20(f) 40

-                              Branch 6

-               6:             Label

+              13:          10 Load 12(mvp)

+              16:    7(fvec4) Load 15(v)

+              17:    7(fvec4) MatrixTimesVector 13 16

+                              Store 9(glPos) 17

+              27:     26(ptr) AccessChain 23(am3) 25

+              28:   20(fvec3) Load 27

+              29:    6(float) CompositeExtract 28 1

+              36:     14(ptr) AccessChain 34(arraym) 35 25

+              37:    7(fvec4) Load 36

+              38:    6(float) CompositeExtract 37 3

+              39:    6(float) FAdd 29 38

+                              Store 19(f) 39

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.structAssignment.frag.out b/Test/baseResults/spv.structAssignment.frag.out
index 4ae7be9..e7cfd0e 100755
--- a/Test/baseResults/spv.structAssignment.frag.out
+++ b/Test/baseResults/spv.structAssignment.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 51

+// Id's are bound by 50

 

                               Source GLSL 130

                               Capability Shader

@@ -16,84 +16,82 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "lunarStruct1"

-                              MemberName 9(lunarStruct1) 0  "i"

-                              MemberName 9(lunarStruct1) 1  "f"

-                              Name 10  "lunarStruct2"

-                              MemberName 10(lunarStruct2) 0  "i"

-                              MemberName 10(lunarStruct2) 1  "f"

-                              MemberName 10(lunarStruct2) 2  "s1_1"

-                              Name 11  "lunarStruct3"

-                              MemberName 11(lunarStruct3) 0  "s2_1"

-                              MemberName 11(lunarStruct3) 1  "i"

-                              MemberName 11(lunarStruct3) 2  "f"

-                              MemberName 11(lunarStruct3) 3  "s1_1"

-                              Name 13  "foo3"

-                              Name 23  "locals2"

-                              Name 28  "foo2"

-                              Name 32  "gl_FragColor"

-                              Name 41  "sampler"

-                              Name 45  "coord"

-                              Name 50  "foo"

-                              Decorate 32(gl_FragColor) BuiltIn FragColor

-                              Decorate 45(coord) Smooth

-                              Decorate 50(foo) NoStaticUse

+                              Name 8  "lunarStruct1"

+                              MemberName 8(lunarStruct1) 0  "i"

+                              MemberName 8(lunarStruct1) 1  "f"

+                              Name 9  "lunarStruct2"

+                              MemberName 9(lunarStruct2) 0  "i"

+                              MemberName 9(lunarStruct2) 1  "f"

+                              MemberName 9(lunarStruct2) 2  "s1_1"

+                              Name 10  "lunarStruct3"

+                              MemberName 10(lunarStruct3) 0  "s2_1"

+                              MemberName 10(lunarStruct3) 1  "i"

+                              MemberName 10(lunarStruct3) 2  "f"

+                              MemberName 10(lunarStruct3) 3  "s1_1"

+                              Name 12  "foo3"

+                              Name 22  "locals2"

+                              Name 27  "foo2"

+                              Name 31  "gl_FragColor"

+                              Name 40  "sampler"

+                              Name 44  "coord"

+                              Name 49  "foo"

+                              Decorate 31(gl_FragColor) BuiltIn FragColor

+                              Decorate 44(coord) Smooth

+                              Decorate 49(foo) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypeFloat 32

- 9(lunarStruct1):             TypeStruct 7(int) 8(float)

-10(lunarStruct2):             TypeStruct 7(int) 8(float) 9(lunarStruct1)

-11(lunarStruct3):             TypeStruct 10(lunarStruct2) 7(int) 8(float) 9(lunarStruct1)

-              12:             TypePointer UniformConstant 11(lunarStruct3)

-        13(foo3):     12(ptr) Variable UniformConstant

-              14:      7(int) Constant 0

-              15:             TypePointer UniformConstant 7(int)

-              18:             TypeBool

-              22:             TypePointer Function 10(lunarStruct2)

-              24:             TypePointer UniformConstant 10(lunarStruct2)

-        28(foo2):     24(ptr) Variable UniformConstant

-              30:             TypeVector 8(float) 4

-              31:             TypePointer Output 30(fvec4)

-32(gl_FragColor):     31(ptr) Variable Output

-              33:      7(int) Constant 2

-              34:      7(int) Constant 1

-              35:             TypePointer Function 8(float)

-              38:             TypeImage 8(float) 2D sampled format:Unknown

-              39:             TypeSampledImage 38

-              40:             TypePointer UniformConstant 39

-     41(sampler):     40(ptr) Variable UniformConstant

-              43:             TypeVector 8(float) 2

-              44:             TypePointer Input 43(fvec2)

-       45(coord):     44(ptr) Variable Input

-              49:             TypePointer UniformConstant 9(lunarStruct1)

-         50(foo):     49(ptr) Variable UniformConstant

+               6:             TypeInt 32 1

+               7:             TypeFloat 32

+ 8(lunarStruct1):             TypeStruct 6(int) 7(float)

+ 9(lunarStruct2):             TypeStruct 6(int) 7(float) 8(lunarStruct1)

+10(lunarStruct3):             TypeStruct 9(lunarStruct2) 6(int) 7(float) 8(lunarStruct1)

+              11:             TypePointer UniformConstant 10(lunarStruct3)

+        12(foo3):     11(ptr) Variable UniformConstant

+              13:      6(int) Constant 0

+              14:             TypePointer UniformConstant 6(int)

+              17:             TypeBool

+              21:             TypePointer Function 9(lunarStruct2)

+              23:             TypePointer UniformConstant 9(lunarStruct2)

+        27(foo2):     23(ptr) Variable UniformConstant

+              29:             TypeVector 7(float) 4

+              30:             TypePointer Output 29(fvec4)

+31(gl_FragColor):     30(ptr) Variable Output

+              32:      6(int) Constant 2

+              33:      6(int) Constant 1

+              34:             TypePointer Function 7(float)

+              37:             TypeImage 7(float) 2D sampled format:Unknown

+              38:             TypeSampledImage 37

+              39:             TypePointer UniformConstant 38

+     40(sampler):     39(ptr) Variable UniformConstant

+              42:             TypeVector 7(float) 2

+              43:             TypePointer Input 42(fvec2)

+       44(coord):     43(ptr) Variable Input

+              48:             TypePointer UniformConstant 8(lunarStruct1)

+         49(foo):     48(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-     23(locals2):     22(ptr) Variable Function

-              16:     15(ptr) AccessChain 13(foo3) 14 14

-              17:      7(int) Load 16

-              19:    18(bool) SGreaterThan 17 14

-                              SelectionMerge 21 None

-                              BranchConditional 19 20 27

-              20:               Label

-              25:     24(ptr)   AccessChain 13(foo3) 14

-              26:10(lunarStruct2)   Load 25

-                                Store 23(locals2) 26

-                                Branch 21

-              27:               Label

-              29:10(lunarStruct2)   Load 28(foo2)

-                                Store 23(locals2) 29

-                                Branch 21

-              21:             Label

-              36:     35(ptr) AccessChain 23(locals2) 33 34

-              37:    8(float) Load 36

-              42:          39 Load 41(sampler)

-              46:   43(fvec2) Load 45(coord)

-              47:   30(fvec4) ImageSampleImplicitLod 42 46

-              48:   30(fvec4) VectorTimesScalar 47 37

-                              Store 32(gl_FragColor) 48

-                              Branch 6

-               6:             Label

+     22(locals2):     21(ptr) Variable Function

+              15:     14(ptr) AccessChain 12(foo3) 13 13

+              16:      6(int) Load 15

+              18:    17(bool) SGreaterThan 16 13

+                              SelectionMerge 20 None

+                              BranchConditional 18 19 26

+              19:               Label

+              24:     23(ptr)   AccessChain 12(foo3) 13

+              25:9(lunarStruct2)   Load 24

+                                Store 22(locals2) 25

+                                Branch 20

+              26:               Label

+              28:9(lunarStruct2)   Load 27(foo2)

+                                Store 22(locals2) 28

+                                Branch 20

+              20:             Label

+              35:     34(ptr) AccessChain 22(locals2) 32 33

+              36:    7(float) Load 35

+              41:          38 Load 40(sampler)

+              45:   42(fvec2) Load 44(coord)

+              46:   29(fvec4) ImageSampleImplicitLod 41 45

+              47:   29(fvec4) VectorTimesScalar 46 36

+                              Store 31(gl_FragColor) 47

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.structDeref.frag.out b/Test/baseResults/spv.structDeref.frag.out
index 570a297..3e37696 100755
--- a/Test/baseResults/spv.structDeref.frag.out
+++ b/Test/baseResults/spv.structDeref.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 121

+// Id's are bound by 120

 

                               Source GLSL 130

                               Capability Shader

@@ -16,179 +16,177 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "s0"

-                              MemberName 9(s0) 0  "i"

-                              Name 10  "s1"

-                              MemberName 10(s1) 0  "i"

-                              MemberName 10(s1) 1  "f"

-                              MemberName 10(s1) 2  "s0_1"

-                              Name 11  "s2"

-                              MemberName 11(s2) 0  "i"

-                              MemberName 11(s2) 1  "f"

-                              MemberName 11(s2) 2  "s1_1"

-                              Name 15  "s3"

-                              MemberName 15(s3) 0  "s2_1"

-                              MemberName 15(s3) 1  "i"

-                              MemberName 15(s3) 2  "f"

-                              MemberName 15(s3) 3  "s1_1"

-                              Name 17  "foo3"

-                              Name 28  "locals2"

-                              Name 41  "fArray"

-                              Name 47  "locals1Array"

-                              Name 50  "foo1"

-                              Name 54  "locals0"

-                              Name 55  "s00"

-                              MemberName 55(s00) 0  "s0_0"

-                              Name 57  "locals00"

-                              Name 62  "coord"

-                              Name 69  "foo0"

-                              Name 84  "foo00"

-                              Name 97  "gl_FragColor"

-                              Name 114  "sampler"

-                              Name 120  "foo2"

-                              Decorate 62(coord) Smooth

-                              Decorate 97(gl_FragColor) BuiltIn FragColor

-                              Decorate 120(foo2) NoStaticUse

+                              Name 8  "s0"

+                              MemberName 8(s0) 0  "i"

+                              Name 9  "s1"

+                              MemberName 9(s1) 0  "i"

+                              MemberName 9(s1) 1  "f"

+                              MemberName 9(s1) 2  "s0_1"

+                              Name 10  "s2"

+                              MemberName 10(s2) 0  "i"

+                              MemberName 10(s2) 1  "f"

+                              MemberName 10(s2) 2  "s1_1"

+                              Name 14  "s3"

+                              MemberName 14(s3) 0  "s2_1"

+                              MemberName 14(s3) 1  "i"

+                              MemberName 14(s3) 2  "f"

+                              MemberName 14(s3) 3  "s1_1"

+                              Name 16  "foo3"

+                              Name 27  "locals2"

+                              Name 40  "fArray"

+                              Name 46  "locals1Array"

+                              Name 49  "foo1"

+                              Name 53  "locals0"

+                              Name 54  "s00"

+                              MemberName 54(s00) 0  "s0_0"

+                              Name 56  "locals00"

+                              Name 61  "coord"

+                              Name 68  "foo0"

+                              Name 83  "foo00"

+                              Name 96  "gl_FragColor"

+                              Name 113  "sampler"

+                              Name 119  "foo2"

+                              Decorate 61(coord) Smooth

+                              Decorate 96(gl_FragColor) BuiltIn FragColor

+                              Decorate 119(foo2) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypeFloat 32

-           9(s0):             TypeStruct 7(int)

-          10(s1):             TypeStruct 7(int) 8(float) 9(s0)

-          11(s2):             TypeStruct 7(int) 8(float) 10(s1)

-              12:             TypeInt 32 0

-              13:     12(int) Constant 12

-              14:             TypeArray 11(s2) 13

-          15(s3):             TypeStruct 14 7(int) 8(float) 10(s1)

-              16:             TypePointer UniformConstant 15(s3)

-        17(foo3):     16(ptr) Variable UniformConstant

-              18:      7(int) Constant 0

-              19:      7(int) Constant 9

-              20:             TypePointer UniformConstant 7(int)

-              23:             TypeBool

-              27:             TypePointer Function 11(s2)

-              29:      7(int) Constant 1

-              30:    8(float) Constant 1065353216

-              31:             TypePointer Function 8(float)

-              33:      7(int) Constant 2

-              34:       9(s0) ConstantComposite 18

-              35:      10(s1) ConstantComposite 18 30 34

-              36:             TypePointer Function 10(s1)

-              38:     12(int) Constant 6

-              39:             TypeArray 8(float) 38

-              40:             TypePointer Function 39

-              42:    8(float) Constant 0

-              43:          39 ConstantComposite 42 42 42 42 42 42

-              44:     12(int) Constant 10

-              45:             TypeArray 10(s1) 44

-              46:             TypePointer Function 45

-              48:      7(int) Constant 6

-              49:             TypePointer UniformConstant 10(s1)

-        50(foo1):     49(ptr) Variable UniformConstant

-              53:             TypePointer Function 9(s0)

-         55(s00):             TypeStruct 9(s0)

-              56:             TypePointer Function 55(s00)

-              58:     55(s00) ConstantComposite 34

-              60:             TypeVector 8(float) 2

-              61:             TypePointer Input 60(fvec2)

-       62(coord):     61(ptr) Variable Input

-              68:             TypePointer UniformConstant 9(s0)

-        69(foo0):     68(ptr) Variable UniformConstant

-              73:    8(float) Constant 1073741824

-              74:    8(float) Constant 1077936128

-              75:    8(float) Constant 1082130432

-              76:    8(float) Constant 1084227584

-              77:          39 ConstantComposite 42 30 73 74 75 76

-              83:             TypePointer UniformConstant 55(s00)

-       84(foo00):     83(ptr) Variable UniformConstant

-              86:             TypePointer Function 7(int)

-              89:      7(int) Constant 5

-              95:             TypeVector 8(float) 4

-              96:             TypePointer Output 95(fvec4)

-97(gl_FragColor):     96(ptr) Variable Output

-             104:      7(int) Constant 3

-             111:             TypeImage 8(float) 2D sampled format:Unknown

-             112:             TypeSampledImage 111

-             113:             TypePointer UniformConstant 112

-    114(sampler):    113(ptr) Variable UniformConstant

-             119:             TypePointer UniformConstant 11(s2)

-       120(foo2):    119(ptr) Variable UniformConstant

+               6:             TypeInt 32 1

+               7:             TypeFloat 32

+           8(s0):             TypeStruct 6(int)

+           9(s1):             TypeStruct 6(int) 7(float) 8(s0)

+          10(s2):             TypeStruct 6(int) 7(float) 9(s1)

+              11:             TypeInt 32 0

+              12:     11(int) Constant 12

+              13:             TypeArray 10(s2) 12

+          14(s3):             TypeStruct 13 6(int) 7(float) 9(s1)

+              15:             TypePointer UniformConstant 14(s3)

+        16(foo3):     15(ptr) Variable UniformConstant

+              17:      6(int) Constant 0

+              18:      6(int) Constant 9

+              19:             TypePointer UniformConstant 6(int)

+              22:             TypeBool

+              26:             TypePointer Function 10(s2)

+              28:      6(int) Constant 1

+              29:    7(float) Constant 1065353216

+              30:             TypePointer Function 7(float)

+              32:      6(int) Constant 2

+              33:       8(s0) ConstantComposite 17

+              34:       9(s1) ConstantComposite 17 29 33

+              35:             TypePointer Function 9(s1)

+              37:     11(int) Constant 6

+              38:             TypeArray 7(float) 37

+              39:             TypePointer Function 38

+              41:    7(float) Constant 0

+              42:          38 ConstantComposite 41 41 41 41 41 41

+              43:     11(int) Constant 10

+              44:             TypeArray 9(s1) 43

+              45:             TypePointer Function 44

+              47:      6(int) Constant 6

+              48:             TypePointer UniformConstant 9(s1)

+        49(foo1):     48(ptr) Variable UniformConstant

+              52:             TypePointer Function 8(s0)

+         54(s00):             TypeStruct 8(s0)

+              55:             TypePointer Function 54(s00)

+              57:     54(s00) ConstantComposite 33

+              59:             TypeVector 7(float) 2

+              60:             TypePointer Input 59(fvec2)

+       61(coord):     60(ptr) Variable Input

+              67:             TypePointer UniformConstant 8(s0)

+        68(foo0):     67(ptr) Variable UniformConstant

+              72:    7(float) Constant 1073741824

+              73:    7(float) Constant 1077936128

+              74:    7(float) Constant 1082130432

+              75:    7(float) Constant 1084227584

+              76:          38 ConstantComposite 41 29 72 73 74 75

+              82:             TypePointer UniformConstant 54(s00)

+       83(foo00):     82(ptr) Variable UniformConstant

+              85:             TypePointer Function 6(int)

+              88:      6(int) Constant 5

+              94:             TypeVector 7(float) 4

+              95:             TypePointer Output 94(fvec4)

+96(gl_FragColor):     95(ptr) Variable Output

+             103:      6(int) Constant 3

+             110:             TypeImage 7(float) 2D sampled format:Unknown

+             111:             TypeSampledImage 110

+             112:             TypePointer UniformConstant 111

+    113(sampler):    112(ptr) Variable UniformConstant

+             118:             TypePointer UniformConstant 10(s2)

+       119(foo2):    118(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-     28(locals2):     27(ptr) Variable Function

-      41(fArray):     40(ptr) Variable Function

-47(locals1Array):     46(ptr) Variable Function

-     54(locals0):     53(ptr) Variable Function

-    57(locals00):     56(ptr) Variable Function

-              21:     20(ptr) AccessChain 17(foo3) 18 19 18

-              22:      7(int) Load 21

-              24:    23(bool) SGreaterThan 22 18

-                              SelectionMerge 26 None

-                              BranchConditional 24 25 59

-              25:               Label

-              32:     31(ptr)   AccessChain 28(locals2) 29

-                                Store 32 30

-              37:     36(ptr)   AccessChain 28(locals2) 33

-                                Store 37 35

-                                Store 41(fArray) 43

-              51:      10(s1)   Load 50(foo1)

-              52:     36(ptr)   AccessChain 47(locals1Array) 48

-                                Store 52 51

-                                Store 54(locals0) 34

-                                Store 57(locals00) 58

-                                Branch 26

-              59:               Label

-              63:   60(fvec2)   Load 62(coord)

-              64:    8(float)   CompositeExtract 63 0

-              65:     31(ptr)   AccessChain 28(locals2) 29

-                                Store 65 64

-              66:   60(fvec2)   Load 62(coord)

-              67:    8(float)   CompositeExtract 66 1

-              70:       9(s0)   Load 69(foo0)

-              71:      10(s1)   CompositeConstruct 29 67 70

-              72:     36(ptr)   AccessChain 28(locals2) 33

-                                Store 72 71

-                                Store 41(fArray) 77

-              78:     36(ptr)   AccessChain 28(locals2) 33

-              79:      10(s1)   Load 78

-              80:     36(ptr)   AccessChain 47(locals1Array) 48

-                                Store 80 79

-              81:     68(ptr)   AccessChain 50(foo1) 33

-              82:       9(s0)   Load 81

-                                Store 54(locals0) 82

-              85:     55(s00)   Load 84(foo00)

-                                Store 57(locals00) 85

-                                Branch 26

-              26:             Label

-              87:     86(ptr) AccessChain 54(locals0) 18

-              88:      7(int) Load 87

-              90:    23(bool) SGreaterThan 88 89

-                              SelectionMerge 92 None

-                              BranchConditional 90 91 92

-              91:               Label

-              93:     53(ptr)   AccessChain 57(locals00) 18

-              94:       9(s0)   Load 93

-                                Store 54(locals0) 94

-                                Branch 92

-              92:             Label

-              98:     86(ptr) AccessChain 54(locals0) 18

-              99:      7(int) Load 98

-             100:    8(float) ConvertSToF 99

-             101:     31(ptr) AccessChain 47(locals1Array) 48 29

-             102:    8(float) Load 101

-             103:    8(float) FAdd 100 102

-             105:     31(ptr) AccessChain 41(fArray) 104

-             106:    8(float) Load 105

-             107:    8(float) FAdd 103 106

-             108:     31(ptr) AccessChain 28(locals2) 33 29

-             109:    8(float) Load 108

-             110:    8(float) FAdd 107 109

-             115:         112 Load 114(sampler)

-             116:   60(fvec2) Load 62(coord)

-             117:   95(fvec4) ImageSampleImplicitLod 115 116

-             118:   95(fvec4) VectorTimesScalar 117 110

-                              Store 97(gl_FragColor) 118

-                              Branch 6

-               6:             Label

+     27(locals2):     26(ptr) Variable Function

+      40(fArray):     39(ptr) Variable Function

+46(locals1Array):     45(ptr) Variable Function

+     53(locals0):     52(ptr) Variable Function

+    56(locals00):     55(ptr) Variable Function

+              20:     19(ptr) AccessChain 16(foo3) 17 18 17

+              21:      6(int) Load 20

+              23:    22(bool) SGreaterThan 21 17

+                              SelectionMerge 25 None

+                              BranchConditional 23 24 58

+              24:               Label

+              31:     30(ptr)   AccessChain 27(locals2) 28

+                                Store 31 29

+              36:     35(ptr)   AccessChain 27(locals2) 32

+                                Store 36 34

+                                Store 40(fArray) 42

+              50:       9(s1)   Load 49(foo1)

+              51:     35(ptr)   AccessChain 46(locals1Array) 47

+                                Store 51 50

+                                Store 53(locals0) 33

+                                Store 56(locals00) 57

+                                Branch 25

+              58:               Label

+              62:   59(fvec2)   Load 61(coord)

+              63:    7(float)   CompositeExtract 62 0

+              64:     30(ptr)   AccessChain 27(locals2) 28

+                                Store 64 63

+              65:   59(fvec2)   Load 61(coord)

+              66:    7(float)   CompositeExtract 65 1

+              69:       8(s0)   Load 68(foo0)

+              70:       9(s1)   CompositeConstruct 28 66 69

+              71:     35(ptr)   AccessChain 27(locals2) 32

+                                Store 71 70

+                                Store 40(fArray) 76

+              77:     35(ptr)   AccessChain 27(locals2) 32

+              78:       9(s1)   Load 77

+              79:     35(ptr)   AccessChain 46(locals1Array) 47

+                                Store 79 78

+              80:     67(ptr)   AccessChain 49(foo1) 32

+              81:       8(s0)   Load 80

+                                Store 53(locals0) 81

+              84:     54(s00)   Load 83(foo00)

+                                Store 56(locals00) 84

+                                Branch 25

+              25:             Label

+              86:     85(ptr) AccessChain 53(locals0) 17

+              87:      6(int) Load 86

+              89:    22(bool) SGreaterThan 87 88

+                              SelectionMerge 91 None

+                              BranchConditional 89 90 91

+              90:               Label

+              92:     52(ptr)   AccessChain 56(locals00) 17

+              93:       8(s0)   Load 92

+                                Store 53(locals0) 93

+                                Branch 91

+              91:             Label

+              97:     85(ptr) AccessChain 53(locals0) 17

+              98:      6(int) Load 97

+              99:    7(float) ConvertSToF 98

+             100:     30(ptr) AccessChain 46(locals1Array) 47 28

+             101:    7(float) Load 100

+             102:    7(float) FAdd 99 101

+             104:     30(ptr) AccessChain 40(fArray) 103

+             105:    7(float) Load 104

+             106:    7(float) FAdd 102 105

+             107:     30(ptr) AccessChain 27(locals2) 32 28

+             108:    7(float) Load 107

+             109:    7(float) FAdd 106 108

+             114:         111 Load 113(sampler)

+             115:   59(fvec2) Load 61(coord)

+             116:   94(fvec4) ImageSampleImplicitLod 114 115

+             117:   94(fvec4) VectorTimesScalar 116 109

+                              Store 96(gl_FragColor) 117

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.structure.frag.out b/Test/baseResults/spv.structure.frag.out
index 8edff73..5ae6fc4 100755
--- a/Test/baseResults/spv.structure.frag.out
+++ b/Test/baseResults/spv.structure.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 62

+// Id's are bound by 61

 

                               Source GLSL 130

                               Capability Shader

@@ -16,91 +16,89 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "scale"

-                              Name 19  "lunarStruct1"

-                              MemberName 19(lunarStruct1) 0  "i"

-                              MemberName 19(lunarStruct1) 1  "f"

-                              MemberName 19(lunarStruct1) 2  "color"

-                              Name 22  "lunarStruct2"

-                              MemberName 22(lunarStruct2) 0  "i"

-                              MemberName 22(lunarStruct2) 1  "f"

-                              MemberName 22(lunarStruct2) 2  "s1_1"

-                              Name 25  "foo2"

-                              Name 47  "gl_FragColor"

-                              Name 52  "sampler"

-                              Name 56  "coord"

-                              Name 61  "foo"

-                              Decorate 47(gl_FragColor) BuiltIn FragColor

-                              Decorate 56(coord) Smooth

-                              Decorate 61(foo) NoStaticUse

+                              Name 8  "scale"

+                              Name 18  "lunarStruct1"

+                              MemberName 18(lunarStruct1) 0  "i"

+                              MemberName 18(lunarStruct1) 1  "f"

+                              MemberName 18(lunarStruct1) 2  "color"

+                              Name 21  "lunarStruct2"

+                              MemberName 21(lunarStruct2) 0  "i"

+                              MemberName 21(lunarStruct2) 1  "f"

+                              MemberName 21(lunarStruct2) 2  "s1_1"

+                              Name 24  "foo2"

+                              Name 46  "gl_FragColor"

+                              Name 51  "sampler"

+                              Name 55  "coord"

+                              Name 60  "foo"

+                              Decorate 46(gl_FragColor) BuiltIn FragColor

+                              Decorate 55(coord) Smooth

+                              Decorate 60(foo) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Function 7(float)

-              10:    7(float) Constant 0

-              11:             TypeInt 32 1

-              12:             TypeInt 32 0

-              13:     12(int) Constant 5

-              14:             TypeArray 11(int) 13

-              15:     12(int) Constant 4

-              16:             TypeArray 7(float) 15

-              17:             TypeVector 7(float) 4

-              18:             TypeArray 17(fvec4) 13

-19(lunarStruct1):             TypeStruct 11(int) 16 18

-              20:     12(int) Constant 7

-              21:             TypeArray 19(lunarStruct1) 20

-22(lunarStruct2):             TypeStruct 14 7(float) 21

-              23:             TypeArray 22(lunarStruct2) 13

-              24:             TypePointer UniformConstant 23

-        25(foo2):     24(ptr) Variable UniformConstant

-              26:     11(int) Constant 3

-              27:     11(int) Constant 0

-              28:     11(int) Constant 4

-              29:             TypePointer UniformConstant 11(int)

-              32:             TypeBool

-              36:     11(int) Constant 2

-              37:             TypePointer UniformConstant 17(fvec4)

-              42:     11(int) Constant 1

-              43:             TypePointer UniformConstant 7(float)

-              46:             TypePointer Output 17(fvec4)

-47(gl_FragColor):     46(ptr) Variable Output

-              49:             TypeImage 7(float) 2D sampled format:Unknown

-              50:             TypeSampledImage 49

-              51:             TypePointer UniformConstant 50

-     52(sampler):     51(ptr) Variable UniformConstant

-              54:             TypeVector 7(float) 2

-              55:             TypePointer Input 54(fvec2)

-       56(coord):     55(ptr) Variable Input

-              60:             TypePointer UniformConstant 19(lunarStruct1)

-         61(foo):     60(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypePointer Function 6(float)

+               9:    6(float) Constant 0

+              10:             TypeInt 32 1

+              11:             TypeInt 32 0

+              12:     11(int) Constant 5

+              13:             TypeArray 10(int) 12

+              14:     11(int) Constant 4

+              15:             TypeArray 6(float) 14

+              16:             TypeVector 6(float) 4

+              17:             TypeArray 16(fvec4) 12

+18(lunarStruct1):             TypeStruct 10(int) 15 17

+              19:     11(int) Constant 7

+              20:             TypeArray 18(lunarStruct1) 19

+21(lunarStruct2):             TypeStruct 13 6(float) 20

+              22:             TypeArray 21(lunarStruct2) 12

+              23:             TypePointer UniformConstant 22

+        24(foo2):     23(ptr) Variable UniformConstant

+              25:     10(int) Constant 3

+              26:     10(int) Constant 0

+              27:     10(int) Constant 4

+              28:             TypePointer UniformConstant 10(int)

+              31:             TypeBool

+              35:     10(int) Constant 2

+              36:             TypePointer UniformConstant 16(fvec4)

+              41:     10(int) Constant 1

+              42:             TypePointer UniformConstant 6(float)

+              45:             TypePointer Output 16(fvec4)

+46(gl_FragColor):     45(ptr) Variable Output

+              48:             TypeImage 6(float) 2D sampled format:Unknown

+              49:             TypeSampledImage 48

+              50:             TypePointer UniformConstant 49

+     51(sampler):     50(ptr) Variable UniformConstant

+              53:             TypeVector 6(float) 2

+              54:             TypePointer Input 53(fvec2)

+       55(coord):     54(ptr) Variable Input

+              59:             TypePointer UniformConstant 18(lunarStruct1)

+         60(foo):     59(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-        9(scale):      8(ptr) Variable Function

-                              Store 9(scale) 10

-              30:     29(ptr) AccessChain 25(foo2) 26 27 28

-              31:     11(int) Load 30

-              33:    32(bool) SGreaterThan 31 27

-                              SelectionMerge 35 None

-                              BranchConditional 33 34 41

-              34:               Label

-              38:     37(ptr)   AccessChain 25(foo2) 26 36 36 36 26

-              39:   17(fvec4)   Load 38

-              40:    7(float)   CompositeExtract 39 0

-                                Store 9(scale) 40

-                                Branch 35

-              41:               Label

-              44:     43(ptr)   AccessChain 25(foo2) 26 36 36 42 26

-              45:    7(float)   Load 44

-                                Store 9(scale) 45

-                                Branch 35

-              35:             Label

-              48:    7(float) Load 9(scale)

-              53:          50 Load 52(sampler)

-              57:   54(fvec2) Load 56(coord)

-              58:   17(fvec4) ImageSampleImplicitLod 53 57

-              59:   17(fvec4) VectorTimesScalar 58 48

-                              Store 47(gl_FragColor) 59

-                              Branch 6

-               6:             Label

+        8(scale):      7(ptr) Variable Function

+                              Store 8(scale) 9

+              29:     28(ptr) AccessChain 24(foo2) 25 26 27

+              30:     10(int) Load 29

+              32:    31(bool) SGreaterThan 30 26

+                              SelectionMerge 34 None

+                              BranchConditional 32 33 40

+              33:               Label

+              37:     36(ptr)   AccessChain 24(foo2) 25 35 35 35 25

+              38:   16(fvec4)   Load 37

+              39:    6(float)   CompositeExtract 38 0

+                                Store 8(scale) 39

+                                Branch 34

+              40:               Label

+              43:     42(ptr)   AccessChain 24(foo2) 25 35 35 41 25

+              44:    6(float)   Load 43

+                                Store 8(scale) 44

+                                Branch 34

+              34:             Label

+              47:    6(float) Load 8(scale)

+              52:          49 Load 51(sampler)

+              56:   53(fvec2) Load 55(coord)

+              57:   16(fvec4) ImageSampleImplicitLod 52 56

+              58:   16(fvec4) VectorTimesScalar 57 47

+                              Store 46(gl_FragColor) 58

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.switch.frag.out b/Test/baseResults/spv.switch.frag.out
index cd03936..a67c629 100755
--- a/Test/baseResults/spv.switch.frag.out
+++ b/Test/baseResults/spv.switch.frag.out
@@ -10,7 +10,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 261

+// Id's are bound by 260

 

                               Source ESSL 310

                               Capability Shader

@@ -19,382 +19,380 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 16  "foo1(vf4;vf4;i1;"

-                              Name 13  "v1"

-                              Name 14  "v2"

-                              Name 15  "i1"

-                              Name 21  "foo2(vf4;vf4;i1;"

-                              Name 18  "v1"

-                              Name 19  "v2"

-                              Name 20  "i1"

-                              Name 59  "local"

-                              Name 61  "c"

-                              Name 72  "f"

-                              Name 74  "x"

-                              Name 128  "d"

-                              Name 154  "i"

-                              Name 172  "j"

-                              Name 222  "color"

-                              Name 228  "v"

-                              Name 229  "param"

-                              Name 231  "param"

-                              Name 233  "param"

-                              Name 239  "param"

-                              Name 241  "param"

-                              Name 243  "param"

-                              Decorate 59(local) RelaxedPrecision

-                              Decorate 61(c) RelaxedPrecision

-                              Decorate 72(f) RelaxedPrecision

-                              Decorate 74(x) RelaxedPrecision

-                              Decorate 74(x) Smooth

-                              Decorate 128(d) RelaxedPrecision

-                              Decorate 154(i) RelaxedPrecision

-                              Decorate 172(j) RelaxedPrecision

-                              Decorate 222(color) RelaxedPrecision

-                              Decorate 228(v) RelaxedPrecision

+                              Name 15  "foo1(vf4;vf4;i1;"

+                              Name 12  "v1"

+                              Name 13  "v2"

+                              Name 14  "i1"

+                              Name 20  "foo2(vf4;vf4;i1;"

+                              Name 17  "v1"

+                              Name 18  "v2"

+                              Name 19  "i1"

+                              Name 58  "local"

+                              Name 60  "c"

+                              Name 71  "f"

+                              Name 73  "x"

+                              Name 127  "d"

+                              Name 153  "i"

+                              Name 171  "j"

+                              Name 221  "color"

+                              Name 227  "v"

+                              Name 228  "param"

+                              Name 230  "param"

+                              Name 232  "param"

+                              Name 238  "param"

+                              Name 240  "param"

+                              Name 242  "param"

+                              Decorate 58(local) RelaxedPrecision

+                              Decorate 60(c) RelaxedPrecision

+                              Decorate 71(f) RelaxedPrecision

+                              Decorate 73(x) RelaxedPrecision

+                              Decorate 73(x) Smooth

+                              Decorate 127(d) RelaxedPrecision

+                              Decorate 153(i) RelaxedPrecision

+                              Decorate 171(j) RelaxedPrecision

+                              Decorate 221(color) RelaxedPrecision

+                              Decorate 227(v) RelaxedPrecision

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              10:             TypeInt 32 1

-              11:             TypePointer Function 10(int)

-              12:             TypeFunction 8(fvec4) 9(ptr) 9(ptr) 11(ptr)

-              37:    7(float) Constant 0

-              38:    8(fvec4) ConstantComposite 37 37 37 37

-              48:    7(float) Constant 1065353216

-              49:    8(fvec4) ConstantComposite 48 48 48 48

-              60:             TypePointer UniformConstant 10(int)

-           61(c):     60(ptr) Variable UniformConstant

-              64:     10(int) Constant 1

-              71:             TypePointer Function 7(float)

-              73:             TypePointer Input 7(float)

-           74(x):     73(ptr) Variable Input

-          128(d):     60(ptr) Variable UniformConstant

-             155:     10(int) Constant 0

-             160:     10(int) Constant 10

-             161:             TypeBool

-             173:     10(int) Constant 20

-             178:     10(int) Constant 30

-             183:    7(float) Constant 1120429670

-             203:    7(float) Constant 1079739679

-             221:             TypePointer Output 7(float)

-      222(color):    221(ptr) Variable Output

-             227:             TypePointer UniformConstant 8(fvec4)

-          228(v):    227(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+               9:             TypeInt 32 1

+              10:             TypePointer Function 9(int)

+              11:             TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)

+              36:    6(float) Constant 0

+              37:    7(fvec4) ConstantComposite 36 36 36 36

+              47:    6(float) Constant 1065353216

+              48:    7(fvec4) ConstantComposite 47 47 47 47

+              59:             TypePointer UniformConstant 9(int)

+           60(c):     59(ptr) Variable UniformConstant

+              63:      9(int) Constant 1

+              70:             TypePointer Function 6(float)

+              72:             TypePointer Input 6(float)

+           73(x):     72(ptr) Variable Input

+          127(d):     59(ptr) Variable UniformConstant

+             154:      9(int) Constant 0

+             159:      9(int) Constant 10

+             160:             TypeBool

+             172:      9(int) Constant 20

+             177:      9(int) Constant 30

+             182:    6(float) Constant 1120429670

+             202:    6(float) Constant 1079739679

+             220:             TypePointer Output 6(float)

+      221(color):    220(ptr) Variable Output

+             226:             TypePointer UniformConstant 7(fvec4)

+          227(v):    226(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-       59(local):     11(ptr) Variable Function

-           72(f):     71(ptr) Variable Function

-          154(i):     11(ptr) Variable Function

-          172(j):     11(ptr) Variable Function

-      229(param):      9(ptr) Variable Function

-      231(param):      9(ptr) Variable Function

-      233(param):     11(ptr) Variable Function

-      239(param):      9(ptr) Variable Function

-      241(param):      9(ptr) Variable Function

-      243(param):     11(ptr) Variable Function

-              62:     10(int) Load 61(c)

-                              Store 59(local) 62

-              63:     10(int) Load 59(local)

-              65:     10(int) IAdd 63 64

-                              Store 59(local) 65

-              66:     10(int) Load 61(c)

-                              SelectionMerge 70 None

-                              Switch 66 69 

-                                     case 1: 67

-                                     case 2: 68

+       58(local):     10(ptr) Variable Function

+           71(f):     70(ptr) Variable Function

+          153(i):     10(ptr) Variable Function

+          171(j):     10(ptr) Variable Function

+      228(param):      8(ptr) Variable Function

+      230(param):      8(ptr) Variable Function

+      232(param):     10(ptr) Variable Function

+      238(param):      8(ptr) Variable Function

+      240(param):      8(ptr) Variable Function

+      242(param):     10(ptr) Variable Function

+              61:      9(int) Load 60(c)

+                              Store 58(local) 61

+              62:      9(int) Load 58(local)

+              64:      9(int) IAdd 62 63

+                              Store 58(local) 64

+              65:      9(int) Load 60(c)

+                              SelectionMerge 69 None

+                              Switch 65 68 

+                                     case 1: 66

+                                     case 2: 67

+              66:               Label

+              74:    6(float)   Load 73(x)

+              75:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 74

+                                Store 71(f) 75

+                                Branch 69

               67:               Label

-              75:    7(float)   Load 74(x)

-              76:    7(float)   ExtInst 1(GLSL.std.450) 13(Sin) 75

-                                Store 72(f) 76

-                                Branch 70

+              77:    6(float)   Load 73(x)

+              78:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 77

+                                Store 71(f) 78

+                                Branch 69

               68:               Label

-              78:    7(float)   Load 74(x)

-              79:    7(float)   ExtInst 1(GLSL.std.450) 14(Cos) 78

-                                Store 72(f) 79

-                                Branch 70

-              69:               Label

-              81:    7(float)   Load 74(x)

-              82:    7(float)   ExtInst 1(GLSL.std.450) 15(Tan) 81

-                                Store 72(f) 82

-                                Branch 70

-              70:             Label

-              84:     10(int) Load 61(c)

-                              SelectionMerge 88 None

-                              Switch 84 87 

-                                     case 1: 85

-                                     case 2: 86

+              80:    6(float)   Load 73(x)

+              81:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 80

+                                Store 71(f) 81

+                                Branch 69

+              69:             Label

+              83:      9(int) Load 60(c)

+                              SelectionMerge 87 None

+                              Switch 83 86 

+                                     case 1: 84

+                                     case 2: 85

+              84:               Label

+              88:    6(float)   Load 73(x)

+              89:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 88

+              90:    6(float)   Load 71(f)

+              91:    6(float)   FAdd 90 89

+                                Store 71(f) 91

+                                Branch 85

               85:               Label

-              89:    7(float)   Load 74(x)

-              90:    7(float)   ExtInst 1(GLSL.std.450) 13(Sin) 89

-              91:    7(float)   Load 72(f)

-              92:    7(float)   FAdd 91 90

-                                Store 72(f) 92

-                                Branch 86

+              92:    6(float)   Load 73(x)

+              93:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 92

+              94:    6(float)   Load 71(f)

+              95:    6(float)   FAdd 94 93

+                                Store 71(f) 95

+                                Branch 87

               86:               Label

-              93:    7(float)   Load 74(x)

-              94:    7(float)   ExtInst 1(GLSL.std.450) 14(Cos) 93

-              95:    7(float)   Load 72(f)

-              96:    7(float)   FAdd 95 94

-                                Store 72(f) 96

-                                Branch 88

-              87:               Label

-              98:    7(float)   Load 74(x)

-              99:    7(float)   ExtInst 1(GLSL.std.450) 15(Tan) 98

-             100:    7(float)   Load 72(f)

-             101:    7(float)   FAdd 100 99

-                                Store 72(f) 101

-                                Branch 88

-              88:             Label

-             103:     10(int) Load 61(c)

-                              SelectionMerge 106 None

-                              Switch 103 106 

-                                     case 1: 104

-                                     case 2: 105

+              97:    6(float)   Load 73(x)

+              98:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 97

+              99:    6(float)   Load 71(f)

+             100:    6(float)   FAdd 99 98

+                                Store 71(f) 100

+                                Branch 87

+              87:             Label

+             102:      9(int) Load 60(c)

+                              SelectionMerge 105 None

+                              Switch 102 105 

+                                     case 1: 103

+                                     case 2: 104

+             103:               Label

+             106:    6(float)   Load 73(x)

+             107:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 106

+             108:    6(float)   Load 71(f)

+             109:    6(float)   FAdd 108 107

+                                Store 71(f) 109

+                                Branch 105

              104:               Label

-             107:    7(float)   Load 74(x)

-             108:    7(float)   ExtInst 1(GLSL.std.450) 13(Sin) 107

-             109:    7(float)   Load 72(f)

-             110:    7(float)   FAdd 109 108

-                                Store 72(f) 110

-                                Branch 106

-             105:               Label

-             112:    7(float)   Load 74(x)

-             113:    7(float)   ExtInst 1(GLSL.std.450) 14(Cos) 112

-             114:    7(float)   Load 72(f)

-             115:    7(float)   FAdd 114 113

-                                Store 72(f) 115

-                                Branch 106

-             106:             Label

-             118:     10(int) Load 61(c)

-                              SelectionMerge 122 None

-                              Switch 118 121 

-                                     case 1: 119

-                                     case 2: 120

+             111:    6(float)   Load 73(x)

+             112:    6(float)   ExtInst 1(GLSL.std.450) 14(Cos) 111

+             113:    6(float)   Load 71(f)

+             114:    6(float)   FAdd 113 112

+                                Store 71(f) 114

+                                Branch 105

+             105:             Label

+             117:      9(int) Load 60(c)

+                              SelectionMerge 121 None

+                              Switch 117 120 

+                                     case 1: 118

+                                     case 2: 119

+             118:               Label

+             122:    6(float)   Load 73(x)

+             123:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 122

+             124:    6(float)   Load 71(f)

+             125:    6(float)   FAdd 124 123

+                                Store 71(f) 125

+                                Branch 121

              119:               Label

-             123:    7(float)   Load 74(x)

-             124:    7(float)   ExtInst 1(GLSL.std.450) 13(Sin) 123

-             125:    7(float)   Load 72(f)

-             126:    7(float)   FAdd 125 124

-                                Store 72(f) 126

-                                Branch 122

-             120:               Label

-             129:     10(int)   Load 128(d)

-                                SelectionMerge 132 None

-                                Switch 129 132 

-                                       case 1: 130

-                                       case 2: 131

+             128:      9(int)   Load 127(d)

+                                SelectionMerge 131 None

+                                Switch 128 131 

+                                       case 1: 129

+                                       case 2: 130

+             129:                 Label

+             132:    6(float)     Load 73(x)

+             133:    6(float)     Load 73(x)

+             134:    6(float)     FMul 132 133

+             135:    6(float)     Load 73(x)

+             136:    6(float)     FMul 134 135

+             137:    6(float)     Load 71(f)

+             138:    6(float)     FAdd 137 136

+                                  Store 71(f) 138

+                                  Branch 131

              130:                 Label

-             133:    7(float)     Load 74(x)

-             134:    7(float)     Load 74(x)

-             135:    7(float)     FMul 133 134

-             136:    7(float)     Load 74(x)

-             137:    7(float)     FMul 135 136

-             138:    7(float)     Load 72(f)

-             139:    7(float)     FAdd 138 137

-                                  Store 72(f) 139

-                                  Branch 132

-             131:                 Label

-             141:    7(float)     Load 74(x)

-             142:    7(float)     Load 74(x)

-             143:    7(float)     FMul 141 142

-             144:    7(float)     Load 72(f)

-             145:    7(float)     FAdd 144 143

-                                  Store 72(f) 145

-                                  Branch 132

-             132:               Label

-                                Branch 122

-             121:               Label

-             149:    7(float)   Load 74(x)

-             150:    7(float)   ExtInst 1(GLSL.std.450) 15(Tan) 149

-             151:    7(float)   Load 72(f)

-             152:    7(float)   FAdd 151 150

-                                Store 72(f) 152

-                                Branch 122

-             122:             Label

-                              Store 154(i) 155

-                              Branch 156

-             156:             Label

-             159:     10(int) Load 154(i)

-             162:   161(bool) SLessThan 159 160

-                              LoopMerge 157 None

-                              BranchConditional 162 158 157

-             158:               Label

-             163:     10(int)   Load 61(c)

-                                SelectionMerge 167 None

-                                Switch 163 166 

-                                       case 1: 164

-                                       case 2: 165

-             164:                 Label

-             168:    7(float)     Load 74(x)

-             169:    7(float)     ExtInst 1(GLSL.std.450) 13(Sin) 168

-             170:    7(float)     Load 72(f)

-             171:    7(float)     FAdd 170 169

-                                  Store 72(f) 171

-                                  Store 172(j) 173

-                                  Branch 174

+             140:    6(float)     Load 73(x)

+             141:    6(float)     Load 73(x)

+             142:    6(float)     FMul 140 141

+             143:    6(float)     Load 71(f)

+             144:    6(float)     FAdd 143 142

+                                  Store 71(f) 144

+                                  Branch 131

+             131:               Label

+                                Branch 121

+             120:               Label

+             148:    6(float)   Load 73(x)

+             149:    6(float)   ExtInst 1(GLSL.std.450) 15(Tan) 148

+             150:    6(float)   Load 71(f)

+             151:    6(float)   FAdd 150 149

+                                Store 71(f) 151

+                                Branch 121

+             121:             Label

+                              Store 153(i) 154

+                              Branch 155

+             155:             Label

+             158:      9(int) Load 153(i)

+             161:   160(bool) SLessThan 158 159

+                              LoopMerge 156 None

+                              BranchConditional 161 157 156

+             157:               Label

+             162:      9(int)   Load 60(c)

+                                SelectionMerge 166 None

+                                Switch 162 165 

+                                       case 1: 163

+                                       case 2: 164

+             163:                 Label

+             167:    6(float)     Load 73(x)

+             168:    6(float)     ExtInst 1(GLSL.std.450) 13(Sin) 167

+             169:    6(float)     Load 71(f)

+             170:    6(float)     FAdd 169 168

+                                  Store 71(f) 170

+                                  Store 171(j) 172

+                                  Branch 173

+             173:                 Label

+             176:      9(int)     Load 171(j)

+             178:   160(bool)     SLessThan 176 177

+                                  LoopMerge 174 None

+                                  BranchConditional 178 175 174

+             175:                   Label

+             179:    6(float)       Load 71(f)

+             180:    6(float)       FAdd 179 47

+                                    Store 71(f) 180

+             181:    6(float)       Load 71(f)

+             183:   160(bool)       FOrdLessThan 181 182

+                                    SelectionMerge 185 None

+                                    BranchConditional 183 184 185

+             184:                     Label

+                                      Branch 174

+             185:                   Label

+             187:      9(int)       Load 171(j)

+             188:      9(int)       IAdd 187 63

+                                    Store 171(j) 188

+                                    Branch 173

              174:                 Label

-             177:     10(int)     Load 172(j)

-             179:   161(bool)     SLessThan 177 178

-                                  LoopMerge 175 None

-                                  BranchConditional 179 176 175

-             176:                   Label

-             180:    7(float)       Load 72(f)

-             181:    7(float)       FAdd 180 48

-                                    Store 72(f) 181

-             182:    7(float)       Load 72(f)

-             184:   161(bool)       FOrdLessThan 182 183

-                                    SelectionMerge 186 None

-                                    BranchConditional 184 185 186

-             185:                     Label

-                                      Branch 175

-             186:                   Label

-             188:     10(int)       Load 172(j)

-             189:     10(int)       IAdd 188 64

-                                    Store 172(j) 189

-                                    Branch 174

-             175:                 Label

-                                  Branch 167

+                                  Branch 166

+             164:                 Label

+             190:    6(float)     Load 73(x)

+             191:    6(float)     ExtInst 1(GLSL.std.450) 14(Cos) 190

+             192:    6(float)     Load 71(f)

+             193:    6(float)     FAdd 192 191

+                                  Store 71(f) 193

+                                  Branch 166

              165:                 Label

-             191:    7(float)     Load 74(x)

-             192:    7(float)     ExtInst 1(GLSL.std.450) 14(Cos) 191

-             193:    7(float)     Load 72(f)

-             194:    7(float)     FAdd 193 192

-                                  Store 72(f) 194

-                                  Branch 167

-             166:                 Label

-             197:    7(float)     Load 74(x)

-             198:    7(float)     ExtInst 1(GLSL.std.450) 15(Tan) 197

-             199:    7(float)     Load 72(f)

-             200:    7(float)     FAdd 199 198

-                                  Store 72(f) 200

-                                  Branch 167

-             167:               Label

-             202:    7(float)   Load 72(f)

-             204:   161(bool)   FOrdLessThan 202 203

-                                SelectionMerge 206 None

-                                BranchConditional 204 205 206

-             205:                 Label

-                                  Branch 157

-             206:               Label

-             208:     10(int)   Load 154(i)

-             209:     10(int)   IAdd 208 64

-                                Store 154(i) 209

-                                Branch 156

-             157:             Label

-             210:     10(int) Load 61(c)

-                              SelectionMerge 213 None

-                              Switch 210 213 

-                                     case 1: 211

-                                     case 2: 212

+             196:    6(float)     Load 73(x)

+             197:    6(float)     ExtInst 1(GLSL.std.450) 15(Tan) 196

+             198:    6(float)     Load 71(f)

+             199:    6(float)     FAdd 198 197

+                                  Store 71(f) 199

+                                  Branch 166

+             166:               Label

+             201:    6(float)   Load 71(f)

+             203:   160(bool)   FOrdLessThan 201 202

+                                SelectionMerge 205 None

+                                BranchConditional 203 204 205

+             204:                 Label

+                                  Branch 156

+             205:               Label

+             207:      9(int)   Load 153(i)

+             208:      9(int)   IAdd 207 63

+                                Store 153(i) 208

+                                Branch 155

+             156:             Label

+             209:      9(int) Load 60(c)

+                              SelectionMerge 212 None

+                              Switch 209 212 

+                                     case 1: 210

+                                     case 2: 211

+             210:               Label

+             213:    6(float)   Load 73(x)

+             214:    6(float)   ExtInst 1(GLSL.std.450) 13(Sin) 213

+             215:    6(float)   Load 71(f)

+             216:    6(float)   FAdd 215 214

+                                Store 71(f) 216

+                                Branch 212

              211:               Label

-             214:    7(float)   Load 74(x)

-             215:    7(float)   ExtInst 1(GLSL.std.450) 13(Sin) 214

-             216:    7(float)   Load 72(f)

-             217:    7(float)   FAdd 216 215

-                                Store 72(f) 217

-                                Branch 213

-             212:               Label

-                                Branch 213

-             213:             Label

-             223:    7(float) Load 72(f)

-             224:     10(int) Load 59(local)

-             225:    7(float) ConvertSToF 224

-             226:    7(float) FAdd 223 225

-                              Store 222(color) 226

-             230:    8(fvec4) Load 228(v)

-                              Store 229(param) 230

-             232:    8(fvec4) Load 228(v)

-                              Store 231(param) 232

-             234:     10(int) Load 61(c)

-                              Store 233(param) 234

-             235:    8(fvec4) FunctionCall 16(foo1(vf4;vf4;i1;) 229(param) 231(param) 233(param)

-             236:    7(float) CompositeExtract 235 1

-             237:    7(float) Load 222(color)

-             238:    7(float) FAdd 237 236

-                              Store 222(color) 238

-             240:    8(fvec4) Load 228(v)

-                              Store 239(param) 240

-             242:    8(fvec4) Load 228(v)

-                              Store 241(param) 242

-             244:     10(int) Load 61(c)

-                              Store 243(param) 244

-             245:    8(fvec4) FunctionCall 21(foo2(vf4;vf4;i1;) 239(param) 241(param) 243(param)

-             246:    7(float) CompositeExtract 245 2

-             247:    7(float) Load 222(color)

-             248:    7(float) FAdd 247 246

-                              Store 222(color) 248

-             249:     10(int) Load 61(c)

-                              SelectionMerge 252 None

-                              Switch 249 251 

-                                     case 0: 250

+                                Branch 212

+             212:             Label

+             222:    6(float) Load 71(f)

+             223:      9(int) Load 58(local)

+             224:    6(float) ConvertSToF 223

+             225:    6(float) FAdd 222 224

+                              Store 221(color) 225

+             229:    7(fvec4) Load 227(v)

+                              Store 228(param) 229

+             231:    7(fvec4) Load 227(v)

+                              Store 230(param) 231

+             233:      9(int) Load 60(c)

+                              Store 232(param) 233

+             234:    7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 228(param) 230(param) 232(param)

+             235:    6(float) CompositeExtract 234 1

+             236:    6(float) Load 221(color)

+             237:    6(float) FAdd 236 235

+                              Store 221(color) 237

+             239:    7(fvec4) Load 227(v)

+                              Store 238(param) 239

+             241:    7(fvec4) Load 227(v)

+                              Store 240(param) 241

+             243:      9(int) Load 60(c)

+                              Store 242(param) 243

+             244:    7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 238(param) 240(param) 242(param)

+             245:    6(float) CompositeExtract 244 2

+             246:    6(float) Load 221(color)

+             247:    6(float) FAdd 246 245

+                              Store 221(color) 247

+             248:      9(int) Load 60(c)

+                              SelectionMerge 251 None

+                              Switch 248 250 

+                                     case 0: 249

+             249:               Label

+                                Branch 251

              250:               Label

-                                Branch 252

-             251:               Label

-                                Branch 252

-             252:             Label

-             256:     10(int) Load 61(c)

-                              SelectionMerge 258 None

-                              Switch 256 257

-             257:               Label

-                                Branch 258

-             258:             Label

-                              Branch 6

-               6:             Label

+                                Branch 251

+             251:             Label

+             255:      9(int) Load 60(c)

+                              SelectionMerge 257 None

+                              Switch 255 256

+             256:               Label

+                                Branch 257

+             257:             Label

                               Return

                               FunctionEnd

-16(foo1(vf4;vf4;i1;):    8(fvec4) Function None 12

-          13(v1):      9(ptr) FunctionParameter

-          14(v2):      9(ptr) FunctionParameter

-          15(i1):     11(ptr) FunctionParameter

-              17:             Label

-              23:     10(int) Load 15(i1)

-                              SelectionMerge 27 None

-                              Switch 23 27 

-                                     case 0: 24

-                                     case 2: 25

-                                     case 1: 25

-                                     case 3: 26

+15(foo1(vf4;vf4;i1;):    7(fvec4) Function None 11

+          12(v1):      8(ptr) FunctionParameter

+          13(v2):      8(ptr) FunctionParameter

+          14(i1):     10(ptr) FunctionParameter

+              16:             Label

+              22:      9(int) Load 14(i1)

+                              SelectionMerge 26 None

+                              Switch 22 26 

+                                     case 0: 23

+                                     case 2: 24

+                                     case 1: 24

+                                     case 3: 25

+              23:               Label

+              27:    7(fvec4)   Load 12(v1)

+                                ReturnValue 27

               24:               Label

-              28:    8(fvec4)   Load 13(v1)

-                                ReturnValue 28

+              29:    7(fvec4)   Load 13(v2)

+                                ReturnValue 29

               25:               Label

-              30:    8(fvec4)   Load 14(v2)

-                                ReturnValue 30

-              26:               Label

-              32:    8(fvec4)   Load 13(v1)

-              33:    8(fvec4)   Load 14(v2)

-              34:    8(fvec4)   FMul 32 33

-                                ReturnValue 34

-              27:             Label

-                              ReturnValue 38

+              31:    7(fvec4)   Load 12(v1)

+              32:    7(fvec4)   Load 13(v2)

+              33:    7(fvec4)   FMul 31 32

+                                ReturnValue 33

+              26:             Label

+                              ReturnValue 37

                               FunctionEnd

-21(foo2(vf4;vf4;i1;):    8(fvec4) Function None 12

-          18(v1):      9(ptr) FunctionParameter

-          19(v2):      9(ptr) FunctionParameter

-          20(i1):     11(ptr) FunctionParameter

-              22:             Label

-              40:     10(int) Load 20(i1)

-                              SelectionMerge 45 None

-                              Switch 40 45 

-                                     case 0: 41

-                                     case 2: 42

-                                     case 1: 43

-                                     case 3: 44

+20(foo2(vf4;vf4;i1;):    7(fvec4) Function None 11

+          17(v1):      8(ptr) FunctionParameter

+          18(v2):      8(ptr) FunctionParameter

+          19(i1):     10(ptr) FunctionParameter

+              21:             Label

+              39:      9(int) Load 19(i1)

+                              SelectionMerge 44 None

+                              Switch 39 44 

+                                     case 0: 40

+                                     case 2: 41

+                                     case 1: 42

+                                     case 3: 43

+              40:               Label

+              45:    7(fvec4)   Load 17(v1)

+                                ReturnValue 45

               41:               Label

-              46:    8(fvec4)   Load 18(v1)

-                                ReturnValue 46

+                                ReturnValue 48

               42:               Label

-                                ReturnValue 49

+              50:    7(fvec4)   Load 18(v2)

+                                ReturnValue 50

               43:               Label

-              51:    8(fvec4)   Load 19(v2)

-                                ReturnValue 51

-              44:               Label

-              53:    8(fvec4)   Load 18(v1)

-              54:    8(fvec4)   Load 19(v2)

-              55:    8(fvec4)   FMul 53 54

-                                ReturnValue 55

-              45:             Label

-                              ReturnValue 38

+              52:    7(fvec4)   Load 17(v1)

+              53:    7(fvec4)   Load 18(v2)

+              54:    7(fvec4)   FMul 52 53

+                                ReturnValue 54

+              44:             Label

+                              ReturnValue 37

                               FunctionEnd

diff --git a/Test/baseResults/spv.swizzle.frag.out b/Test/baseResults/spv.swizzle.frag.out
index 5d5c3b0..827eb5b 100755
--- a/Test/baseResults/spv.swizzle.frag.out
+++ b/Test/baseResults/spv.swizzle.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 112

+// Id's are bound by 111

 

                               Source GLSL 110

                               Capability Shader

@@ -14,165 +14,163 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "blendscale"

-                              Name 13  "w"

-                              Name 15  "u"

-                              Name 17  "w_dep"

-                              Name 19  "w_reorder"

-                              Name 21  "w2"

-                              Name 23  "w_flow"

-                              Name 30  "t"

-                              Name 49  "w_undef"

-                              Name 56  "p"

-                              Name 70  "gl_FragColor"

-                              Name 82  "c"

-                              Name 84  "rep"

-                              Name 111  "blend"

-                              Decorate 30(t) Smooth

-                              Decorate 70(gl_FragColor) BuiltIn FragColor

-                              Decorate 111(blend) NoStaticUse

+                              Name 8  "blendscale"

+                              Name 12  "w"

+                              Name 14  "u"

+                              Name 16  "w_dep"

+                              Name 18  "w_reorder"

+                              Name 20  "w2"

+                              Name 22  "w_flow"

+                              Name 29  "t"

+                              Name 48  "w_undef"

+                              Name 55  "p"

+                              Name 69  "gl_FragColor"

+                              Name 81  "c"

+                              Name 83  "rep"

+                              Name 110  "blend"

+                              Decorate 29(t) Smooth

+                              Decorate 69(gl_FragColor) BuiltIn FragColor

+                              Decorate 110(blend) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Function 7(float)

-              10:    7(float) Constant 1071971828

-              11:             TypeVector 7(float) 4

-              12:             TypePointer Function 11(fvec4)

-              14:             TypePointer UniformConstant 11(fvec4)

-           15(u):     14(ptr) Variable UniformConstant

-              28:             TypeVector 7(float) 2

-              29:             TypePointer Input 28(fvec2)

-           30(t):     29(ptr) Variable Input

-              54:             TypeBool

-              55:             TypePointer UniformConstant 54(bool)

-           56(p):     55(ptr) Variable UniformConstant

-              69:             TypePointer Output 11(fvec4)

-70(gl_FragColor):     69(ptr) Variable Output

-              81:             TypePointer Function 28(fvec2)

-              85:    7(float) Constant 0

-              86:    7(float) Constant 1065353216

-              87:   11(fvec4) ConstantComposite 85 85 85 86

-              93:    7(float) Constant 3212836864

-             104:    7(float) Constant 1079613850

-             110:             TypePointer UniformConstant 7(float)

-      111(blend):    110(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypePointer Function 6(float)

+               9:    6(float) Constant 1071971828

+              10:             TypeVector 6(float) 4

+              11:             TypePointer Function 10(fvec4)

+              13:             TypePointer UniformConstant 10(fvec4)

+           14(u):     13(ptr) Variable UniformConstant

+              27:             TypeVector 6(float) 2

+              28:             TypePointer Input 27(fvec2)

+           29(t):     28(ptr) Variable Input

+              53:             TypeBool

+              54:             TypePointer UniformConstant 53(bool)

+           55(p):     54(ptr) Variable UniformConstant

+              68:             TypePointer Output 10(fvec4)

+69(gl_FragColor):     68(ptr) Variable Output

+              80:             TypePointer Function 27(fvec2)

+              84:    6(float) Constant 0

+              85:    6(float) Constant 1065353216

+              86:   10(fvec4) ConstantComposite 84 84 84 85

+              92:    6(float) Constant 3212836864

+             103:    6(float) Constant 1079613850

+             109:             TypePointer UniformConstant 6(float)

+      110(blend):    109(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-   9(blendscale):      8(ptr) Variable Function

-           13(w):     12(ptr) Variable Function

-       17(w_dep):     12(ptr) Variable Function

-   19(w_reorder):     12(ptr) Variable Function

-          21(w2):     12(ptr) Variable Function

-      23(w_flow):     12(ptr) Variable Function

-     49(w_undef):     12(ptr) Variable Function

-           82(c):     81(ptr) Variable Function

-         84(rep):     12(ptr) Variable Function

-                              Store 9(blendscale) 10

-              16:   11(fvec4) Load 15(u)

-                              Store 13(w) 16

-              18:   11(fvec4) Load 15(u)

-                              Store 17(w_dep) 18

-              20:   11(fvec4) Load 15(u)

-                              Store 19(w_reorder) 20

-              22:   11(fvec4) Load 15(u)

-                              Store 21(w2) 22

-              24:   11(fvec4) Load 15(u)

-                              Store 23(w_flow) 24

-              25:    7(float) Load 9(blendscale)

-              26:   11(fvec4) Load 19(w_reorder)

-              27:   11(fvec4) CompositeInsert 25 26 2

-                              Store 19(w_reorder) 27

-              31:   28(fvec2) Load 30(t)

-              32:   11(fvec4) Load 13(w)

-              33:   11(fvec4) VectorShuffle 32 31 0 5 2 4

-                              Store 13(w) 33

-              34:    7(float) Load 9(blendscale)

-              35:   11(fvec4) Load 19(w_reorder)

-              36:   11(fvec4) CompositeInsert 34 35 0

-                              Store 19(w_reorder) 36

-              37:   11(fvec4) Load 15(u)

-              38:   11(fvec4) VectorShuffle 37 37 2 3 0 1

-                              Store 21(w2) 38

-              39:    7(float) Load 9(blendscale)

-              40:   11(fvec4) Load 19(w_reorder)

-              41:   11(fvec4) CompositeInsert 39 40 1

-                              Store 19(w_reorder) 41

-              42:   11(fvec4) Load 21(w2)

-              43:   28(fvec2) VectorShuffle 42 42 0 2

-              44:   11(fvec4) Load 17(w_dep)

-              45:   11(fvec4) VectorShuffle 44 43 4 5 2 3

-                              Store 17(w_dep) 45

-              46:   28(fvec2) Load 30(t)

-              47:   11(fvec4) Load 17(w_dep)

-              48:   11(fvec4) VectorShuffle 47 46 0 1 4 5

-                              Store 17(w_dep) 48

-              50:   11(fvec4) Load 15(u)

-              51:   28(fvec2) VectorShuffle 50 50 2 3

-              52:   11(fvec4) Load 49(w_undef)

-              53:   11(fvec4) VectorShuffle 52 51 4 5 2 3

-                              Store 49(w_undef) 53

-              57:    54(bool) Load 56(p)

-                              SelectionMerge 59 None

-                              BranchConditional 57 58 64

-              58:               Label

-              60:   28(fvec2)   Load 30(t)

-              61:    7(float)   CompositeExtract 60 0

-              62:   11(fvec4)   Load 23(w_flow)

-              63:   11(fvec4)   CompositeInsert 61 62 0

-                                Store 23(w_flow) 63

-                                Branch 59

-              64:               Label

-              65:   28(fvec2)   Load 30(t)

-              66:    7(float)   CompositeExtract 65 1

-              67:   11(fvec4)   Load 23(w_flow)

-              68:   11(fvec4)   CompositeInsert 66 67 0

-                                Store 23(w_flow) 68

-                                Branch 59

-              59:             Label

-              71:   11(fvec4) Load 19(w_reorder)

-              72:   11(fvec4) Load 49(w_undef)

-              73:   11(fvec4) Load 13(w)

-              74:   11(fvec4) Load 21(w2)

-              75:   11(fvec4) FMul 73 74

-              76:   11(fvec4) Load 17(w_dep)

-              77:   11(fvec4) FMul 75 76

-              78:   11(fvec4) Load 23(w_flow)

-              79:   11(fvec4) FMul 77 78

-              80:   11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 71 72 79

-                              Store 70(gl_FragColor) 80

-              83:   28(fvec2) Load 30(t)

-                              Store 82(c) 83

-                              Store 84(rep) 87

-              88:   28(fvec2) Load 82(c)

-              89:    7(float) CompositeExtract 88 0

-              90:    54(bool) FOrdLessThan 89 85

-                              SelectionMerge 92 None

-                              BranchConditional 90 91 92

-              91:               Label

-              94:   28(fvec2)   Load 82(c)

-              95:    7(float)   CompositeExtract 94 0

-              96:    7(float)   FMul 95 93

-              97:   28(fvec2)   Load 82(c)

-              98:   28(fvec2)   CompositeInsert 96 97 0

-                                Store 82(c) 98

-                                Branch 92

-              92:             Label

-              99:   28(fvec2) Load 82(c)

-             100:    7(float) CompositeExtract 99 0

-             101:    54(bool) FOrdLessThanEqual 100 86

-                              SelectionMerge 103 None

-                              BranchConditional 101 102 103

-             102:               Label

-             105:   11(fvec4)   Load 84(rep)

-             106:   11(fvec4)   CompositeInsert 104 105 0

-                                Store 84(rep) 106

-                                Branch 103

-             103:             Label

-             107:   11(fvec4) Load 84(rep)

-             108:   11(fvec4) Load 70(gl_FragColor)

-             109:   11(fvec4) FAdd 108 107

-                              Store 70(gl_FragColor) 109

-                              Branch 6

-               6:             Label

+   8(blendscale):      7(ptr) Variable Function

+           12(w):     11(ptr) Variable Function

+       16(w_dep):     11(ptr) Variable Function

+   18(w_reorder):     11(ptr) Variable Function

+          20(w2):     11(ptr) Variable Function

+      22(w_flow):     11(ptr) Variable Function

+     48(w_undef):     11(ptr) Variable Function

+           81(c):     80(ptr) Variable Function

+         83(rep):     11(ptr) Variable Function

+                              Store 8(blendscale) 9

+              15:   10(fvec4) Load 14(u)

+                              Store 12(w) 15

+              17:   10(fvec4) Load 14(u)

+                              Store 16(w_dep) 17

+              19:   10(fvec4) Load 14(u)

+                              Store 18(w_reorder) 19

+              21:   10(fvec4) Load 14(u)

+                              Store 20(w2) 21

+              23:   10(fvec4) Load 14(u)

+                              Store 22(w_flow) 23

+              24:    6(float) Load 8(blendscale)

+              25:   10(fvec4) Load 18(w_reorder)

+              26:   10(fvec4) CompositeInsert 24 25 2

+                              Store 18(w_reorder) 26

+              30:   27(fvec2) Load 29(t)

+              31:   10(fvec4) Load 12(w)

+              32:   10(fvec4) VectorShuffle 31 30 0 5 2 4

+                              Store 12(w) 32

+              33:    6(float) Load 8(blendscale)

+              34:   10(fvec4) Load 18(w_reorder)

+              35:   10(fvec4) CompositeInsert 33 34 0

+                              Store 18(w_reorder) 35

+              36:   10(fvec4) Load 14(u)

+              37:   10(fvec4) VectorShuffle 36 36 2 3 0 1

+                              Store 20(w2) 37

+              38:    6(float) Load 8(blendscale)

+              39:   10(fvec4) Load 18(w_reorder)

+              40:   10(fvec4) CompositeInsert 38 39 1

+                              Store 18(w_reorder) 40

+              41:   10(fvec4) Load 20(w2)

+              42:   27(fvec2) VectorShuffle 41 41 0 2

+              43:   10(fvec4) Load 16(w_dep)

+              44:   10(fvec4) VectorShuffle 43 42 4 5 2 3

+                              Store 16(w_dep) 44

+              45:   27(fvec2) Load 29(t)

+              46:   10(fvec4) Load 16(w_dep)

+              47:   10(fvec4) VectorShuffle 46 45 0 1 4 5

+                              Store 16(w_dep) 47

+              49:   10(fvec4) Load 14(u)

+              50:   27(fvec2) VectorShuffle 49 49 2 3

+              51:   10(fvec4) Load 48(w_undef)

+              52:   10(fvec4) VectorShuffle 51 50 4 5 2 3

+                              Store 48(w_undef) 52

+              56:    53(bool) Load 55(p)

+                              SelectionMerge 58 None

+                              BranchConditional 56 57 63

+              57:               Label

+              59:   27(fvec2)   Load 29(t)

+              60:    6(float)   CompositeExtract 59 0

+              61:   10(fvec4)   Load 22(w_flow)

+              62:   10(fvec4)   CompositeInsert 60 61 0

+                                Store 22(w_flow) 62

+                                Branch 58

+              63:               Label

+              64:   27(fvec2)   Load 29(t)

+              65:    6(float)   CompositeExtract 64 1

+              66:   10(fvec4)   Load 22(w_flow)

+              67:   10(fvec4)   CompositeInsert 65 66 0

+                                Store 22(w_flow) 67

+                                Branch 58

+              58:             Label

+              70:   10(fvec4) Load 18(w_reorder)

+              71:   10(fvec4) Load 48(w_undef)

+              72:   10(fvec4) Load 12(w)

+              73:   10(fvec4) Load 20(w2)

+              74:   10(fvec4) FMul 72 73

+              75:   10(fvec4) Load 16(w_dep)

+              76:   10(fvec4) FMul 74 75

+              77:   10(fvec4) Load 22(w_flow)

+              78:   10(fvec4) FMul 76 77

+              79:   10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 70 71 78

+                              Store 69(gl_FragColor) 79

+              82:   27(fvec2) Load 29(t)

+                              Store 81(c) 82

+                              Store 83(rep) 86

+              87:   27(fvec2) Load 81(c)

+              88:    6(float) CompositeExtract 87 0

+              89:    53(bool) FOrdLessThan 88 84

+                              SelectionMerge 91 None

+                              BranchConditional 89 90 91

+              90:               Label

+              93:   27(fvec2)   Load 81(c)

+              94:    6(float)   CompositeExtract 93 0

+              95:    6(float)   FMul 94 92

+              96:   27(fvec2)   Load 81(c)

+              97:   27(fvec2)   CompositeInsert 95 96 0

+                                Store 81(c) 97

+                                Branch 91

+              91:             Label

+              98:   27(fvec2) Load 81(c)

+              99:    6(float) CompositeExtract 98 0

+             100:    53(bool) FOrdLessThanEqual 99 85

+                              SelectionMerge 102 None

+                              BranchConditional 100 101 102

+             101:               Label

+             104:   10(fvec4)   Load 83(rep)

+             105:   10(fvec4)   CompositeInsert 103 104 0

+                                Store 83(rep) 105

+                                Branch 102

+             102:             Label

+             106:   10(fvec4) Load 83(rep)

+             107:   10(fvec4) Load 69(gl_FragColor)

+             108:   10(fvec4) FAdd 107 106

+                              Store 69(gl_FragColor) 108

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.test.frag.out b/Test/baseResults/spv.test.frag.out
index 58bed1d..b8091b7 100755
--- a/Test/baseResults/spv.test.frag.out
+++ b/Test/baseResults/spv.test.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 56

+// Id's are bound by 55

 

                               Source GLSL 110

                               Capability Shader

@@ -14,78 +14,76 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "blendscale"

-                              Name 13  "v"

-                              Name 17  "texSampler2D"

-                              Name 21  "t"

-                              Name 24  "scale"

-                              Name 31  "w"

-                              Name 35  "texSampler3D"

-                              Name 39  "coords"

-                              Name 45  "gl_FragColor"

-                              Name 48  "u"

-                              Name 51  "blend"

-                              Decorate 21(t) Smooth

-                              Decorate 39(coords) Smooth

-                              Decorate 45(gl_FragColor) BuiltIn FragColor

+                              Name 8  "blendscale"

+                              Name 12  "v"

+                              Name 16  "texSampler2D"

+                              Name 20  "t"

+                              Name 23  "scale"

+                              Name 30  "w"

+                              Name 34  "texSampler3D"

+                              Name 38  "coords"

+                              Name 44  "gl_FragColor"

+                              Name 47  "u"

+                              Name 50  "blend"

+                              Decorate 20(t) Smooth

+                              Decorate 38(coords) Smooth

+                              Decorate 44(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Function 7(float)

-              10:    7(float) Constant 1071971828

-              11:             TypeVector 7(float) 4

-              12:             TypePointer Function 11(fvec4)

-              14:             TypeImage 7(float) 2D sampled format:Unknown

-              15:             TypeSampledImage 14

-              16:             TypePointer UniformConstant 15

-17(texSampler2D):     16(ptr) Variable UniformConstant

-              19:             TypeVector 7(float) 2

-              20:             TypePointer Input 19(fvec2)

-           21(t):     20(ptr) Variable Input

-              23:             TypePointer UniformConstant 19(fvec2)

-       24(scale):     23(ptr) Variable UniformConstant

-              32:             TypeImage 7(float) 3D sampled format:Unknown

-              33:             TypeSampledImage 32

-              34:             TypePointer UniformConstant 33

-35(texSampler3D):     34(ptr) Variable UniformConstant

-              37:             TypeVector 7(float) 3

-              38:             TypePointer Input 37(fvec3)

-      39(coords):     38(ptr) Variable Input

-              44:             TypePointer Output 11(fvec4)

-45(gl_FragColor):     44(ptr) Variable Output

-              47:             TypePointer UniformConstant 11(fvec4)

-           48(u):     47(ptr) Variable UniformConstant

-              50:             TypePointer UniformConstant 7(float)

-       51(blend):     50(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypePointer Function 6(float)

+               9:    6(float) Constant 1071971828

+              10:             TypeVector 6(float) 4

+              11:             TypePointer Function 10(fvec4)

+              13:             TypeImage 6(float) 2D sampled format:Unknown

+              14:             TypeSampledImage 13

+              15:             TypePointer UniformConstant 14

+16(texSampler2D):     15(ptr) Variable UniformConstant

+              18:             TypeVector 6(float) 2

+              19:             TypePointer Input 18(fvec2)

+           20(t):     19(ptr) Variable Input

+              22:             TypePointer UniformConstant 18(fvec2)

+       23(scale):     22(ptr) Variable UniformConstant

+              31:             TypeImage 6(float) 3D sampled format:Unknown

+              32:             TypeSampledImage 31

+              33:             TypePointer UniformConstant 32

+34(texSampler3D):     33(ptr) Variable UniformConstant

+              36:             TypeVector 6(float) 3

+              37:             TypePointer Input 36(fvec3)

+      38(coords):     37(ptr) Variable Input

+              43:             TypePointer Output 10(fvec4)

+44(gl_FragColor):     43(ptr) Variable Output

+              46:             TypePointer UniformConstant 10(fvec4)

+           47(u):     46(ptr) Variable UniformConstant

+              49:             TypePointer UniformConstant 6(float)

+       50(blend):     49(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-   9(blendscale):      8(ptr) Variable Function

-           13(v):     12(ptr) Variable Function

-           31(w):     12(ptr) Variable Function

-                              Store 9(blendscale) 10

-              18:          15 Load 17(texSampler2D)

-              22:   19(fvec2) Load 21(t)

-              25:   19(fvec2) Load 24(scale)

-              26:   19(fvec2) FAdd 22 25

-              27:   19(fvec2) Load 24(scale)

-              28:   19(fvec2) FDiv 26 27

-              29:   11(fvec4) ImageSampleImplicitLod 18 28

-              30:   11(fvec4) VectorShuffle 29 29 3 2 1 0

-                              Store 13(v) 30

-              36:          33 Load 35(texSampler3D)

-              40:   37(fvec3) Load 39(coords)

-              41:   11(fvec4) ImageSampleImplicitLod 36 40

-              42:   11(fvec4) Load 13(v)

-              43:   11(fvec4) FAdd 41 42

-                              Store 31(w) 43

-              46:   11(fvec4) Load 31(w)

-              49:   11(fvec4) Load 48(u)

-              52:    7(float) Load 51(blend)

-              53:    7(float) Load 9(blendscale)

-              54:    7(float) FMul 52 53

-              55:   11(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 46 49 54

-                              Store 45(gl_FragColor) 55

-                              Branch 6

-               6:             Label

+   8(blendscale):      7(ptr) Variable Function

+           12(v):     11(ptr) Variable Function

+           30(w):     11(ptr) Variable Function

+                              Store 8(blendscale) 9

+              17:          14 Load 16(texSampler2D)

+              21:   18(fvec2) Load 20(t)

+              24:   18(fvec2) Load 23(scale)

+              25:   18(fvec2) FAdd 21 24

+              26:   18(fvec2) Load 23(scale)

+              27:   18(fvec2) FDiv 25 26

+              28:   10(fvec4) ImageSampleImplicitLod 17 27

+              29:   10(fvec4) VectorShuffle 28 28 3 2 1 0

+                              Store 12(v) 29

+              35:          32 Load 34(texSampler3D)

+              39:   36(fvec3) Load 38(coords)

+              40:   10(fvec4) ImageSampleImplicitLod 35 39

+              41:   10(fvec4) Load 12(v)

+              42:   10(fvec4) FAdd 40 41

+                              Store 30(w) 42

+              45:   10(fvec4) Load 30(w)

+              48:   10(fvec4) Load 47(u)

+              51:    6(float) Load 50(blend)

+              52:    6(float) Load 8(blendscale)

+              53:    6(float) FMul 51 52

+              54:   10(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 45 48 53

+                              Store 44(gl_FragColor) 54

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.test.vert.out b/Test/baseResults/spv.test.vert.out
index 69f945f..c2b921b 100644
--- a/Test/baseResults/spv.test.vert.out
+++ b/Test/baseResults/spv.test.vert.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 28

+// Id's are bound by 27

 

                               Source GLSL 130

                               Capability Shader

@@ -15,44 +15,42 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 10  "uv"

-                              Name 12  "uv_in"

-                              Name 16  "gl_Position"

-                              Name 19  "transform"

-                              Name 22  "position"

-                              Name 27  "gl_VertexID"

-                              Decorate 10(uv) Smooth

-                              Decorate 16(gl_Position) BuiltIn Position

-                              Decorate 27(gl_VertexID) BuiltIn VertexId

-                              Decorate 27(gl_VertexID) NoStaticUse

+                              Name 9  "uv"

+                              Name 11  "uv_in"

+                              Name 15  "gl_Position"

+                              Name 18  "transform"

+                              Name 21  "position"

+                              Name 26  "gl_VertexID"

+                              Decorate 9(uv) Smooth

+                              Decorate 15(gl_Position) BuiltIn Position

+                              Decorate 26(gl_VertexID) BuiltIn VertexId

+                              Decorate 26(gl_VertexID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 2

-               9:             TypePointer Output 8(fvec2)

-          10(uv):      9(ptr) Variable Output

-              11:             TypePointer Input 8(fvec2)

-       12(uv_in):     11(ptr) Variable Input

-              14:             TypeVector 7(float) 4

-              15:             TypePointer Output 14(fvec4)

- 16(gl_Position):     15(ptr) Variable Output

-              17:             TypeMatrix 14(fvec4) 4

-              18:             TypePointer UniformConstant 17

-   19(transform):     18(ptr) Variable UniformConstant

-              21:             TypePointer Input 14(fvec4)

-    22(position):     21(ptr) Variable Input

-              25:             TypeInt 32 1

-              26:             TypePointer Input 25(int)

- 27(gl_VertexID):     26(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 2

+               8:             TypePointer Output 7(fvec2)

+           9(uv):      8(ptr) Variable Output

+              10:             TypePointer Input 7(fvec2)

+       11(uv_in):     10(ptr) Variable Input

+              13:             TypeVector 6(float) 4

+              14:             TypePointer Output 13(fvec4)

+ 15(gl_Position):     14(ptr) Variable Output

+              16:             TypeMatrix 13(fvec4) 4

+              17:             TypePointer UniformConstant 16

+   18(transform):     17(ptr) Variable UniformConstant

+              20:             TypePointer Input 13(fvec4)

+    21(position):     20(ptr) Variable Input

+              24:             TypeInt 32 1

+              25:             TypePointer Input 24(int)

+ 26(gl_VertexID):     25(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-              13:    8(fvec2) Load 12(uv_in)

-                              Store 10(uv) 13

-              20:          17 Load 19(transform)

-              23:   14(fvec4) Load 22(position)

-              24:   14(fvec4) MatrixTimesVector 20 23

-                              Store 16(gl_Position) 24

-                              Branch 6

-               6:             Label

+              12:    7(fvec2) Load 11(uv_in)

+                              Store 9(uv) 12

+              19:          16 Load 18(transform)

+              22:   13(fvec4) Load 21(position)

+              23:   13(fvec4) MatrixTimesVector 19 22

+                              Store 15(gl_Position) 23

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.texture.frag.out b/Test/baseResults/spv.texture.frag.out
index 4326da4..35b0636 100644
--- a/Test/baseResults/spv.texture.frag.out
+++ b/Test/baseResults/spv.texture.frag.out
@@ -8,7 +8,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 283

+// Id's are bound by 282

 

                               Source GLSL 130

                               Capability Shader

@@ -17,359 +17,357 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "blendscale"

-                              Name 11  "bias"

-                              Name 13  "lod"

-                              Name 15  "proj"

-                              Name 16  "coords1D"

-                              Name 19  "coords3D"

-                              Name 25  "coords4D"

-                              Name 27  "color"

-                              Name 33  "texSampler1D"

-                              Name 48  "coords2D"

-                              Name 73  "texSampler2D"

-                              Name 99  "texSampler3D"

-                              Name 125  "texSamplerCube"

-                              Name 140  "shadowSampler1D"

-                              Name 157  "shadowSampler2D"

-                              Name 200  "iCoords2D"

-                              Name 205  "iLod"

-                              Name 214  "gradX"

-                              Name 217  "gradY"

-                              Name 269  "gl_FragColor"

-                              Name 272  "u"

-                              Name 275  "blend"

-                              Name 281  "scale"

-                              Name 282  "t"

-                              Decorate 48(coords2D) Smooth

-                              Decorate 269(gl_FragColor) BuiltIn FragColor

-                              Decorate 281(scale) NoStaticUse

-                              Decorate 282(t) Smooth

-                              Decorate 282(t) NoStaticUse

+                              Name 8  "blendscale"

+                              Name 10  "bias"

+                              Name 12  "lod"

+                              Name 14  "proj"

+                              Name 15  "coords1D"

+                              Name 18  "coords3D"

+                              Name 24  "coords4D"

+                              Name 26  "color"

+                              Name 32  "texSampler1D"

+                              Name 47  "coords2D"

+                              Name 72  "texSampler2D"

+                              Name 98  "texSampler3D"

+                              Name 124  "texSamplerCube"

+                              Name 139  "shadowSampler1D"

+                              Name 156  "shadowSampler2D"

+                              Name 199  "iCoords2D"

+                              Name 204  "iLod"

+                              Name 213  "gradX"

+                              Name 216  "gradY"

+                              Name 268  "gl_FragColor"

+                              Name 271  "u"

+                              Name 274  "blend"

+                              Name 280  "scale"

+                              Name 281  "t"

+                              Decorate 47(coords2D) Smooth

+                              Decorate 268(gl_FragColor) BuiltIn FragColor

+                              Decorate 280(scale) NoStaticUse

+                              Decorate 281(t) Smooth

+                              Decorate 281(t) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Function 7(float)

-              10:    7(float) Constant 1071971828

-              12:    7(float) Constant 1073741824

-              14:    7(float) Constant 1077936128

-              17:             TypeVector 7(float) 3

-              18:             TypePointer Function 17(fvec3)

-              20:    7(float) Constant 1076753334

-              21:    7(float) Constant 1079836148

-              22:   17(fvec3) ConstantComposite 10 20 21

-              23:             TypeVector 7(float) 4

-              24:             TypePointer Function 23(fvec4)

-              26:   23(fvec4) ConstantComposite 10 20 21 12

-              28:    7(float) Constant 0

-              29:   23(fvec4) ConstantComposite 28 28 28 28

-              30:             TypeImage 7(float) 1D sampled format:Unknown

-              31:             TypeSampledImage 30

-              32:             TypePointer UniformConstant 31

-33(texSampler1D):     32(ptr) Variable UniformConstant

-              46:             TypeVector 7(float) 2

-              47:             TypePointer Input 46(fvec2)

-    48(coords2D):     47(ptr) Variable Input

-              70:             TypeImage 7(float) 2D sampled format:Unknown

-              71:             TypeSampledImage 70

-              72:             TypePointer UniformConstant 71

-73(texSampler2D):     72(ptr) Variable UniformConstant

-              96:             TypeImage 7(float) 3D sampled format:Unknown

-              97:             TypeSampledImage 96

-              98:             TypePointer UniformConstant 97

-99(texSampler3D):     98(ptr) Variable UniformConstant

-             122:             TypeImage 7(float) Cube sampled format:Unknown

-             123:             TypeSampledImage 122

-             124:             TypePointer UniformConstant 123

-125(texSamplerCube):    124(ptr) Variable UniformConstant

-             137:             TypeImage 7(float) 1D depth sampled format:Unknown

-             138:             TypeSampledImage 137

-             139:             TypePointer UniformConstant 138

-140(shadowSampler1D):    139(ptr) Variable UniformConstant

-             154:             TypeImage 7(float) 2D depth sampled format:Unknown

-             155:             TypeSampledImage 154

-             156:             TypePointer UniformConstant 155

-157(shadowSampler2D):    156(ptr) Variable UniformConstant

-             197:             TypeInt 32 1

-             198:             TypeVector 197(int) 2

-             199:             TypePointer Function 198(ivec2)

-             201:    197(int) Constant 0

-             202:    197(int) Constant 5

-             203:  198(ivec2) ConstantComposite 201 202

-             204:             TypePointer Function 197(int)

-             206:    197(int) Constant 1

-             213:             TypePointer Function 46(fvec2)

-             242:    197(int) Constant 3

-             243:    197(int) Constant 4294967289

-             244:  198(ivec2) ConstantComposite 242 243

-             268:             TypePointer Output 23(fvec4)

-269(gl_FragColor):    268(ptr) Variable Output

-             271:             TypePointer UniformConstant 23(fvec4)

-          272(u):    271(ptr) Variable UniformConstant

-             274:             TypePointer UniformConstant 7(float)

-      275(blend):    274(ptr) Variable UniformConstant

-             280:             TypePointer UniformConstant 46(fvec2)

-      281(scale):    280(ptr) Variable UniformConstant

-          282(t):     47(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypePointer Function 6(float)

+               9:    6(float) Constant 1071971828

+              11:    6(float) Constant 1073741824

+              13:    6(float) Constant 1077936128

+              16:             TypeVector 6(float) 3

+              17:             TypePointer Function 16(fvec3)

+              19:    6(float) Constant 1076753334

+              20:    6(float) Constant 1079836148

+              21:   16(fvec3) ConstantComposite 9 19 20

+              22:             TypeVector 6(float) 4

+              23:             TypePointer Function 22(fvec4)

+              25:   22(fvec4) ConstantComposite 9 19 20 11

+              27:    6(float) Constant 0

+              28:   22(fvec4) ConstantComposite 27 27 27 27

+              29:             TypeImage 6(float) 1D sampled format:Unknown

+              30:             TypeSampledImage 29

+              31:             TypePointer UniformConstant 30

+32(texSampler1D):     31(ptr) Variable UniformConstant

+              45:             TypeVector 6(float) 2

+              46:             TypePointer Input 45(fvec2)

+    47(coords2D):     46(ptr) Variable Input

+              69:             TypeImage 6(float) 2D sampled format:Unknown

+              70:             TypeSampledImage 69

+              71:             TypePointer UniformConstant 70

+72(texSampler2D):     71(ptr) Variable UniformConstant

+              95:             TypeImage 6(float) 3D sampled format:Unknown

+              96:             TypeSampledImage 95

+              97:             TypePointer UniformConstant 96

+98(texSampler3D):     97(ptr) Variable UniformConstant

+             121:             TypeImage 6(float) Cube sampled format:Unknown

+             122:             TypeSampledImage 121

+             123:             TypePointer UniformConstant 122

+124(texSamplerCube):    123(ptr) Variable UniformConstant

+             136:             TypeImage 6(float) 1D depth sampled format:Unknown

+             137:             TypeSampledImage 136

+             138:             TypePointer UniformConstant 137

+139(shadowSampler1D):    138(ptr) Variable UniformConstant

+             153:             TypeImage 6(float) 2D depth sampled format:Unknown

+             154:             TypeSampledImage 153

+             155:             TypePointer UniformConstant 154

+156(shadowSampler2D):    155(ptr) Variable UniformConstant

+             196:             TypeInt 32 1

+             197:             TypeVector 196(int) 2

+             198:             TypePointer Function 197(ivec2)

+             200:    196(int) Constant 0

+             201:    196(int) Constant 5

+             202:  197(ivec2) ConstantComposite 200 201

+             203:             TypePointer Function 196(int)

+             205:    196(int) Constant 1

+             212:             TypePointer Function 45(fvec2)

+             241:    196(int) Constant 3

+             242:    196(int) Constant 4294967289

+             243:  197(ivec2) ConstantComposite 241 242

+             267:             TypePointer Output 22(fvec4)

+268(gl_FragColor):    267(ptr) Variable Output

+             270:             TypePointer UniformConstant 22(fvec4)

+          271(u):    270(ptr) Variable UniformConstant

+             273:             TypePointer UniformConstant 6(float)

+      274(blend):    273(ptr) Variable UniformConstant

+             279:             TypePointer UniformConstant 45(fvec2)

+      280(scale):    279(ptr) Variable UniformConstant

+          281(t):     46(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-   9(blendscale):      8(ptr) Variable Function

-        11(bias):      8(ptr) Variable Function

-         13(lod):      8(ptr) Variable Function

-        15(proj):      8(ptr) Variable Function

-    16(coords1D):      8(ptr) Variable Function

-    19(coords3D):     18(ptr) Variable Function

-    25(coords4D):     24(ptr) Variable Function

-       27(color):     24(ptr) Variable Function

-  200(iCoords2D):    199(ptr) Variable Function

-       205(iLod):    204(ptr) Variable Function

-      214(gradX):    213(ptr) Variable Function

-      217(gradY):    213(ptr) Variable Function

-                              Store 9(blendscale) 10

-                              Store 11(bias) 12

-                              Store 13(lod) 14

-                              Store 15(proj) 12

-                              Store 16(coords1D) 10

-                              Store 19(coords3D) 22

-                              Store 25(coords4D) 26

-                              Store 27(color) 29

-              34:          31 Load 33(texSampler1D)

-              35:    7(float) Load 16(coords1D)

-              36:   23(fvec4) ImageSampleImplicitLod 34 35

-              37:   23(fvec4) Load 27(color)

-              38:   23(fvec4) FAdd 37 36

-                              Store 27(color) 38

-              39:          31 Load 33(texSampler1D)

-              40:    7(float) Load 16(coords1D)

-              41:    7(float) Load 11(bias)

-              42:   23(fvec4) ImageSampleImplicitLod 39 40 41

-              43:   23(fvec4) Load 27(color)

-              44:   23(fvec4) FAdd 43 42

-                              Store 27(color) 44

-              45:          31 Load 33(texSampler1D)

-              49:   46(fvec2) Load 48(coords2D)

-              50:   23(fvec4) ImageSampleProjImplicitLod 45 49

-              51:   23(fvec4) Load 27(color)

-              52:   23(fvec4) FAdd 51 50

-                              Store 27(color) 52

-              53:          31 Load 33(texSampler1D)

-              54:   23(fvec4) Load 25(coords4D)

-              55:   23(fvec4) ImageSampleProjImplicitLod 53 54

-              56:   23(fvec4) Load 27(color)

-              57:   23(fvec4) FAdd 56 55

-                              Store 27(color) 57

-              58:          31 Load 33(texSampler1D)

-              59:   46(fvec2) Load 48(coords2D)

-              60:    7(float) Load 11(bias)

-              61:   23(fvec4) ImageSampleProjImplicitLod 58 59 60

-              62:   23(fvec4) Load 27(color)

-              63:   23(fvec4) FAdd 62 61

-                              Store 27(color) 63

-              64:          31 Load 33(texSampler1D)

-              65:   23(fvec4) Load 25(coords4D)

-              66:    7(float) Load 11(bias)

-              67:   23(fvec4) ImageSampleProjImplicitLod 64 65 66

-              68:   23(fvec4) Load 27(color)

-              69:   23(fvec4) FAdd 68 67

-                              Store 27(color) 69

-              74:          71 Load 73(texSampler2D)

-              75:   46(fvec2) Load 48(coords2D)

-              76:   23(fvec4) ImageSampleImplicitLod 74 75

-              77:   23(fvec4) Load 27(color)

-              78:   23(fvec4) FAdd 77 76

-                              Store 27(color) 78

-              79:          71 Load 73(texSampler2D)

-              80:   46(fvec2) Load 48(coords2D)

-              81:    7(float) Load 11(bias)

-              82:   23(fvec4) ImageSampleImplicitLod 79 80 81

-              83:   23(fvec4) Load 27(color)

-              84:   23(fvec4) FAdd 83 82

-                              Store 27(color) 84

-              85:          71 Load 73(texSampler2D)

-              86:   17(fvec3) Load 19(coords3D)

-              87:   23(fvec4) ImageSampleProjImplicitLod 85 86

-              88:   23(fvec4) Load 27(color)

-              89:   23(fvec4) FAdd 88 87

-                              Store 27(color) 89

-              90:          71 Load 73(texSampler2D)

-              91:   23(fvec4) Load 25(coords4D)

-              92:    7(float) Load 11(bias)

-              93:   23(fvec4) ImageSampleProjImplicitLod 90 91 92

-              94:   23(fvec4) Load 27(color)

-              95:   23(fvec4) FAdd 94 93

-                              Store 27(color) 95

-             100:          97 Load 99(texSampler3D)

-             101:   17(fvec3) Load 19(coords3D)

-             102:   23(fvec4) ImageSampleImplicitLod 100 101

-             103:   23(fvec4) Load 27(color)

-             104:   23(fvec4) FAdd 103 102

-                              Store 27(color) 104

-             105:          97 Load 99(texSampler3D)

-             106:   17(fvec3) Load 19(coords3D)

-             107:    7(float) Load 11(bias)

-             108:   23(fvec4) ImageSampleImplicitLod 105 106 107

-             109:   23(fvec4) Load 27(color)

-             110:   23(fvec4) FAdd 109 108

-                              Store 27(color) 110

-             111:          97 Load 99(texSampler3D)

-             112:   23(fvec4) Load 25(coords4D)

-             113:   23(fvec4) ImageSampleProjImplicitLod 111 112

-             114:   23(fvec4) Load 27(color)

-             115:   23(fvec4) FAdd 114 113

-                              Store 27(color) 115

-             116:          97 Load 99(texSampler3D)

-             117:   23(fvec4) Load 25(coords4D)

-             118:    7(float) Load 11(bias)

-             119:   23(fvec4) ImageSampleProjImplicitLod 116 117 118

-             120:   23(fvec4) Load 27(color)

-             121:   23(fvec4) FAdd 120 119

-                              Store 27(color) 121

-             126:         123 Load 125(texSamplerCube)

-             127:   17(fvec3) Load 19(coords3D)

-             128:   23(fvec4) ImageSampleImplicitLod 126 127

-             129:   23(fvec4) Load 27(color)

-             130:   23(fvec4) FAdd 129 128

-                              Store 27(color) 130

-             131:         123 Load 125(texSamplerCube)

-             132:   17(fvec3) Load 19(coords3D)

-             133:    7(float) Load 11(bias)

-             134:   23(fvec4) ImageSampleImplicitLod 131 132 133

-             135:   23(fvec4) Load 27(color)

-             136:   23(fvec4) FAdd 135 134

-                              Store 27(color) 136

-             141:         138 Load 140(shadowSampler1D)

-             142:   17(fvec3) Load 19(coords3D)

-             143:    7(float) CompositeExtract 142 2

-             144:   23(fvec4) ImageSampleDrefImplicitLod 141 142 143

-             145:   23(fvec4) Load 27(color)

-             146:   23(fvec4) FAdd 145 144

-                              Store 27(color) 146

-             147:         138 Load 140(shadowSampler1D)

-             148:   17(fvec3) Load 19(coords3D)

-             149:    7(float) Load 11(bias)

-             150:    7(float) CompositeExtract 148 2

-             151:   23(fvec4) ImageSampleDrefImplicitLod 147 148 150 149

-             152:   23(fvec4) Load 27(color)

-             153:   23(fvec4) FAdd 152 151

-                              Store 27(color) 153

-             158:         155 Load 157(shadowSampler2D)

-             159:   17(fvec3) Load 19(coords3D)

-             160:    7(float) CompositeExtract 159 2

-             161:   23(fvec4) ImageSampleDrefImplicitLod 158 159 160

-             162:   23(fvec4) Load 27(color)

-             163:   23(fvec4) FAdd 162 161

-                              Store 27(color) 163

-             164:         155 Load 157(shadowSampler2D)

-             165:   17(fvec3) Load 19(coords3D)

-             166:    7(float) Load 11(bias)

-             167:    7(float) CompositeExtract 165 2

-             168:   23(fvec4) ImageSampleDrefImplicitLod 164 165 167 166

-             169:   23(fvec4) Load 27(color)

-             170:   23(fvec4) FAdd 169 168

-                              Store 27(color) 170

-             171:         138 Load 140(shadowSampler1D)

-             172:   23(fvec4) Load 25(coords4D)

-             173:    7(float) CompositeExtract 172 3

-             174:   23(fvec4) ImageSampleProjDrefImplicitLod 171 172 173

-             175:   23(fvec4) Load 27(color)

-             176:   23(fvec4) FAdd 175 174

-                              Store 27(color) 176

-             177:         138 Load 140(shadowSampler1D)

-             178:   23(fvec4) Load 25(coords4D)

-             179:    7(float) Load 11(bias)

-             180:    7(float) CompositeExtract 178 3

-             181:   23(fvec4) ImageSampleProjDrefImplicitLod 177 178 180 179

-             182:   23(fvec4) Load 27(color)

-             183:   23(fvec4) FAdd 182 181

-                              Store 27(color) 183

-             184:         155 Load 157(shadowSampler2D)

-             185:   23(fvec4) Load 25(coords4D)

-             186:    7(float) CompositeExtract 185 3

-             187:   23(fvec4) ImageSampleProjDrefImplicitLod 184 185 186

-             188:   23(fvec4) Load 27(color)

-             189:   23(fvec4) FAdd 188 187

-                              Store 27(color) 189

-             190:         155 Load 157(shadowSampler2D)

-             191:   23(fvec4) Load 25(coords4D)

-             192:    7(float) Load 11(bias)

-             193:    7(float) CompositeExtract 191 3

-             194:   23(fvec4) ImageSampleProjDrefImplicitLod 190 191 193 192

-             195:   23(fvec4) Load 27(color)

-             196:   23(fvec4) FAdd 195 194

-                              Store 27(color) 196

-                              Store 200(iCoords2D) 203

-                              Store 205(iLod) 206

-             207:          71 Load 73(texSampler2D)

-             208:  198(ivec2) Load 200(iCoords2D)

-             209:    197(int) Load 205(iLod)

-             210:   23(fvec4) ImageFetch 207 208

-             211:   23(fvec4) Load 27(color)

-             212:   23(fvec4) FAdd 211 210

-                              Store 27(color) 212

-             215:   46(fvec2) Load 48(coords2D)

-             216:   46(fvec2) DPdx 215

-                              Store 214(gradX) 216

-             218:   46(fvec2) Load 48(coords2D)

-             219:   46(fvec2) DPdy 218

-                              Store 217(gradY) 219

-             220:          71 Load 73(texSampler2D)

-             221:   46(fvec2) Load 48(coords2D)

-             222:   46(fvec2) Load 214(gradX)

-             223:   46(fvec2) Load 217(gradY)

-             224:   23(fvec4) ImageSampleExplicitLod 220 221 222 223

-             225:   23(fvec4) Load 27(color)

-             226:   23(fvec4) FAdd 225 224

-                              Store 27(color) 226

-             227:          71 Load 73(texSampler2D)

-             228:   46(fvec2) Load 48(coords2D)

-             229:    7(float) Load 15(proj)

-             230:    7(float) CompositeExtract 228 0

-             231:    7(float) CompositeExtract 228 1

-             232:   17(fvec3) CompositeConstruct 230 231 229

-             233:   46(fvec2) Load 214(gradX)

-             234:   46(fvec2) Load 217(gradY)

-             235:   23(fvec4) ImageSampleProjExplicitLod 227 232 233 234

-             236:   23(fvec4) Load 27(color)

-             237:   23(fvec4) FAdd 236 235

-                              Store 27(color) 237

-             238:          71 Load 73(texSampler2D)

-             239:   46(fvec2) Load 48(coords2D)

-             240:   46(fvec2) Load 214(gradX)

-             241:   46(fvec2) Load 217(gradY)

-             245:   23(fvec4) ImageSampleExplicitLod 238 239 240 241 244

-             246:   23(fvec4) Load 27(color)

-             247:   23(fvec4) FAdd 246 245

-                              Store 27(color) 247

-             248:          71 Load 73(texSampler2D)

-             249:   17(fvec3) Load 19(coords3D)

-             250:   46(fvec2) Load 214(gradX)

-             251:   46(fvec2) Load 217(gradY)

-             252:   23(fvec4) ImageSampleProjExplicitLod 248 249 250 251 244

-             253:   23(fvec4) Load 27(color)

-             254:   23(fvec4) FAdd 253 252

-                              Store 27(color) 254

-             255:         155 Load 157(shadowSampler2D)

-             256:   46(fvec2) Load 48(coords2D)

-             257:    7(float) Load 13(lod)

-             258:    7(float) CompositeExtract 256 0

-             259:    7(float) CompositeExtract 256 1

-             260:   17(fvec3) CompositeConstruct 258 259 257

-             261:   46(fvec2) Load 214(gradX)

-             262:   46(fvec2) Load 217(gradY)

-             263:    7(float) CompositeExtract 260 2

-             264:    7(float) ImageSampleDrefExplicitLod 255 260 263 261 262

-             265:   23(fvec4) Load 27(color)

-             266:   23(fvec4) CompositeConstruct 264 264 264 264

-             267:   23(fvec4) FAdd 265 266

-                              Store 27(color) 267

-             270:   23(fvec4) Load 27(color)

-             273:   23(fvec4) Load 272(u)

-             276:    7(float) Load 275(blend)

-             277:    7(float) Load 9(blendscale)

-             278:    7(float) FMul 276 277

-             279:   23(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 270 273 278

-                              Store 269(gl_FragColor) 279

-                              Branch 6

-               6:             Label

+   8(blendscale):      7(ptr) Variable Function

+        10(bias):      7(ptr) Variable Function

+         12(lod):      7(ptr) Variable Function

+        14(proj):      7(ptr) Variable Function

+    15(coords1D):      7(ptr) Variable Function

+    18(coords3D):     17(ptr) Variable Function

+    24(coords4D):     23(ptr) Variable Function

+       26(color):     23(ptr) Variable Function

+  199(iCoords2D):    198(ptr) Variable Function

+       204(iLod):    203(ptr) Variable Function

+      213(gradX):    212(ptr) Variable Function

+      216(gradY):    212(ptr) Variable Function

+                              Store 8(blendscale) 9

+                              Store 10(bias) 11

+                              Store 12(lod) 13

+                              Store 14(proj) 11

+                              Store 15(coords1D) 9

+                              Store 18(coords3D) 21

+                              Store 24(coords4D) 25

+                              Store 26(color) 28

+              33:          30 Load 32(texSampler1D)

+              34:    6(float) Load 15(coords1D)

+              35:   22(fvec4) ImageSampleImplicitLod 33 34

+              36:   22(fvec4) Load 26(color)

+              37:   22(fvec4) FAdd 36 35

+                              Store 26(color) 37

+              38:          30 Load 32(texSampler1D)

+              39:    6(float) Load 15(coords1D)

+              40:    6(float) Load 10(bias)

+              41:   22(fvec4) ImageSampleImplicitLod 38 39 40

+              42:   22(fvec4) Load 26(color)

+              43:   22(fvec4) FAdd 42 41

+                              Store 26(color) 43

+              44:          30 Load 32(texSampler1D)

+              48:   45(fvec2) Load 47(coords2D)

+              49:   22(fvec4) ImageSampleProjImplicitLod 44 48

+              50:   22(fvec4) Load 26(color)

+              51:   22(fvec4) FAdd 50 49

+                              Store 26(color) 51

+              52:          30 Load 32(texSampler1D)

+              53:   22(fvec4) Load 24(coords4D)

+              54:   22(fvec4) ImageSampleProjImplicitLod 52 53

+              55:   22(fvec4) Load 26(color)

+              56:   22(fvec4) FAdd 55 54

+                              Store 26(color) 56

+              57:          30 Load 32(texSampler1D)

+              58:   45(fvec2) Load 47(coords2D)

+              59:    6(float) Load 10(bias)

+              60:   22(fvec4) ImageSampleProjImplicitLod 57 58 59

+              61:   22(fvec4) Load 26(color)

+              62:   22(fvec4) FAdd 61 60

+                              Store 26(color) 62

+              63:          30 Load 32(texSampler1D)

+              64:   22(fvec4) Load 24(coords4D)

+              65:    6(float) Load 10(bias)

+              66:   22(fvec4) ImageSampleProjImplicitLod 63 64 65

+              67:   22(fvec4) Load 26(color)

+              68:   22(fvec4) FAdd 67 66

+                              Store 26(color) 68

+              73:          70 Load 72(texSampler2D)

+              74:   45(fvec2) Load 47(coords2D)

+              75:   22(fvec4) ImageSampleImplicitLod 73 74

+              76:   22(fvec4) Load 26(color)

+              77:   22(fvec4) FAdd 76 75

+                              Store 26(color) 77

+              78:          70 Load 72(texSampler2D)

+              79:   45(fvec2) Load 47(coords2D)

+              80:    6(float) Load 10(bias)

+              81:   22(fvec4) ImageSampleImplicitLod 78 79 80

+              82:   22(fvec4) Load 26(color)

+              83:   22(fvec4) FAdd 82 81

+                              Store 26(color) 83

+              84:          70 Load 72(texSampler2D)

+              85:   16(fvec3) Load 18(coords3D)

+              86:   22(fvec4) ImageSampleProjImplicitLod 84 85

+              87:   22(fvec4) Load 26(color)

+              88:   22(fvec4) FAdd 87 86

+                              Store 26(color) 88

+              89:          70 Load 72(texSampler2D)

+              90:   22(fvec4) Load 24(coords4D)

+              91:    6(float) Load 10(bias)

+              92:   22(fvec4) ImageSampleProjImplicitLod 89 90 91

+              93:   22(fvec4) Load 26(color)

+              94:   22(fvec4) FAdd 93 92

+                              Store 26(color) 94

+              99:          96 Load 98(texSampler3D)

+             100:   16(fvec3) Load 18(coords3D)

+             101:   22(fvec4) ImageSampleImplicitLod 99 100

+             102:   22(fvec4) Load 26(color)

+             103:   22(fvec4) FAdd 102 101

+                              Store 26(color) 103

+             104:          96 Load 98(texSampler3D)

+             105:   16(fvec3) Load 18(coords3D)

+             106:    6(float) Load 10(bias)

+             107:   22(fvec4) ImageSampleImplicitLod 104 105 106

+             108:   22(fvec4) Load 26(color)

+             109:   22(fvec4) FAdd 108 107

+                              Store 26(color) 109

+             110:          96 Load 98(texSampler3D)

+             111:   22(fvec4) Load 24(coords4D)

+             112:   22(fvec4) ImageSampleProjImplicitLod 110 111

+             113:   22(fvec4) Load 26(color)

+             114:   22(fvec4) FAdd 113 112

+                              Store 26(color) 114

+             115:          96 Load 98(texSampler3D)

+             116:   22(fvec4) Load 24(coords4D)

+             117:    6(float) Load 10(bias)

+             118:   22(fvec4) ImageSampleProjImplicitLod 115 116 117

+             119:   22(fvec4) Load 26(color)

+             120:   22(fvec4) FAdd 119 118

+                              Store 26(color) 120

+             125:         122 Load 124(texSamplerCube)

+             126:   16(fvec3) Load 18(coords3D)

+             127:   22(fvec4) ImageSampleImplicitLod 125 126

+             128:   22(fvec4) Load 26(color)

+             129:   22(fvec4) FAdd 128 127

+                              Store 26(color) 129

+             130:         122 Load 124(texSamplerCube)

+             131:   16(fvec3) Load 18(coords3D)

+             132:    6(float) Load 10(bias)

+             133:   22(fvec4) ImageSampleImplicitLod 130 131 132

+             134:   22(fvec4) Load 26(color)

+             135:   22(fvec4) FAdd 134 133

+                              Store 26(color) 135

+             140:         137 Load 139(shadowSampler1D)

+             141:   16(fvec3) Load 18(coords3D)

+             142:    6(float) CompositeExtract 141 2

+             143:   22(fvec4) ImageSampleDrefImplicitLod 140 141 142

+             144:   22(fvec4) Load 26(color)

+             145:   22(fvec4) FAdd 144 143

+                              Store 26(color) 145

+             146:         137 Load 139(shadowSampler1D)

+             147:   16(fvec3) Load 18(coords3D)

+             148:    6(float) Load 10(bias)

+             149:    6(float) CompositeExtract 147 2

+             150:   22(fvec4) ImageSampleDrefImplicitLod 146 147 149 148

+             151:   22(fvec4) Load 26(color)

+             152:   22(fvec4) FAdd 151 150

+                              Store 26(color) 152

+             157:         154 Load 156(shadowSampler2D)

+             158:   16(fvec3) Load 18(coords3D)

+             159:    6(float) CompositeExtract 158 2

+             160:   22(fvec4) ImageSampleDrefImplicitLod 157 158 159

+             161:   22(fvec4) Load 26(color)

+             162:   22(fvec4) FAdd 161 160

+                              Store 26(color) 162

+             163:         154 Load 156(shadowSampler2D)

+             164:   16(fvec3) Load 18(coords3D)

+             165:    6(float) Load 10(bias)

+             166:    6(float) CompositeExtract 164 2

+             167:   22(fvec4) ImageSampleDrefImplicitLod 163 164 166 165

+             168:   22(fvec4) Load 26(color)

+             169:   22(fvec4) FAdd 168 167

+                              Store 26(color) 169

+             170:         137 Load 139(shadowSampler1D)

+             171:   22(fvec4) Load 24(coords4D)

+             172:    6(float) CompositeExtract 171 3

+             173:   22(fvec4) ImageSampleProjDrefImplicitLod 170 171 172

+             174:   22(fvec4) Load 26(color)

+             175:   22(fvec4) FAdd 174 173

+                              Store 26(color) 175

+             176:         137 Load 139(shadowSampler1D)

+             177:   22(fvec4) Load 24(coords4D)

+             178:    6(float) Load 10(bias)

+             179:    6(float) CompositeExtract 177 3

+             180:   22(fvec4) ImageSampleProjDrefImplicitLod 176 177 179 178

+             181:   22(fvec4) Load 26(color)

+             182:   22(fvec4) FAdd 181 180

+                              Store 26(color) 182

+             183:         154 Load 156(shadowSampler2D)

+             184:   22(fvec4) Load 24(coords4D)

+             185:    6(float) CompositeExtract 184 3

+             186:   22(fvec4) ImageSampleProjDrefImplicitLod 183 184 185

+             187:   22(fvec4) Load 26(color)

+             188:   22(fvec4) FAdd 187 186

+                              Store 26(color) 188

+             189:         154 Load 156(shadowSampler2D)

+             190:   22(fvec4) Load 24(coords4D)

+             191:    6(float) Load 10(bias)

+             192:    6(float) CompositeExtract 190 3

+             193:   22(fvec4) ImageSampleProjDrefImplicitLod 189 190 192 191

+             194:   22(fvec4) Load 26(color)

+             195:   22(fvec4) FAdd 194 193

+                              Store 26(color) 195

+                              Store 199(iCoords2D) 202

+                              Store 204(iLod) 205

+             206:          70 Load 72(texSampler2D)

+             207:  197(ivec2) Load 199(iCoords2D)

+             208:    196(int) Load 204(iLod)

+             209:   22(fvec4) ImageFetch 206 207

+             210:   22(fvec4) Load 26(color)

+             211:   22(fvec4) FAdd 210 209

+                              Store 26(color) 211

+             214:   45(fvec2) Load 47(coords2D)

+             215:   45(fvec2) DPdx 214

+                              Store 213(gradX) 215

+             217:   45(fvec2) Load 47(coords2D)

+             218:   45(fvec2) DPdy 217

+                              Store 216(gradY) 218

+             219:          70 Load 72(texSampler2D)

+             220:   45(fvec2) Load 47(coords2D)

+             221:   45(fvec2) Load 213(gradX)

+             222:   45(fvec2) Load 216(gradY)

+             223:   22(fvec4) ImageSampleExplicitLod 219 220 221 222

+             224:   22(fvec4) Load 26(color)

+             225:   22(fvec4) FAdd 224 223

+                              Store 26(color) 225

+             226:          70 Load 72(texSampler2D)

+             227:   45(fvec2) Load 47(coords2D)

+             228:    6(float) Load 14(proj)

+             229:    6(float) CompositeExtract 227 0

+             230:    6(float) CompositeExtract 227 1

+             231:   16(fvec3) CompositeConstruct 229 230 228

+             232:   45(fvec2) Load 213(gradX)

+             233:   45(fvec2) Load 216(gradY)

+             234:   22(fvec4) ImageSampleProjExplicitLod 226 231 232 233

+             235:   22(fvec4) Load 26(color)

+             236:   22(fvec4) FAdd 235 234

+                              Store 26(color) 236

+             237:          70 Load 72(texSampler2D)

+             238:   45(fvec2) Load 47(coords2D)

+             239:   45(fvec2) Load 213(gradX)

+             240:   45(fvec2) Load 216(gradY)

+             244:   22(fvec4) ImageSampleExplicitLod 237 238 239 240 243

+             245:   22(fvec4) Load 26(color)

+             246:   22(fvec4) FAdd 245 244

+                              Store 26(color) 246

+             247:          70 Load 72(texSampler2D)

+             248:   16(fvec3) Load 18(coords3D)

+             249:   45(fvec2) Load 213(gradX)

+             250:   45(fvec2) Load 216(gradY)

+             251:   22(fvec4) ImageSampleProjExplicitLod 247 248 249 250 243

+             252:   22(fvec4) Load 26(color)

+             253:   22(fvec4) FAdd 252 251

+                              Store 26(color) 253

+             254:         154 Load 156(shadowSampler2D)

+             255:   45(fvec2) Load 47(coords2D)

+             256:    6(float) Load 12(lod)

+             257:    6(float) CompositeExtract 255 0

+             258:    6(float) CompositeExtract 255 1

+             259:   16(fvec3) CompositeConstruct 257 258 256

+             260:   45(fvec2) Load 213(gradX)

+             261:   45(fvec2) Load 216(gradY)

+             262:    6(float) CompositeExtract 259 2

+             263:    6(float) ImageSampleDrefExplicitLod 254 259 262 260 261

+             264:   22(fvec4) Load 26(color)

+             265:   22(fvec4) CompositeConstruct 263 263 263 263

+             266:   22(fvec4) FAdd 264 265

+                              Store 26(color) 266

+             269:   22(fvec4) Load 26(color)

+             272:   22(fvec4) Load 271(u)

+             275:    6(float) Load 274(blend)

+             276:    6(float) Load 8(blendscale)

+             277:    6(float) FMul 275 276

+             278:   22(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 269 272 277

+                              Store 268(gl_FragColor) 278

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.texture.vert.out b/Test/baseResults/spv.texture.vert.out
index 0cc4d52..d169523 100755
--- a/Test/baseResults/spv.texture.vert.out
+++ b/Test/baseResults/spv.texture.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 142

+// Id's are bound by 141

 

                               Source GLSL 130

                               Capability Shader

@@ -13,182 +13,180 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "lod"

-                              Name 11  "coords1D"

-                              Name 15  "coords3D"

-                              Name 21  "coords4D"

-                              Name 24  "color"

-                              Name 30  "texSampler1D"

-                              Name 40  "coords2D"

-                              Name 55  "texSampler2D"

-                              Name 77  "texSampler3D"

-                              Name 93  "texSamplerCube"

-                              Name 103  "shadowSampler1D"

-                              Name 114  "shadowSampler2D"

-                              Name 137  "gl_Position"

-                              Name 141  "gl_VertexID"

-                              Decorate 137(gl_Position) BuiltIn Position

-                              Decorate 141(gl_VertexID) BuiltIn VertexId

-                              Decorate 141(gl_VertexID) NoStaticUse

+                              Name 8  "lod"

+                              Name 10  "coords1D"

+                              Name 14  "coords3D"

+                              Name 20  "coords4D"

+                              Name 23  "color"

+                              Name 29  "texSampler1D"

+                              Name 39  "coords2D"

+                              Name 54  "texSampler2D"

+                              Name 76  "texSampler3D"

+                              Name 92  "texSamplerCube"

+                              Name 102  "shadowSampler1D"

+                              Name 113  "shadowSampler2D"

+                              Name 136  "gl_Position"

+                              Name 140  "gl_VertexID"

+                              Decorate 136(gl_Position) BuiltIn Position

+                              Decorate 140(gl_VertexID) BuiltIn VertexId

+                              Decorate 140(gl_VertexID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypePointer Function 7(float)

-              10:    7(float) Constant 1077936128

-              12:    7(float) Constant 1071971828

-              13:             TypeVector 7(float) 3

-              14:             TypePointer Function 13(fvec3)

-              16:    7(float) Constant 1076753334

-              17:    7(float) Constant 1079836148

-              18:   13(fvec3) ConstantComposite 12 16 17

-              19:             TypeVector 7(float) 4

-              20:             TypePointer Function 19(fvec4)

-              22:    7(float) Constant 1073741824

-              23:   19(fvec4) ConstantComposite 12 16 17 22

-              25:    7(float) Constant 0

-              26:   19(fvec4) ConstantComposite 25 25 25 25

-              27:             TypeImage 7(float) 1D sampled format:Unknown

-              28:             TypeSampledImage 27

-              29:             TypePointer UniformConstant 28

-30(texSampler1D):     29(ptr) Variable UniformConstant

-              38:             TypeVector 7(float) 2

-              39:             TypePointer Input 38(fvec2)

-    40(coords2D):     39(ptr) Variable Input

-              52:             TypeImage 7(float) 2D sampled format:Unknown

-              53:             TypeSampledImage 52

-              54:             TypePointer UniformConstant 53

-55(texSampler2D):     54(ptr) Variable UniformConstant

-              74:             TypeImage 7(float) 3D sampled format:Unknown

-              75:             TypeSampledImage 74

-              76:             TypePointer UniformConstant 75

-77(texSampler3D):     76(ptr) Variable UniformConstant

-              90:             TypeImage 7(float) Cube sampled format:Unknown

-              91:             TypeSampledImage 90

-              92:             TypePointer UniformConstant 91

-93(texSamplerCube):     92(ptr) Variable UniformConstant

-             100:             TypeImage 7(float) 1D depth sampled format:Unknown

-             101:             TypeSampledImage 100

-             102:             TypePointer UniformConstant 101

-103(shadowSampler1D):    102(ptr) Variable UniformConstant

-             111:             TypeImage 7(float) 2D depth sampled format:Unknown

-             112:             TypeSampledImage 111

-             113:             TypePointer UniformConstant 112

-114(shadowSampler2D):    113(ptr) Variable UniformConstant

-             136:             TypePointer Output 19(fvec4)

-137(gl_Position):    136(ptr) Variable Output

-             139:             TypeInt 32 1

-             140:             TypePointer Input 139(int)

-141(gl_VertexID):    140(ptr) Variable Input

+               6:             TypeFloat 32

+               7:             TypePointer Function 6(float)

+               9:    6(float) Constant 1077936128

+              11:    6(float) Constant 1071971828

+              12:             TypeVector 6(float) 3

+              13:             TypePointer Function 12(fvec3)

+              15:    6(float) Constant 1076753334

+              16:    6(float) Constant 1079836148

+              17:   12(fvec3) ConstantComposite 11 15 16

+              18:             TypeVector 6(float) 4

+              19:             TypePointer Function 18(fvec4)

+              21:    6(float) Constant 1073741824

+              22:   18(fvec4) ConstantComposite 11 15 16 21

+              24:    6(float) Constant 0

+              25:   18(fvec4) ConstantComposite 24 24 24 24

+              26:             TypeImage 6(float) 1D sampled format:Unknown

+              27:             TypeSampledImage 26

+              28:             TypePointer UniformConstant 27

+29(texSampler1D):     28(ptr) Variable UniformConstant

+              37:             TypeVector 6(float) 2

+              38:             TypePointer Input 37(fvec2)

+    39(coords2D):     38(ptr) Variable Input

+              51:             TypeImage 6(float) 2D sampled format:Unknown

+              52:             TypeSampledImage 51

+              53:             TypePointer UniformConstant 52

+54(texSampler2D):     53(ptr) Variable UniformConstant

+              73:             TypeImage 6(float) 3D sampled format:Unknown

+              74:             TypeSampledImage 73

+              75:             TypePointer UniformConstant 74

+76(texSampler3D):     75(ptr) Variable UniformConstant

+              89:             TypeImage 6(float) Cube sampled format:Unknown

+              90:             TypeSampledImage 89

+              91:             TypePointer UniformConstant 90

+92(texSamplerCube):     91(ptr) Variable UniformConstant

+              99:             TypeImage 6(float) 1D depth sampled format:Unknown

+             100:             TypeSampledImage 99

+             101:             TypePointer UniformConstant 100

+102(shadowSampler1D):    101(ptr) Variable UniformConstant

+             110:             TypeImage 6(float) 2D depth sampled format:Unknown

+             111:             TypeSampledImage 110

+             112:             TypePointer UniformConstant 111

+113(shadowSampler2D):    112(ptr) Variable UniformConstant

+             135:             TypePointer Output 18(fvec4)

+136(gl_Position):    135(ptr) Variable Output

+             138:             TypeInt 32 1

+             139:             TypePointer Input 138(int)

+140(gl_VertexID):    139(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-          9(lod):      8(ptr) Variable Function

-    11(coords1D):      8(ptr) Variable Function

-    15(coords3D):     14(ptr) Variable Function

-    21(coords4D):     20(ptr) Variable Function

-       24(color):     20(ptr) Variable Function

-                              Store 9(lod) 10

-                              Store 11(coords1D) 12

-                              Store 15(coords3D) 18

-                              Store 21(coords4D) 23

-                              Store 24(color) 26

-              31:          28 Load 30(texSampler1D)

-              32:    7(float) Load 11(coords1D)

-              33:    7(float) Load 9(lod)

-              34:   19(fvec4) ImageSampleExplicitLod 31 32 33

-              35:   19(fvec4) Load 24(color)

-              36:   19(fvec4) FAdd 35 34

-                              Store 24(color) 36

-              37:          28 Load 30(texSampler1D)

-              41:   38(fvec2) Load 40(coords2D)

-              42:    7(float) Load 9(lod)

-              43:   19(fvec4) ImageSampleProjExplicitLod 37 41 42

-              44:   19(fvec4) Load 24(color)

-              45:   19(fvec4) FAdd 44 43

-                              Store 24(color) 45

-              46:          28 Load 30(texSampler1D)

-              47:   19(fvec4) Load 21(coords4D)

-              48:    7(float) Load 9(lod)

-              49:   19(fvec4) ImageSampleProjExplicitLod 46 47 48

-              50:   19(fvec4) Load 24(color)

-              51:   19(fvec4) FAdd 50 49

-                              Store 24(color) 51

-              56:          53 Load 55(texSampler2D)

-              57:   38(fvec2) Load 40(coords2D)

-              58:    7(float) Load 9(lod)

-              59:   19(fvec4) ImageSampleExplicitLod 56 57 58

-              60:   19(fvec4) Load 24(color)

-              61:   19(fvec4) FAdd 60 59

-                              Store 24(color) 61

-              62:          53 Load 55(texSampler2D)

-              63:   13(fvec3) Load 15(coords3D)

-              64:    7(float) Load 9(lod)

-              65:   19(fvec4) ImageSampleProjExplicitLod 62 63 64

-              66:   19(fvec4) Load 24(color)

-              67:   19(fvec4) FAdd 66 65

-                              Store 24(color) 67

-              68:          53 Load 55(texSampler2D)

-              69:   19(fvec4) Load 21(coords4D)

-              70:    7(float) Load 9(lod)

-              71:   19(fvec4) ImageSampleProjExplicitLod 68 69 70

-              72:   19(fvec4) Load 24(color)

-              73:   19(fvec4) FAdd 72 71

-                              Store 24(color) 73

-              78:          75 Load 77(texSampler3D)

-              79:   13(fvec3) Load 15(coords3D)

-              80:    7(float) Load 9(lod)

-              81:   19(fvec4) ImageSampleExplicitLod 78 79 80

-              82:   19(fvec4) Load 24(color)

-              83:   19(fvec4) FAdd 82 81

-                              Store 24(color) 83

-              84:          75 Load 77(texSampler3D)

-              85:   19(fvec4) Load 21(coords4D)

-              86:    7(float) Load 9(lod)

-              87:   19(fvec4) ImageSampleProjExplicitLod 84 85 86

-              88:   19(fvec4) Load 24(color)

-              89:   19(fvec4) FAdd 88 87

-                              Store 24(color) 89

-              94:          91 Load 93(texSamplerCube)

-              95:   13(fvec3) Load 15(coords3D)

-              96:    7(float) Load 9(lod)

-              97:   19(fvec4) ImageSampleExplicitLod 94 95 96

-              98:   19(fvec4) Load 24(color)

-              99:   19(fvec4) FAdd 98 97

-                              Store 24(color) 99

-             104:         101 Load 103(shadowSampler1D)

-             105:   13(fvec3) Load 15(coords3D)

-             106:    7(float) Load 9(lod)

-             107:    7(float) CompositeExtract 105 2

-             108:   19(fvec4) ImageSampleDrefExplicitLod 104 105 107 106

-             109:   19(fvec4) Load 24(color)

-             110:   19(fvec4) FAdd 109 108

-                              Store 24(color) 110

-             115:         112 Load 114(shadowSampler2D)

-             116:   13(fvec3) Load 15(coords3D)

-             117:    7(float) Load 9(lod)

-             118:    7(float) CompositeExtract 116 2

-             119:   19(fvec4) ImageSampleDrefExplicitLod 115 116 118 117

-             120:   19(fvec4) Load 24(color)

-             121:   19(fvec4) FAdd 120 119

-                              Store 24(color) 121

-             122:         101 Load 103(shadowSampler1D)

-             123:   19(fvec4) Load 21(coords4D)

-             124:    7(float) Load 9(lod)

-             125:    7(float) CompositeExtract 123 3

-             126:   19(fvec4) ImageSampleProjDrefExplicitLod 122 123 125 124

-             127:   19(fvec4) Load 24(color)

-             128:   19(fvec4) FAdd 127 126

-                              Store 24(color) 128

-             129:         112 Load 114(shadowSampler2D)

-             130:   19(fvec4) Load 21(coords4D)

-             131:    7(float) Load 9(lod)

-             132:    7(float) CompositeExtract 130 3

-             133:   19(fvec4) ImageSampleProjDrefExplicitLod 129 130 132 131

-             134:   19(fvec4) Load 24(color)

-             135:   19(fvec4) FAdd 134 133

-                              Store 24(color) 135

-             138:   19(fvec4) Load 24(color)

-                              Store 137(gl_Position) 138

-                              Branch 6

-               6:             Label

+          8(lod):      7(ptr) Variable Function

+    10(coords1D):      7(ptr) Variable Function

+    14(coords3D):     13(ptr) Variable Function

+    20(coords4D):     19(ptr) Variable Function

+       23(color):     19(ptr) Variable Function

+                              Store 8(lod) 9

+                              Store 10(coords1D) 11

+                              Store 14(coords3D) 17

+                              Store 20(coords4D) 22

+                              Store 23(color) 25

+              30:          27 Load 29(texSampler1D)

+              31:    6(float) Load 10(coords1D)

+              32:    6(float) Load 8(lod)

+              33:   18(fvec4) ImageSampleExplicitLod 30 31 32

+              34:   18(fvec4) Load 23(color)

+              35:   18(fvec4) FAdd 34 33

+                              Store 23(color) 35

+              36:          27 Load 29(texSampler1D)

+              40:   37(fvec2) Load 39(coords2D)

+              41:    6(float) Load 8(lod)

+              42:   18(fvec4) ImageSampleProjExplicitLod 36 40 41

+              43:   18(fvec4) Load 23(color)

+              44:   18(fvec4) FAdd 43 42

+                              Store 23(color) 44

+              45:          27 Load 29(texSampler1D)

+              46:   18(fvec4) Load 20(coords4D)

+              47:    6(float) Load 8(lod)

+              48:   18(fvec4) ImageSampleProjExplicitLod 45 46 47

+              49:   18(fvec4) Load 23(color)

+              50:   18(fvec4) FAdd 49 48

+                              Store 23(color) 50

+              55:          52 Load 54(texSampler2D)

+              56:   37(fvec2) Load 39(coords2D)

+              57:    6(float) Load 8(lod)

+              58:   18(fvec4) ImageSampleExplicitLod 55 56 57

+              59:   18(fvec4) Load 23(color)

+              60:   18(fvec4) FAdd 59 58

+                              Store 23(color) 60

+              61:          52 Load 54(texSampler2D)

+              62:   12(fvec3) Load 14(coords3D)

+              63:    6(float) Load 8(lod)

+              64:   18(fvec4) ImageSampleProjExplicitLod 61 62 63

+              65:   18(fvec4) Load 23(color)

+              66:   18(fvec4) FAdd 65 64

+                              Store 23(color) 66

+              67:          52 Load 54(texSampler2D)

+              68:   18(fvec4) Load 20(coords4D)

+              69:    6(float) Load 8(lod)

+              70:   18(fvec4) ImageSampleProjExplicitLod 67 68 69

+              71:   18(fvec4) Load 23(color)

+              72:   18(fvec4) FAdd 71 70

+                              Store 23(color) 72

+              77:          74 Load 76(texSampler3D)

+              78:   12(fvec3) Load 14(coords3D)

+              79:    6(float) Load 8(lod)

+              80:   18(fvec4) ImageSampleExplicitLod 77 78 79

+              81:   18(fvec4) Load 23(color)

+              82:   18(fvec4) FAdd 81 80

+                              Store 23(color) 82

+              83:          74 Load 76(texSampler3D)

+              84:   18(fvec4) Load 20(coords4D)

+              85:    6(float) Load 8(lod)

+              86:   18(fvec4) ImageSampleProjExplicitLod 83 84 85

+              87:   18(fvec4) Load 23(color)

+              88:   18(fvec4) FAdd 87 86

+                              Store 23(color) 88

+              93:          90 Load 92(texSamplerCube)

+              94:   12(fvec3) Load 14(coords3D)

+              95:    6(float) Load 8(lod)

+              96:   18(fvec4) ImageSampleExplicitLod 93 94 95

+              97:   18(fvec4) Load 23(color)

+              98:   18(fvec4) FAdd 97 96

+                              Store 23(color) 98

+             103:         100 Load 102(shadowSampler1D)

+             104:   12(fvec3) Load 14(coords3D)

+             105:    6(float) Load 8(lod)

+             106:    6(float) CompositeExtract 104 2

+             107:   18(fvec4) ImageSampleDrefExplicitLod 103 104 106 105

+             108:   18(fvec4) Load 23(color)

+             109:   18(fvec4) FAdd 108 107

+                              Store 23(color) 109

+             114:         111 Load 113(shadowSampler2D)

+             115:   12(fvec3) Load 14(coords3D)

+             116:    6(float) Load 8(lod)

+             117:    6(float) CompositeExtract 115 2

+             118:   18(fvec4) ImageSampleDrefExplicitLod 114 115 117 116

+             119:   18(fvec4) Load 23(color)

+             120:   18(fvec4) FAdd 119 118

+                              Store 23(color) 120

+             121:         100 Load 102(shadowSampler1D)

+             122:   18(fvec4) Load 20(coords4D)

+             123:    6(float) Load 8(lod)

+             124:    6(float) CompositeExtract 122 3

+             125:   18(fvec4) ImageSampleProjDrefExplicitLod 121 122 124 123

+             126:   18(fvec4) Load 23(color)

+             127:   18(fvec4) FAdd 126 125

+                              Store 23(color) 127

+             128:         111 Load 113(shadowSampler2D)

+             129:   18(fvec4) Load 20(coords4D)

+             130:    6(float) Load 8(lod)

+             131:    6(float) CompositeExtract 129 3

+             132:   18(fvec4) ImageSampleProjDrefExplicitLod 128 129 131 130

+             133:   18(fvec4) Load 23(color)

+             134:   18(fvec4) FAdd 133 132

+                              Store 23(color) 134

+             137:   18(fvec4) Load 23(color)

+                              Store 136(gl_Position) 137

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.types.frag.out b/Test/baseResults/spv.types.frag.out
index 8b97d73..27e4d6f 100755
--- a/Test/baseResults/spv.types.frag.out
+++ b/Test/baseResults/spv.types.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 264

+// Id's are bound by 263

 

                               Source GLSL 130

                               Capability Shader

@@ -14,333 +14,331 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "b"

-                              Name 11  "u_b"

-                              Name 13  "i_b"

-                              Name 18  "b2"

-                              Name 20  "u_b2"

-                              Name 23  "i_b2"

-                              Name 36  "b3"

-                              Name 38  "u_b3"

-                              Name 41  "i_b3"

-                              Name 60  "b4"

-                              Name 62  "u_b4"

-                              Name 65  "i_b4"

-                              Name 90  "i"

-                              Name 92  "u_i"

-                              Name 95  "i_i"

-                              Name 100  "i2"

-                              Name 102  "u_i2"

-                              Name 105  "i_i2"

-                              Name 110  "i3"

-                              Name 112  "u_i3"

-                              Name 115  "i_i3"

-                              Name 120  "i4"

-                              Name 122  "u_i4"

-                              Name 125  "i_i4"

-                              Name 130  "f"

-                              Name 132  "u_f"

-                              Name 135  "i_f"

-                              Name 140  "f2"

-                              Name 142  "u_f2"

-                              Name 145  "i_f2"

-                              Name 150  "f3"

-                              Name 152  "u_f3"

-                              Name 155  "i_f3"

-                              Name 160  "f4"

-                              Name 162  "u_f4"

-                              Name 165  "i_f4"

-                              Name 169  "gl_FragColor"

-                              Decorate 95(i_i) Flat

-                              Decorate 105(i_i2) Flat

-                              Decorate 115(i_i3) Flat

-                              Decorate 125(i_i4) Flat

-                              Decorate 135(i_f) Smooth

-                              Decorate 145(i_f2) Smooth

-                              Decorate 155(i_f3) Smooth

-                              Decorate 165(i_f4) Smooth

-                              Decorate 169(gl_FragColor) BuiltIn FragColor

+                              Name 8  "b"

+                              Name 10  "u_b"

+                              Name 12  "i_b"

+                              Name 17  "b2"

+                              Name 19  "u_b2"

+                              Name 22  "i_b2"

+                              Name 35  "b3"

+                              Name 37  "u_b3"

+                              Name 40  "i_b3"

+                              Name 59  "b4"

+                              Name 61  "u_b4"

+                              Name 64  "i_b4"

+                              Name 89  "i"

+                              Name 91  "u_i"

+                              Name 94  "i_i"

+                              Name 99  "i2"

+                              Name 101  "u_i2"

+                              Name 104  "i_i2"

+                              Name 109  "i3"

+                              Name 111  "u_i3"

+                              Name 114  "i_i3"

+                              Name 119  "i4"

+                              Name 121  "u_i4"

+                              Name 124  "i_i4"

+                              Name 129  "f"

+                              Name 131  "u_f"

+                              Name 134  "i_f"

+                              Name 139  "f2"

+                              Name 141  "u_f2"

+                              Name 144  "i_f2"

+                              Name 149  "f3"

+                              Name 151  "u_f3"

+                              Name 154  "i_f3"

+                              Name 159  "f4"

+                              Name 161  "u_f4"

+                              Name 164  "i_f4"

+                              Name 168  "gl_FragColor"

+                              Decorate 94(i_i) Flat

+                              Decorate 104(i_i2) Flat

+                              Decorate 114(i_i3) Flat

+                              Decorate 124(i_i4) Flat

+                              Decorate 134(i_f) Smooth

+                              Decorate 144(i_f2) Smooth

+                              Decorate 154(i_f3) Smooth

+                              Decorate 164(i_f4) Smooth

+                              Decorate 168(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeBool

-               8:             TypePointer Function 7(bool)

-              10:             TypePointer UniformConstant 7(bool)

-         11(u_b):     10(ptr) Variable UniformConstant

-         13(i_b):     10(ptr) Variable UniformConstant

-              16:             TypeVector 7(bool) 2

-              17:             TypePointer Function 16(bvec2)

-              19:             TypePointer UniformConstant 16(bvec2)

-        20(u_b2):     19(ptr) Variable UniformConstant

-        23(i_b2):     19(ptr) Variable UniformConstant

-              34:             TypeVector 7(bool) 3

-              35:             TypePointer Function 34(bvec3)

-              37:             TypePointer UniformConstant 34(bvec3)

-        38(u_b3):     37(ptr) Variable UniformConstant

-        41(i_b3):     37(ptr) Variable UniformConstant

-              58:             TypeVector 7(bool) 4

-              59:             TypePointer Function 58(bvec4)

-              61:             TypePointer UniformConstant 58(bvec4)

-        62(u_b4):     61(ptr) Variable UniformConstant

-        65(i_b4):     61(ptr) Variable UniformConstant

-              88:             TypeInt 32 1

-              89:             TypePointer Function 88(int)

-              91:             TypePointer UniformConstant 88(int)

-         92(u_i):     91(ptr) Variable UniformConstant

-              94:             TypePointer Input 88(int)

-         95(i_i):     94(ptr) Variable Input

-              98:             TypeVector 88(int) 2

-              99:             TypePointer Function 98(ivec2)

-             101:             TypePointer UniformConstant 98(ivec2)

-       102(u_i2):    101(ptr) Variable UniformConstant

-             104:             TypePointer Input 98(ivec2)

-       105(i_i2):    104(ptr) Variable Input

-             108:             TypeVector 88(int) 3

-             109:             TypePointer Function 108(ivec3)

-             111:             TypePointer UniformConstant 108(ivec3)

-       112(u_i3):    111(ptr) Variable UniformConstant

-             114:             TypePointer Input 108(ivec3)

-       115(i_i3):    114(ptr) Variable Input

-             118:             TypeVector 88(int) 4

-             119:             TypePointer Function 118(ivec4)

-             121:             TypePointer UniformConstant 118(ivec4)

-       122(u_i4):    121(ptr) Variable UniformConstant

-             124:             TypePointer Input 118(ivec4)

-       125(i_i4):    124(ptr) Variable Input

-             128:             TypeFloat 32

-             129:             TypePointer Function 128(float)

-             131:             TypePointer UniformConstant 128(float)

-        132(u_f):    131(ptr) Variable UniformConstant

-             134:             TypePointer Input 128(float)

-        135(i_f):    134(ptr) Variable Input

-             138:             TypeVector 128(float) 2

-             139:             TypePointer Function 138(fvec2)

-             141:             TypePointer UniformConstant 138(fvec2)

-       142(u_f2):    141(ptr) Variable UniformConstant

-             144:             TypePointer Input 138(fvec2)

-       145(i_f2):    144(ptr) Variable Input

-             148:             TypeVector 128(float) 3

-             149:             TypePointer Function 148(fvec3)

-             151:             TypePointer UniformConstant 148(fvec3)

-       152(u_f3):    151(ptr) Variable UniformConstant

-             154:             TypePointer Input 148(fvec3)

-       155(i_f3):    154(ptr) Variable Input

-             158:             TypeVector 128(float) 4

-             159:             TypePointer Function 158(fvec4)

-             161:             TypePointer UniformConstant 158(fvec4)

-       162(u_f4):    161(ptr) Variable UniformConstant

-             164:             TypePointer Input 158(fvec4)

-       165(i_f4):    164(ptr) Variable Input

-             168:             TypePointer Output 158(fvec4)

-169(gl_FragColor):    168(ptr) Variable Output

-             261:  128(float) Constant 1065353216

-             262:  158(fvec4) ConstantComposite 261 261 261 261

+               6:             TypeBool

+               7:             TypePointer Function 6(bool)

+               9:             TypePointer UniformConstant 6(bool)

+         10(u_b):      9(ptr) Variable UniformConstant

+         12(i_b):      9(ptr) Variable UniformConstant

+              15:             TypeVector 6(bool) 2

+              16:             TypePointer Function 15(bvec2)

+              18:             TypePointer UniformConstant 15(bvec2)

+        19(u_b2):     18(ptr) Variable UniformConstant

+        22(i_b2):     18(ptr) Variable UniformConstant

+              33:             TypeVector 6(bool) 3

+              34:             TypePointer Function 33(bvec3)

+              36:             TypePointer UniformConstant 33(bvec3)

+        37(u_b3):     36(ptr) Variable UniformConstant

+        40(i_b3):     36(ptr) Variable UniformConstant

+              57:             TypeVector 6(bool) 4

+              58:             TypePointer Function 57(bvec4)

+              60:             TypePointer UniformConstant 57(bvec4)

+        61(u_b4):     60(ptr) Variable UniformConstant

+        64(i_b4):     60(ptr) Variable UniformConstant

+              87:             TypeInt 32 1

+              88:             TypePointer Function 87(int)

+              90:             TypePointer UniformConstant 87(int)

+         91(u_i):     90(ptr) Variable UniformConstant

+              93:             TypePointer Input 87(int)

+         94(i_i):     93(ptr) Variable Input

+              97:             TypeVector 87(int) 2

+              98:             TypePointer Function 97(ivec2)

+             100:             TypePointer UniformConstant 97(ivec2)

+       101(u_i2):    100(ptr) Variable UniformConstant

+             103:             TypePointer Input 97(ivec2)

+       104(i_i2):    103(ptr) Variable Input

+             107:             TypeVector 87(int) 3

+             108:             TypePointer Function 107(ivec3)

+             110:             TypePointer UniformConstant 107(ivec3)

+       111(u_i3):    110(ptr) Variable UniformConstant

+             113:             TypePointer Input 107(ivec3)

+       114(i_i3):    113(ptr) Variable Input

+             117:             TypeVector 87(int) 4

+             118:             TypePointer Function 117(ivec4)

+             120:             TypePointer UniformConstant 117(ivec4)

+       121(u_i4):    120(ptr) Variable UniformConstant

+             123:             TypePointer Input 117(ivec4)

+       124(i_i4):    123(ptr) Variable Input

+             127:             TypeFloat 32

+             128:             TypePointer Function 127(float)

+             130:             TypePointer UniformConstant 127(float)

+        131(u_f):    130(ptr) Variable UniformConstant

+             133:             TypePointer Input 127(float)

+        134(i_f):    133(ptr) Variable Input

+             137:             TypeVector 127(float) 2

+             138:             TypePointer Function 137(fvec2)

+             140:             TypePointer UniformConstant 137(fvec2)

+       141(u_f2):    140(ptr) Variable UniformConstant

+             143:             TypePointer Input 137(fvec2)

+       144(i_f2):    143(ptr) Variable Input

+             147:             TypeVector 127(float) 3

+             148:             TypePointer Function 147(fvec3)

+             150:             TypePointer UniformConstant 147(fvec3)

+       151(u_f3):    150(ptr) Variable UniformConstant

+             153:             TypePointer Input 147(fvec3)

+       154(i_f3):    153(ptr) Variable Input

+             157:             TypeVector 127(float) 4

+             158:             TypePointer Function 157(fvec4)

+             160:             TypePointer UniformConstant 157(fvec4)

+       161(u_f4):    160(ptr) Variable UniformConstant

+             163:             TypePointer Input 157(fvec4)

+       164(i_f4):    163(ptr) Variable Input

+             167:             TypePointer Output 157(fvec4)

+168(gl_FragColor):    167(ptr) Variable Output

+             260:  127(float) Constant 1065353216

+             261:  157(fvec4) ConstantComposite 260 260 260 260

          4(main):           2 Function None 3

                5:             Label

-            9(b):      8(ptr) Variable Function

-          18(b2):     17(ptr) Variable Function

-          36(b3):     35(ptr) Variable Function

-          60(b4):     59(ptr) Variable Function

-           90(i):     89(ptr) Variable Function

-         100(i2):     99(ptr) Variable Function

-         110(i3):    109(ptr) Variable Function

-         120(i4):    119(ptr) Variable Function

-          130(f):    129(ptr) Variable Function

-         140(f2):    139(ptr) Variable Function

-         150(f3):    149(ptr) Variable Function

-         160(f4):    159(ptr) Variable Function

-             170:    159(ptr) Variable Function

-              12:     7(bool) Load 11(u_b)

-              14:     7(bool) Load 13(i_b)

-              15:     7(bool) LogicalAnd 12 14

-                              Store 9(b) 15

-              21:   16(bvec2) Load 20(u_b2)

-              22:     7(bool) CompositeExtract 21 0

-              24:   16(bvec2) Load 23(i_b2)

-              25:     7(bool) CompositeExtract 24 0

-              26:     7(bool) LogicalAnd 22 25

-              27:   16(bvec2) Load 20(u_b2)

-              28:     7(bool) CompositeExtract 27 1

-              29:     7(bool) LogicalAnd 26 28

-              30:   16(bvec2) Load 23(i_b2)

-              31:     7(bool) CompositeExtract 30 1

-              32:     7(bool) LogicalAnd 29 31

-              33:   16(bvec2) CompositeConstruct 32 32

-                              Store 18(b2) 33

-              39:   34(bvec3) Load 38(u_b3)

-              40:     7(bool) CompositeExtract 39 0

-              42:   34(bvec3) Load 41(i_b3)

-              43:     7(bool) CompositeExtract 42 0

-              44:     7(bool) LogicalAnd 40 43

-              45:   34(bvec3) Load 38(u_b3)

-              46:     7(bool) CompositeExtract 45 1

-              47:     7(bool) LogicalAnd 44 46

-              48:   34(bvec3) Load 41(i_b3)

-              49:     7(bool) CompositeExtract 48 1

-              50:     7(bool) LogicalAnd 47 49

-              51:   34(bvec3) Load 38(u_b3)

-              52:     7(bool) CompositeExtract 51 2

-              53:     7(bool) LogicalAnd 50 52

-              54:   34(bvec3) Load 41(i_b3)

-              55:     7(bool) CompositeExtract 54 2

-              56:     7(bool) LogicalAnd 53 55

-              57:   34(bvec3) CompositeConstruct 56 56 56

-                              Store 36(b3) 57

-              63:   58(bvec4) Load 62(u_b4)

-              64:     7(bool) CompositeExtract 63 0

-              66:   58(bvec4) Load 65(i_b4)

-              67:     7(bool) CompositeExtract 66 0

-              68:     7(bool) LogicalAnd 64 67

-              69:   58(bvec4) Load 62(u_b4)

-              70:     7(bool) CompositeExtract 69 1

-              71:     7(bool) LogicalAnd 68 70

-              72:   58(bvec4) Load 65(i_b4)

-              73:     7(bool) CompositeExtract 72 1

-              74:     7(bool) LogicalAnd 71 73

-              75:   58(bvec4) Load 62(u_b4)

-              76:     7(bool) CompositeExtract 75 2

-              77:     7(bool) LogicalAnd 74 76

-              78:   58(bvec4) Load 65(i_b4)

-              79:     7(bool) CompositeExtract 78 2

-              80:     7(bool) LogicalAnd 77 79

-              81:   58(bvec4) Load 62(u_b4)

-              82:     7(bool) CompositeExtract 81 3

-              83:     7(bool) LogicalAnd 80 82

-              84:   58(bvec4) Load 65(i_b4)

-              85:     7(bool) CompositeExtract 84 3

-              86:     7(bool) LogicalAnd 83 85

-              87:   58(bvec4) CompositeConstruct 86 86 86 86

-                              Store 60(b4) 87

-              93:     88(int) Load 92(u_i)

-              96:     88(int) Load 95(i_i)

-              97:     88(int) IAdd 93 96

-                              Store 90(i) 97

-             103:   98(ivec2) Load 102(u_i2)

-             106:   98(ivec2) Load 105(i_i2)

-             107:   98(ivec2) IAdd 103 106

-                              Store 100(i2) 107

-             113:  108(ivec3) Load 112(u_i3)

-             116:  108(ivec3) Load 115(i_i3)

-             117:  108(ivec3) IAdd 113 116

-                              Store 110(i3) 117

-             123:  118(ivec4) Load 122(u_i4)

-             126:  118(ivec4) Load 125(i_i4)

-             127:  118(ivec4) IAdd 123 126

-                              Store 120(i4) 127

-             133:  128(float) Load 132(u_f)

-             136:  128(float) Load 135(i_f)

-             137:  128(float) FAdd 133 136

-                              Store 130(f) 137

-             143:  138(fvec2) Load 142(u_f2)

-             146:  138(fvec2) Load 145(i_f2)

-             147:  138(fvec2) FAdd 143 146

-                              Store 140(f2) 147

-             153:  148(fvec3) Load 152(u_f3)

-             156:  148(fvec3) Load 155(i_f3)

-             157:  148(fvec3) FAdd 153 156

-                              Store 150(f3) 157

-             163:  158(fvec4) Load 162(u_f4)

-             166:  158(fvec4) Load 165(i_f4)

-             167:  158(fvec4) FAdd 163 166

-                              Store 160(f4) 167

-             171:     7(bool) Load 9(b)

-             172:   16(bvec2) Load 18(b2)

-             173:     7(bool) CompositeExtract 172 0

-             174:     7(bool) LogicalOr 171 173

-             175:   16(bvec2) Load 18(b2)

-             176:     7(bool) CompositeExtract 175 1

-             177:     7(bool) LogicalOr 174 176

-             178:   34(bvec3) Load 36(b3)

-             179:     7(bool) CompositeExtract 178 0

-             180:     7(bool) LogicalOr 177 179

-             181:   34(bvec3) Load 36(b3)

-             182:     7(bool) CompositeExtract 181 1

-             183:     7(bool) LogicalOr 180 182

-             184:   34(bvec3) Load 36(b3)

-             185:     7(bool) CompositeExtract 184 2

-             186:     7(bool) LogicalOr 183 185

-             187:   58(bvec4) Load 60(b4)

-             188:     7(bool) CompositeExtract 187 0

-             189:     7(bool) LogicalOr 186 188

-             190:   58(bvec4) Load 60(b4)

-             191:     7(bool) CompositeExtract 190 1

-             192:     7(bool) LogicalOr 189 191

-             193:   58(bvec4) Load 60(b4)

-             194:     7(bool) CompositeExtract 193 2

-             195:     7(bool) LogicalOr 192 194

-             196:   58(bvec4) Load 60(b4)

-             197:     7(bool) CompositeExtract 196 3

-             198:     7(bool) LogicalOr 195 197

-                              SelectionMerge 200 None

-                              BranchConditional 198 199 260

-             199:               Label

-             201:     88(int)   Load 90(i)

-             202:   98(ivec2)   Load 100(i2)

-             203:     88(int)   CompositeExtract 202 0

-             204:     88(int)   IAdd 201 203

-             205:   98(ivec2)   Load 100(i2)

-             206:     88(int)   CompositeExtract 205 1

-             207:     88(int)   IAdd 204 206

-             208:  108(ivec3)   Load 110(i3)

-             209:     88(int)   CompositeExtract 208 0

-             210:     88(int)   IAdd 207 209

-             211:  108(ivec3)   Load 110(i3)

-             212:     88(int)   CompositeExtract 211 1

-             213:     88(int)   IAdd 210 212

-             214:  108(ivec3)   Load 110(i3)

-             215:     88(int)   CompositeExtract 214 2

-             216:     88(int)   IAdd 213 215

-             217:  118(ivec4)   Load 120(i4)

-             218:     88(int)   CompositeExtract 217 0

-             219:     88(int)   IAdd 216 218

-             220:  118(ivec4)   Load 120(i4)

-             221:     88(int)   CompositeExtract 220 1

-             222:     88(int)   IAdd 219 221

-             223:  118(ivec4)   Load 120(i4)

-             224:     88(int)   CompositeExtract 223 2

-             225:     88(int)   IAdd 222 224

-             226:  118(ivec4)   Load 120(i4)

-             227:     88(int)   CompositeExtract 226 3

-             228:     88(int)   IAdd 225 227

-             229:  128(float)   ConvertSToF 228

-             230:  128(float)   Load 130(f)

-             231:  128(float)   FAdd 229 230

-             232:  138(fvec2)   Load 140(f2)

-             233:  128(float)   CompositeExtract 232 0

-             234:  128(float)   FAdd 231 233

-             235:  138(fvec2)   Load 140(f2)

-             236:  128(float)   CompositeExtract 235 1

-             237:  128(float)   FAdd 234 236

-             238:  148(fvec3)   Load 150(f3)

-             239:  128(float)   CompositeExtract 238 0

-             240:  128(float)   FAdd 237 239

-             241:  148(fvec3)   Load 150(f3)

-             242:  128(float)   CompositeExtract 241 1

-             243:  128(float)   FAdd 240 242

-             244:  148(fvec3)   Load 150(f3)

-             245:  128(float)   CompositeExtract 244 2

-             246:  128(float)   FAdd 243 245

-             247:  158(fvec4)   Load 160(f4)

-             248:  128(float)   CompositeExtract 247 0

-             249:  128(float)   FAdd 246 248

-             250:  158(fvec4)   Load 160(f4)

-             251:  128(float)   CompositeExtract 250 1

-             252:  128(float)   FAdd 249 251

-             253:  158(fvec4)   Load 160(f4)

-             254:  128(float)   CompositeExtract 253 2

-             255:  128(float)   FAdd 252 254

-             256:  158(fvec4)   Load 160(f4)

-             257:  128(float)   CompositeExtract 256 3

-             258:  128(float)   FAdd 255 257

-             259:  158(fvec4)   CompositeConstruct 258 258 258 258

-                                Store 170 259

-                                Branch 200

-             260:               Label

-                                Store 170 262

-                                Branch 200

-             200:             Label

-             263:  158(fvec4) Load 170

-                              Store 169(gl_FragColor) 263

-                              Branch 6

-               6:             Label

+            8(b):      7(ptr) Variable Function

+          17(b2):     16(ptr) Variable Function

+          35(b3):     34(ptr) Variable Function

+          59(b4):     58(ptr) Variable Function

+           89(i):     88(ptr) Variable Function

+          99(i2):     98(ptr) Variable Function

+         109(i3):    108(ptr) Variable Function

+         119(i4):    118(ptr) Variable Function

+          129(f):    128(ptr) Variable Function

+         139(f2):    138(ptr) Variable Function

+         149(f3):    148(ptr) Variable Function

+         159(f4):    158(ptr) Variable Function

+             169:    158(ptr) Variable Function

+              11:     6(bool) Load 10(u_b)

+              13:     6(bool) Load 12(i_b)

+              14:     6(bool) LogicalAnd 11 13

+                              Store 8(b) 14

+              20:   15(bvec2) Load 19(u_b2)

+              21:     6(bool) CompositeExtract 20 0

+              23:   15(bvec2) Load 22(i_b2)

+              24:     6(bool) CompositeExtract 23 0

+              25:     6(bool) LogicalAnd 21 24

+              26:   15(bvec2) Load 19(u_b2)

+              27:     6(bool) CompositeExtract 26 1

+              28:     6(bool) LogicalAnd 25 27

+              29:   15(bvec2) Load 22(i_b2)

+              30:     6(bool) CompositeExtract 29 1

+              31:     6(bool) LogicalAnd 28 30

+              32:   15(bvec2) CompositeConstruct 31 31

+                              Store 17(b2) 32

+              38:   33(bvec3) Load 37(u_b3)

+              39:     6(bool) CompositeExtract 38 0

+              41:   33(bvec3) Load 40(i_b3)

+              42:     6(bool) CompositeExtract 41 0

+              43:     6(bool) LogicalAnd 39 42

+              44:   33(bvec3) Load 37(u_b3)

+              45:     6(bool) CompositeExtract 44 1

+              46:     6(bool) LogicalAnd 43 45

+              47:   33(bvec3) Load 40(i_b3)

+              48:     6(bool) CompositeExtract 47 1

+              49:     6(bool) LogicalAnd 46 48

+              50:   33(bvec3) Load 37(u_b3)

+              51:     6(bool) CompositeExtract 50 2

+              52:     6(bool) LogicalAnd 49 51

+              53:   33(bvec3) Load 40(i_b3)

+              54:     6(bool) CompositeExtract 53 2

+              55:     6(bool) LogicalAnd 52 54

+              56:   33(bvec3) CompositeConstruct 55 55 55

+                              Store 35(b3) 56

+              62:   57(bvec4) Load 61(u_b4)

+              63:     6(bool) CompositeExtract 62 0

+              65:   57(bvec4) Load 64(i_b4)

+              66:     6(bool) CompositeExtract 65 0

+              67:     6(bool) LogicalAnd 63 66

+              68:   57(bvec4) Load 61(u_b4)

+              69:     6(bool) CompositeExtract 68 1

+              70:     6(bool) LogicalAnd 67 69

+              71:   57(bvec4) Load 64(i_b4)

+              72:     6(bool) CompositeExtract 71 1

+              73:     6(bool) LogicalAnd 70 72

+              74:   57(bvec4) Load 61(u_b4)

+              75:     6(bool) CompositeExtract 74 2

+              76:     6(bool) LogicalAnd 73 75

+              77:   57(bvec4) Load 64(i_b4)

+              78:     6(bool) CompositeExtract 77 2

+              79:     6(bool) LogicalAnd 76 78

+              80:   57(bvec4) Load 61(u_b4)

+              81:     6(bool) CompositeExtract 80 3

+              82:     6(bool) LogicalAnd 79 81

+              83:   57(bvec4) Load 64(i_b4)

+              84:     6(bool) CompositeExtract 83 3

+              85:     6(bool) LogicalAnd 82 84

+              86:   57(bvec4) CompositeConstruct 85 85 85 85

+                              Store 59(b4) 86

+              92:     87(int) Load 91(u_i)

+              95:     87(int) Load 94(i_i)

+              96:     87(int) IAdd 92 95

+                              Store 89(i) 96

+             102:   97(ivec2) Load 101(u_i2)

+             105:   97(ivec2) Load 104(i_i2)

+             106:   97(ivec2) IAdd 102 105

+                              Store 99(i2) 106

+             112:  107(ivec3) Load 111(u_i3)

+             115:  107(ivec3) Load 114(i_i3)

+             116:  107(ivec3) IAdd 112 115

+                              Store 109(i3) 116

+             122:  117(ivec4) Load 121(u_i4)

+             125:  117(ivec4) Load 124(i_i4)

+             126:  117(ivec4) IAdd 122 125

+                              Store 119(i4) 126

+             132:  127(float) Load 131(u_f)

+             135:  127(float) Load 134(i_f)

+             136:  127(float) FAdd 132 135

+                              Store 129(f) 136

+             142:  137(fvec2) Load 141(u_f2)

+             145:  137(fvec2) Load 144(i_f2)

+             146:  137(fvec2) FAdd 142 145

+                              Store 139(f2) 146

+             152:  147(fvec3) Load 151(u_f3)

+             155:  147(fvec3) Load 154(i_f3)

+             156:  147(fvec3) FAdd 152 155

+                              Store 149(f3) 156

+             162:  157(fvec4) Load 161(u_f4)

+             165:  157(fvec4) Load 164(i_f4)

+             166:  157(fvec4) FAdd 162 165

+                              Store 159(f4) 166

+             170:     6(bool) Load 8(b)

+             171:   15(bvec2) Load 17(b2)

+             172:     6(bool) CompositeExtract 171 0

+             173:     6(bool) LogicalOr 170 172

+             174:   15(bvec2) Load 17(b2)

+             175:     6(bool) CompositeExtract 174 1

+             176:     6(bool) LogicalOr 173 175

+             177:   33(bvec3) Load 35(b3)

+             178:     6(bool) CompositeExtract 177 0

+             179:     6(bool) LogicalOr 176 178

+             180:   33(bvec3) Load 35(b3)

+             181:     6(bool) CompositeExtract 180 1

+             182:     6(bool) LogicalOr 179 181

+             183:   33(bvec3) Load 35(b3)

+             184:     6(bool) CompositeExtract 183 2

+             185:     6(bool) LogicalOr 182 184

+             186:   57(bvec4) Load 59(b4)

+             187:     6(bool) CompositeExtract 186 0

+             188:     6(bool) LogicalOr 185 187

+             189:   57(bvec4) Load 59(b4)

+             190:     6(bool) CompositeExtract 189 1

+             191:     6(bool) LogicalOr 188 190

+             192:   57(bvec4) Load 59(b4)

+             193:     6(bool) CompositeExtract 192 2

+             194:     6(bool) LogicalOr 191 193

+             195:   57(bvec4) Load 59(b4)

+             196:     6(bool) CompositeExtract 195 3

+             197:     6(bool) LogicalOr 194 196

+                              SelectionMerge 199 None

+                              BranchConditional 197 198 259

+             198:               Label

+             200:     87(int)   Load 89(i)

+             201:   97(ivec2)   Load 99(i2)

+             202:     87(int)   CompositeExtract 201 0

+             203:     87(int)   IAdd 200 202

+             204:   97(ivec2)   Load 99(i2)

+             205:     87(int)   CompositeExtract 204 1

+             206:     87(int)   IAdd 203 205

+             207:  107(ivec3)   Load 109(i3)

+             208:     87(int)   CompositeExtract 207 0

+             209:     87(int)   IAdd 206 208

+             210:  107(ivec3)   Load 109(i3)

+             211:     87(int)   CompositeExtract 210 1

+             212:     87(int)   IAdd 209 211

+             213:  107(ivec3)   Load 109(i3)

+             214:     87(int)   CompositeExtract 213 2

+             215:     87(int)   IAdd 212 214

+             216:  117(ivec4)   Load 119(i4)

+             217:     87(int)   CompositeExtract 216 0

+             218:     87(int)   IAdd 215 217

+             219:  117(ivec4)   Load 119(i4)

+             220:     87(int)   CompositeExtract 219 1

+             221:     87(int)   IAdd 218 220

+             222:  117(ivec4)   Load 119(i4)

+             223:     87(int)   CompositeExtract 222 2

+             224:     87(int)   IAdd 221 223

+             225:  117(ivec4)   Load 119(i4)

+             226:     87(int)   CompositeExtract 225 3

+             227:     87(int)   IAdd 224 226

+             228:  127(float)   ConvertSToF 227

+             229:  127(float)   Load 129(f)

+             230:  127(float)   FAdd 228 229

+             231:  137(fvec2)   Load 139(f2)

+             232:  127(float)   CompositeExtract 231 0

+             233:  127(float)   FAdd 230 232

+             234:  137(fvec2)   Load 139(f2)

+             235:  127(float)   CompositeExtract 234 1

+             236:  127(float)   FAdd 233 235

+             237:  147(fvec3)   Load 149(f3)

+             238:  127(float)   CompositeExtract 237 0

+             239:  127(float)   FAdd 236 238

+             240:  147(fvec3)   Load 149(f3)

+             241:  127(float)   CompositeExtract 240 1

+             242:  127(float)   FAdd 239 241

+             243:  147(fvec3)   Load 149(f3)

+             244:  127(float)   CompositeExtract 243 2

+             245:  127(float)   FAdd 242 244

+             246:  157(fvec4)   Load 159(f4)

+             247:  127(float)   CompositeExtract 246 0

+             248:  127(float)   FAdd 245 247

+             249:  157(fvec4)   Load 159(f4)

+             250:  127(float)   CompositeExtract 249 1

+             251:  127(float)   FAdd 248 250

+             252:  157(fvec4)   Load 159(f4)

+             253:  127(float)   CompositeExtract 252 2

+             254:  127(float)   FAdd 251 253

+             255:  157(fvec4)   Load 159(f4)

+             256:  127(float)   CompositeExtract 255 3

+             257:  127(float)   FAdd 254 256

+             258:  157(fvec4)   CompositeConstruct 257 257 257 257

+                                Store 169 258

+                                Branch 199

+             259:               Label

+                                Store 169 261

+                                Branch 199

+             199:             Label

+             262:  157(fvec4) Load 169

+                              Store 168(gl_FragColor) 262

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.uint.frag.out b/Test/baseResults/spv.uint.frag.out
index 4a839ca..d7951a9 100755
--- a/Test/baseResults/spv.uint.frag.out
+++ b/Test/baseResults/spv.uint.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 207

+// Id's are bound by 206

 

                               Source ESSL 300

                               Capability Shader

@@ -14,344 +14,342 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "count"

-                              Name 13  "u"

-                              Name 16  "t"

-                              Name 54  "shiftedii"

-                              Name 56  "shiftedui"

-                              Name 58  "shiftediu"

-                              Name 59  "shifteduu"

-                              Name 67  "c"

-                              Name 71  "usampler"

-                              Name 76  "tc"

-                              Name 109  "af"

-                              Name 113  "ab"

-                              Name 117  "ai"

-                              Name 152  "mask1"

-                              Name 154  "mask2"

-                              Name 156  "mask3"

-                              Name 160  "mask4"

-                              Name 200  "f"

-                              Name 202  "v"

-                              Name 204  "i"

-                              Name 206  "b"

-                              Decorate 9(count) RelaxedPrecision

-                              Decorate 13(u) RelaxedPrecision

-                              Decorate 16(t) RelaxedPrecision

-                              Decorate 16(t) Flat

-                              Decorate 54(shiftedii) RelaxedPrecision

-                              Decorate 56(shiftedui) RelaxedPrecision

-                              Decorate 58(shiftediu) RelaxedPrecision

-                              Decorate 59(shifteduu) RelaxedPrecision

-                              Decorate 67(c) RelaxedPrecision

-                              Decorate 71(usampler) RelaxedPrecision

-                              Decorate 76(tc) RelaxedPrecision

-                              Decorate 76(tc) Smooth

-                              Decorate 109(af) RelaxedPrecision

-                              Decorate 117(ai) RelaxedPrecision

-                              Decorate 152(mask1) RelaxedPrecision

-                              Decorate 154(mask2) RelaxedPrecision

-                              Decorate 156(mask3) RelaxedPrecision

-                              Decorate 160(mask4) RelaxedPrecision

-                              Decorate 200(f) RelaxedPrecision

-                              Decorate 200(f) Smooth

-                              Decorate 200(f) NoStaticUse

-                              Decorate 202(v) RelaxedPrecision

-                              Decorate 202(v) NoStaticUse

-                              Decorate 204(i) RelaxedPrecision

-                              Decorate 204(i) NoStaticUse

-                              Decorate 206(b) NoStaticUse

+                              Name 8  "count"

+                              Name 12  "u"

+                              Name 15  "t"

+                              Name 53  "shiftedii"

+                              Name 55  "shiftedui"

+                              Name 57  "shiftediu"

+                              Name 58  "shifteduu"

+                              Name 66  "c"

+                              Name 70  "usampler"

+                              Name 75  "tc"

+                              Name 108  "af"

+                              Name 112  "ab"

+                              Name 116  "ai"

+                              Name 151  "mask1"

+                              Name 153  "mask2"

+                              Name 155  "mask3"

+                              Name 159  "mask4"

+                              Name 199  "f"

+                              Name 201  "v"

+                              Name 203  "i"

+                              Name 205  "b"

+                              Decorate 8(count) RelaxedPrecision

+                              Decorate 12(u) RelaxedPrecision

+                              Decorate 15(t) RelaxedPrecision

+                              Decorate 15(t) Flat

+                              Decorate 53(shiftedii) RelaxedPrecision

+                              Decorate 55(shiftedui) RelaxedPrecision

+                              Decorate 57(shiftediu) RelaxedPrecision

+                              Decorate 58(shifteduu) RelaxedPrecision

+                              Decorate 66(c) RelaxedPrecision

+                              Decorate 70(usampler) RelaxedPrecision

+                              Decorate 75(tc) RelaxedPrecision

+                              Decorate 75(tc) Smooth

+                              Decorate 108(af) RelaxedPrecision

+                              Decorate 116(ai) RelaxedPrecision

+                              Decorate 151(mask1) RelaxedPrecision

+                              Decorate 153(mask2) RelaxedPrecision

+                              Decorate 155(mask3) RelaxedPrecision

+                              Decorate 159(mask4) RelaxedPrecision

+                              Decorate 199(f) RelaxedPrecision

+                              Decorate 199(f) Smooth

+                              Decorate 199(f) NoStaticUse

+                              Decorate 201(v) RelaxedPrecision

+                              Decorate 201(v) NoStaticUse

+                              Decorate 203(i) RelaxedPrecision

+                              Decorate 203(i) NoStaticUse

+                              Decorate 205(b) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 1

-              11:             TypeInt 32 0

-              12:             TypePointer Function 11(int)

-              14:             TypeVector 11(int) 2

-              15:             TypePointer Input 14(ivec2)

-           16(t):     15(ptr) Variable Input

-              19:     11(int) Constant 3

-              21:             TypeBool

-              22:    21(bool) ConstantTrue

-              25:      7(int) Constant 2

-              30:      7(int) Constant 3

-              33:    21(bool) ConstantFalse

-              36:      7(int) Constant 5

-              41:      7(int) Constant 7

-              46:      7(int) Constant 11

-              51:      7(int) Constant 13

-              55:      7(int) Constant 4294967295

-              57:     11(int) Constant 4194303

-              65:             TypeVector 11(int) 4

-              66:             TypePointer Output 65(ivec4)

-           67(c):     66(ptr) Variable Output

-              68:             TypeImage 11(int) 2D sampled format:Unknown

-              69:             TypeSampledImage 68

-              70:             TypePointer UniformConstant 69

-    71(usampler):     70(ptr) Variable UniformConstant

-              73:             TypeFloat 32

-              74:             TypeVector 73(float) 2

-              75:             TypePointer Input 74(fvec2)

-          76(tc):     75(ptr) Variable Input

-              86:   73(float) Constant 1065353216

-              98:   73(float) Constant 1073741824

-              99:   74(fvec2) ConstantComposite 98 98

-             104:     11(int) Constant 4

-             108:             TypePointer Function 73(float)

-             112:             TypePointer Function 21(bool)

-             115:     11(int) Constant 0

-             123:     11(int) Constant 1

-             134:      7(int) Constant 17

-             139:      7(int) Constant 19

-             144:      7(int) Constant 23

-             149:      7(int) Constant 27

-             153:     11(int) Constant 161

-             155:     11(int) Constant 2576

-             158:      7(int) Constant 4

-             161:     11(int) Constant 2737

-             199:             TypePointer Input 73(float)

-          200(f):    199(ptr) Variable Input

-             201:             TypePointer UniformConstant 65(ivec4)

-          202(v):    201(ptr) Variable UniformConstant

-             203:             TypePointer UniformConstant 7(int)

-          204(i):    203(ptr) Variable UniformConstant

-             205:             TypePointer UniformConstant 21(bool)

-          206(b):    205(ptr) Variable UniformConstant

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 1

+              10:             TypeInt 32 0

+              11:             TypePointer Function 10(int)

+              13:             TypeVector 10(int) 2

+              14:             TypePointer Input 13(ivec2)

+           15(t):     14(ptr) Variable Input

+              18:     10(int) Constant 3

+              20:             TypeBool

+              21:    20(bool) ConstantTrue

+              24:      6(int) Constant 2

+              29:      6(int) Constant 3

+              32:    20(bool) ConstantFalse

+              35:      6(int) Constant 5

+              40:      6(int) Constant 7

+              45:      6(int) Constant 11

+              50:      6(int) Constant 13

+              54:      6(int) Constant 4294967295

+              56:     10(int) Constant 4194303

+              64:             TypeVector 10(int) 4

+              65:             TypePointer Output 64(ivec4)

+           66(c):     65(ptr) Variable Output

+              67:             TypeImage 10(int) 2D sampled format:Unknown

+              68:             TypeSampledImage 67

+              69:             TypePointer UniformConstant 68

+    70(usampler):     69(ptr) Variable UniformConstant

+              72:             TypeFloat 32

+              73:             TypeVector 72(float) 2

+              74:             TypePointer Input 73(fvec2)

+          75(tc):     74(ptr) Variable Input

+              85:   72(float) Constant 1065353216

+              97:   72(float) Constant 1073741824

+              98:   73(fvec2) ConstantComposite 97 97

+             103:     10(int) Constant 4

+             107:             TypePointer Function 72(float)

+             111:             TypePointer Function 20(bool)

+             114:     10(int) Constant 0

+             122:     10(int) Constant 1

+             133:      6(int) Constant 17

+             138:      6(int) Constant 19

+             143:      6(int) Constant 23

+             148:      6(int) Constant 27

+             152:     10(int) Constant 161

+             154:     10(int) Constant 2576

+             157:      6(int) Constant 4

+             160:     10(int) Constant 2737

+             198:             TypePointer Input 72(float)

+          199(f):    198(ptr) Variable Input

+             200:             TypePointer UniformConstant 64(ivec4)

+          201(v):    200(ptr) Variable UniformConstant

+             202:             TypePointer UniformConstant 6(int)

+          203(i):    202(ptr) Variable UniformConstant

+             204:             TypePointer UniformConstant 20(bool)

+          205(b):    204(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-        9(count):      8(ptr) Variable Function

-           13(u):     12(ptr) Variable Function

-   54(shiftedii):      8(ptr) Variable Function

-   56(shiftedui):     12(ptr) Variable Function

-   58(shiftediu):      8(ptr) Variable Function

-   59(shifteduu):     12(ptr) Variable Function

-         109(af):    108(ptr) Variable Function

-         113(ab):    112(ptr) Variable Function

-         117(ai):      8(ptr) Variable Function

-      152(mask1):     12(ptr) Variable Function

-      154(mask2):     12(ptr) Variable Function

-      156(mask3):     12(ptr) Variable Function

-      160(mask4):     12(ptr) Variable Function

-                              Store 9(count) 10

-              17:   14(ivec2) Load 16(t)

-              18:     11(int) CompositeExtract 17 1

-              20:     11(int) IAdd 18 19

-                              Store 13(u) 20

-                              SelectionMerge 24 None

-                              BranchConditional 22 23 24

-              23:               Label

-              26:      7(int)   Load 9(count)

-              27:      7(int)   IMul 26 25

-                                Store 9(count) 27

-                                Branch 24

-              24:             Label

-                              SelectionMerge 29 None

-                              BranchConditional 22 28 29

-              28:               Label

-              31:      7(int)   Load 9(count)

-              32:      7(int)   IMul 31 30

-                                Store 9(count) 32

-                                Branch 29

-              29:             Label

-                              SelectionMerge 35 None

-                              BranchConditional 33 34 35

-              34:               Label

-              37:      7(int)   Load 9(count)

-              38:      7(int)   IMul 37 36

-                                Store 9(count) 38

-                                Branch 35

-              35:             Label

-                              SelectionMerge 40 None

-                              BranchConditional 22 39 40

-              39:               Label

-              42:      7(int)   Load 9(count)

-              43:      7(int)   IMul 42 41

-                                Store 9(count) 43

-                                Branch 40

-              40:             Label

-                              SelectionMerge 45 None

-                              BranchConditional 22 44 45

-              44:               Label

-              47:      7(int)   Load 9(count)

-              48:      7(int)   IMul 47 46

-                                Store 9(count) 48

-                                Branch 45

-              45:             Label

-                              SelectionMerge 50 None

-                              BranchConditional 33 49 50

-              49:               Label

-              52:      7(int)   Load 9(count)

-              53:      7(int)   IMul 52 51

-                                Store 9(count) 53

-                                Branch 50

-              50:             Label

-                              Store 54(shiftedii) 55

-                              Store 56(shiftedui) 57

-                              Store 58(shiftediu) 55

-                              Store 59(shifteduu) 57

-              60:      7(int) Load 54(shiftedii)

-              61:      7(int) Load 58(shiftediu)

-              62:    21(bool) IEqual 60 61

-                              SelectionMerge 64 None

-                              BranchConditional 62 63 64

-              63:               Label

-              72:          69   Load 71(usampler)

-              77:   74(fvec2)   Load 76(tc)

-              78:   65(ivec4)   ImageSampleImplicitLod 72 77

-                                Store 67(c) 78

-                                Branch 64

-              64:             Label

-              79:     11(int) Load 56(shiftedui)

-              80:     11(int) Load 59(shifteduu)

-              81:    21(bool) IEqual 79 80

-                              SelectionMerge 83 None

-                              BranchConditional 81 82 83

-              82:               Label

-              84:          69   Load 71(usampler)

-              85:   74(fvec2)   Load 76(tc)

-              87:   74(fvec2)   CompositeConstruct 86 86

-              88:   74(fvec2)   FAdd 85 87

-              89:   65(ivec4)   ImageSampleImplicitLod 84 88

-                                Store 67(c) 89

-                                Branch 83

-              83:             Label

-              90:      7(int) Load 54(shiftedii)

-              91:     11(int) Load 56(shiftedui)

-              92:      7(int) Bitcast 91

-              93:    21(bool) IEqual 90 92

-                              SelectionMerge 95 None

-                              BranchConditional 93 94 95

-              94:               Label

-              96:          69   Load 71(usampler)

-              97:   74(fvec2)   Load 76(tc)

-             100:   74(fvec2)   FSub 97 99

-             101:   65(ivec4)   ImageSampleImplicitLod 96 100

-                                Store 67(c) 101

-                                Branch 95

-              95:             Label

-             102:   14(ivec2) Load 16(t)

-             103:     11(int) CompositeExtract 102 0

-             105:    21(bool) UGreaterThan 103 104

-                              SelectionMerge 107 None

-                              BranchConditional 105 106 107

-             106:               Label

-             110:     11(int)   Load 13(u)

-             111:   73(float)   ConvertUToF 110

-                                Store 109(af) 111

-             114:     11(int)   Load 13(u)

-             116:    21(bool)   INotEqual 114 115

-                                Store 113(ab) 116

-             118:     11(int)   Load 13(u)

-             119:      7(int)   Bitcast 118

-                                Store 117(ai) 119

-             120:   73(float)   Load 109(af)

-             121:     11(int)   ConvertFToU 120

-             122:    21(bool)   Load 113(ab)

-             124:     11(int)   Select 122 123 115

-             125:      7(int)   Load 117(ai)

-             126:     11(int)   Bitcast 125

-             127:      7(int)   Load 9(count)

-             128:     11(int)   Bitcast 127

-             129:   65(ivec4)   CompositeConstruct 121 124 126 128

-             130:   65(ivec4)   Load 67(c)

-             131:   65(ivec4)   IAdd 130 129

-                                Store 67(c) 131

-                                Branch 107

-             107:             Label

-                              SelectionMerge 133 None

-                              BranchConditional 22 132 133

-             132:               Label

-             135:      7(int)   Load 9(count)

-             136:      7(int)   IMul 135 134

-                                Store 9(count) 136

-                                Branch 133

-             133:             Label

-                              SelectionMerge 138 None

-                              BranchConditional 33 137 138

-             137:               Label

-             140:      7(int)   Load 9(count)

-             141:      7(int)   IMul 140 139

-                                Store 9(count) 141

-                                Branch 138

-             138:             Label

-                              SelectionMerge 143 None

-                              BranchConditional 22 142 143

-             142:               Label

-             145:      7(int)   Load 9(count)

-             146:      7(int)   IMul 145 144

-                                Store 9(count) 146

-                                Branch 143

-             143:             Label

-                              SelectionMerge 148 None

-                              BranchConditional 22 147 148

-             147:               Label

-             150:      7(int)   Load 9(count)

-             151:      7(int)   IMul 150 149

-                                Store 9(count) 151

-                                Branch 148

-             148:             Label

-                              Store 152(mask1) 153

-                              Store 154(mask2) 155

-             157:     11(int) Load 152(mask1)

-             159:     11(int) ShiftLeftLogical 157 158

-                              Store 156(mask3) 159

-                              Store 160(mask4) 161

-             162:     11(int) Load 156(mask3)

-             163:     11(int) Load 154(mask2)

-             164:    21(bool) IEqual 162 163

-                              SelectionMerge 166 None

-                              BranchConditional 164 165 166

-             165:               Label

-             167:      7(int)   Load 9(count)

-             168:      7(int)   IMul 167 25

-                                Store 9(count) 168

-                                Branch 166

-             166:             Label

-             169:     11(int) Load 156(mask3)

-             170:     11(int) Load 152(mask1)

-             171:     11(int) BitwiseAnd 169 170

-             172:    21(bool) INotEqual 171 115

-                              SelectionMerge 174 None

-                              BranchConditional 172 173 174

-             173:               Label

-             175:      7(int)   Load 9(count)

-             176:      7(int)   IMul 175 30

-                                Store 9(count) 176

-                                Branch 174

-             174:             Label

-             177:     11(int) Load 152(mask1)

-             178:     11(int) Load 156(mask3)

-             179:     11(int) BitwiseOr 177 178

-             180:     11(int) Load 160(mask4)

-             181:    21(bool) IEqual 179 180

-                              SelectionMerge 183 None

-                              BranchConditional 181 182 183

-             182:               Label

-             184:      7(int)   Load 9(count)

-             185:      7(int)   IMul 184 36

-                                Store 9(count) 185

-                                Branch 183

-             183:             Label

-             186:     11(int) Load 152(mask1)

-             187:     11(int) Load 160(mask4)

-             188:     11(int) BitwiseXor 186 187

-             189:    21(bool) IEqual 188 155

-                              SelectionMerge 191 None

-                              BranchConditional 189 190 191

-             190:               Label

-             192:      7(int)   Load 9(count)

-             193:      7(int)   IMul 192 41

-                                Store 9(count) 193

-                                Branch 191

-             191:             Label

-             194:      7(int) Load 9(count)

-             195:     11(int) Bitcast 194

-             196:   65(ivec4) CompositeConstruct 195 195 195 195

-             197:   65(ivec4) Load 67(c)

-             198:   65(ivec4) IAdd 197 196

-                              Store 67(c) 198

-                              Branch 6

-               6:             Label

+        8(count):      7(ptr) Variable Function

+           12(u):     11(ptr) Variable Function

+   53(shiftedii):      7(ptr) Variable Function

+   55(shiftedui):     11(ptr) Variable Function

+   57(shiftediu):      7(ptr) Variable Function

+   58(shifteduu):     11(ptr) Variable Function

+         108(af):    107(ptr) Variable Function

+         112(ab):    111(ptr) Variable Function

+         116(ai):      7(ptr) Variable Function

+      151(mask1):     11(ptr) Variable Function

+      153(mask2):     11(ptr) Variable Function

+      155(mask3):     11(ptr) Variable Function

+      159(mask4):     11(ptr) Variable Function

+                              Store 8(count) 9

+              16:   13(ivec2) Load 15(t)

+              17:     10(int) CompositeExtract 16 1

+              19:     10(int) IAdd 17 18

+                              Store 12(u) 19

+                              SelectionMerge 23 None

+                              BranchConditional 21 22 23

+              22:               Label

+              25:      6(int)   Load 8(count)

+              26:      6(int)   IMul 25 24

+                                Store 8(count) 26

+                                Branch 23

+              23:             Label

+                              SelectionMerge 28 None

+                              BranchConditional 21 27 28

+              27:               Label

+              30:      6(int)   Load 8(count)

+              31:      6(int)   IMul 30 29

+                                Store 8(count) 31

+                                Branch 28

+              28:             Label

+                              SelectionMerge 34 None

+                              BranchConditional 32 33 34

+              33:               Label

+              36:      6(int)   Load 8(count)

+              37:      6(int)   IMul 36 35

+                                Store 8(count) 37

+                                Branch 34

+              34:             Label

+                              SelectionMerge 39 None

+                              BranchConditional 21 38 39

+              38:               Label

+              41:      6(int)   Load 8(count)

+              42:      6(int)   IMul 41 40

+                                Store 8(count) 42

+                                Branch 39

+              39:             Label

+                              SelectionMerge 44 None

+                              BranchConditional 21 43 44

+              43:               Label

+              46:      6(int)   Load 8(count)

+              47:      6(int)   IMul 46 45

+                                Store 8(count) 47

+                                Branch 44

+              44:             Label

+                              SelectionMerge 49 None

+                              BranchConditional 32 48 49

+              48:               Label

+              51:      6(int)   Load 8(count)

+              52:      6(int)   IMul 51 50

+                                Store 8(count) 52

+                                Branch 49

+              49:             Label

+                              Store 53(shiftedii) 54

+                              Store 55(shiftedui) 56

+                              Store 57(shiftediu) 54

+                              Store 58(shifteduu) 56

+              59:      6(int) Load 53(shiftedii)

+              60:      6(int) Load 57(shiftediu)

+              61:    20(bool) IEqual 59 60

+                              SelectionMerge 63 None

+                              BranchConditional 61 62 63

+              62:               Label

+              71:          68   Load 70(usampler)

+              76:   73(fvec2)   Load 75(tc)

+              77:   64(ivec4)   ImageSampleImplicitLod 71 76

+                                Store 66(c) 77

+                                Branch 63

+              63:             Label

+              78:     10(int) Load 55(shiftedui)

+              79:     10(int) Load 58(shifteduu)

+              80:    20(bool) IEqual 78 79

+                              SelectionMerge 82 None

+                              BranchConditional 80 81 82

+              81:               Label

+              83:          68   Load 70(usampler)

+              84:   73(fvec2)   Load 75(tc)

+              86:   73(fvec2)   CompositeConstruct 85 85

+              87:   73(fvec2)   FAdd 84 86

+              88:   64(ivec4)   ImageSampleImplicitLod 83 87

+                                Store 66(c) 88

+                                Branch 82

+              82:             Label

+              89:      6(int) Load 53(shiftedii)

+              90:     10(int) Load 55(shiftedui)

+              91:      6(int) Bitcast 90

+              92:    20(bool) IEqual 89 91

+                              SelectionMerge 94 None

+                              BranchConditional 92 93 94

+              93:               Label

+              95:          68   Load 70(usampler)

+              96:   73(fvec2)   Load 75(tc)

+              99:   73(fvec2)   FSub 96 98

+             100:   64(ivec4)   ImageSampleImplicitLod 95 99

+                                Store 66(c) 100

+                                Branch 94

+              94:             Label

+             101:   13(ivec2) Load 15(t)

+             102:     10(int) CompositeExtract 101 0

+             104:    20(bool) UGreaterThan 102 103

+                              SelectionMerge 106 None

+                              BranchConditional 104 105 106

+             105:               Label

+             109:     10(int)   Load 12(u)

+             110:   72(float)   ConvertUToF 109

+                                Store 108(af) 110

+             113:     10(int)   Load 12(u)

+             115:    20(bool)   INotEqual 113 114

+                                Store 112(ab) 115

+             117:     10(int)   Load 12(u)

+             118:      6(int)   Bitcast 117

+                                Store 116(ai) 118

+             119:   72(float)   Load 108(af)

+             120:     10(int)   ConvertFToU 119

+             121:    20(bool)   Load 112(ab)

+             123:     10(int)   Select 121 122 114

+             124:      6(int)   Load 116(ai)

+             125:     10(int)   Bitcast 124

+             126:      6(int)   Load 8(count)

+             127:     10(int)   Bitcast 126

+             128:   64(ivec4)   CompositeConstruct 120 123 125 127

+             129:   64(ivec4)   Load 66(c)

+             130:   64(ivec4)   IAdd 129 128

+                                Store 66(c) 130

+                                Branch 106

+             106:             Label

+                              SelectionMerge 132 None

+                              BranchConditional 21 131 132

+             131:               Label

+             134:      6(int)   Load 8(count)

+             135:      6(int)   IMul 134 133

+                                Store 8(count) 135

+                                Branch 132

+             132:             Label

+                              SelectionMerge 137 None

+                              BranchConditional 32 136 137

+             136:               Label

+             139:      6(int)   Load 8(count)

+             140:      6(int)   IMul 139 138

+                                Store 8(count) 140

+                                Branch 137

+             137:             Label

+                              SelectionMerge 142 None

+                              BranchConditional 21 141 142

+             141:               Label

+             144:      6(int)   Load 8(count)

+             145:      6(int)   IMul 144 143

+                                Store 8(count) 145

+                                Branch 142

+             142:             Label

+                              SelectionMerge 147 None

+                              BranchConditional 21 146 147

+             146:               Label

+             149:      6(int)   Load 8(count)

+             150:      6(int)   IMul 149 148

+                                Store 8(count) 150

+                                Branch 147

+             147:             Label

+                              Store 151(mask1) 152

+                              Store 153(mask2) 154

+             156:     10(int) Load 151(mask1)

+             158:     10(int) ShiftLeftLogical 156 157

+                              Store 155(mask3) 158

+                              Store 159(mask4) 160

+             161:     10(int) Load 155(mask3)

+             162:     10(int) Load 153(mask2)

+             163:    20(bool) IEqual 161 162

+                              SelectionMerge 165 None

+                              BranchConditional 163 164 165

+             164:               Label

+             166:      6(int)   Load 8(count)

+             167:      6(int)   IMul 166 24

+                                Store 8(count) 167

+                                Branch 165

+             165:             Label

+             168:     10(int) Load 155(mask3)

+             169:     10(int) Load 151(mask1)

+             170:     10(int) BitwiseAnd 168 169

+             171:    20(bool) INotEqual 170 114

+                              SelectionMerge 173 None

+                              BranchConditional 171 172 173

+             172:               Label

+             174:      6(int)   Load 8(count)

+             175:      6(int)   IMul 174 29

+                                Store 8(count) 175

+                                Branch 173

+             173:             Label

+             176:     10(int) Load 151(mask1)

+             177:     10(int) Load 155(mask3)

+             178:     10(int) BitwiseOr 176 177

+             179:     10(int) Load 159(mask4)

+             180:    20(bool) IEqual 178 179

+                              SelectionMerge 182 None

+                              BranchConditional 180 181 182

+             181:               Label

+             183:      6(int)   Load 8(count)

+             184:      6(int)   IMul 183 35

+                                Store 8(count) 184

+                                Branch 182

+             182:             Label

+             185:     10(int) Load 151(mask1)

+             186:     10(int) Load 159(mask4)

+             187:     10(int) BitwiseXor 185 186

+             188:    20(bool) IEqual 187 154

+                              SelectionMerge 190 None

+                              BranchConditional 188 189 190

+             189:               Label

+             191:      6(int)   Load 8(count)

+             192:      6(int)   IMul 191 40

+                                Store 8(count) 192

+                                Branch 190

+             190:             Label

+             193:      6(int) Load 8(count)

+             194:     10(int) Bitcast 193

+             195:   64(ivec4) CompositeConstruct 194 194 194 194

+             196:   64(ivec4) Load 66(c)

+             197:   64(ivec4) IAdd 196 195

+                              Store 66(c) 197

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.uniformArray.frag.out b/Test/baseResults/spv.uniformArray.frag.out
index d2f7910..b653609 100755
--- a/Test/baseResults/spv.uniformArray.frag.out
+++ b/Test/baseResults/spv.uniformArray.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 53

+// Id's are bound by 52

 

                               Source GLSL 130

                               Capability Shader

@@ -14,69 +14,67 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "texColor"

-                              Name 15  "color"

-                              Name 26  "inColor"

-                              Name 36  "alpha"

-                              Name 47  "gl_FragColor"

-                              Name 52  "texSampler2D"

-                              Decorate 47(gl_FragColor) BuiltIn FragColor

-                              Decorate 52(texSampler2D) NoStaticUse

+                              Name 9  "texColor"

+                              Name 14  "color"

+                              Name 25  "inColor"

+                              Name 35  "alpha"

+                              Name 46  "gl_FragColor"

+                              Name 51  "texSampler2D"

+                              Decorate 46(gl_FragColor) BuiltIn FragColor

+                              Decorate 51(texSampler2D) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypeInt 32 0

-              12:     11(int) Constant 6

-              13:             TypeArray 8(fvec4) 12

-              14:             TypePointer UniformConstant 13

-       15(color):     14(ptr) Variable UniformConstant

-              16:             TypeInt 32 1

-              17:     16(int) Constant 1

-              18:             TypePointer UniformConstant 8(fvec4)

-              24:             TypeVector 7(float) 3

-              25:             TypePointer UniformConstant 24(fvec3)

-     26(inColor):     25(ptr) Variable UniformConstant

-              33:     11(int) Constant 16

-              34:             TypeArray 7(float) 33

-              35:             TypePointer UniformConstant 34

-       36(alpha):     35(ptr) Variable UniformConstant

-              37:     16(int) Constant 12

-              38:             TypePointer UniformConstant 7(float)

-              46:             TypePointer Output 8(fvec4)

-47(gl_FragColor):     46(ptr) Variable Output

-              49:             TypeImage 7(float) 2D sampled format:Unknown

-              50:             TypeSampledImage 49

-              51:             TypePointer UniformConstant 50

-52(texSampler2D):     51(ptr) Variable UniformConstant

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypeInt 32 0

+              11:     10(int) Constant 6

+              12:             TypeArray 7(fvec4) 11

+              13:             TypePointer UniformConstant 12

+       14(color):     13(ptr) Variable UniformConstant

+              15:             TypeInt 32 1

+              16:     15(int) Constant 1

+              17:             TypePointer UniformConstant 7(fvec4)

+              23:             TypeVector 6(float) 3

+              24:             TypePointer UniformConstant 23(fvec3)

+     25(inColor):     24(ptr) Variable UniformConstant

+              32:     10(int) Constant 16

+              33:             TypeArray 6(float) 32

+              34:             TypePointer UniformConstant 33

+       35(alpha):     34(ptr) Variable UniformConstant

+              36:     15(int) Constant 12

+              37:             TypePointer UniformConstant 6(float)

+              45:             TypePointer Output 7(fvec4)

+46(gl_FragColor):     45(ptr) Variable Output

+              48:             TypeImage 6(float) 2D sampled format:Unknown

+              49:             TypeSampledImage 48

+              50:             TypePointer UniformConstant 49

+51(texSampler2D):     50(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-    10(texColor):      9(ptr) Variable Function

-              19:     18(ptr) AccessChain 15(color) 17

-              20:    8(fvec4) Load 19

-              21:     18(ptr) AccessChain 15(color) 17

-              22:    8(fvec4) Load 21

-              23:    8(fvec4) FAdd 20 22

-                              Store 10(texColor) 23

-              27:   24(fvec3) Load 26(inColor)

-              28:    8(fvec4) Load 10(texColor)

-              29:   24(fvec3) VectorShuffle 28 28 0 1 2

-              30:   24(fvec3) FAdd 29 27

-              31:    8(fvec4) Load 10(texColor)

-              32:    8(fvec4) VectorShuffle 31 30 4 5 6 3

-                              Store 10(texColor) 32

-              39:     38(ptr) AccessChain 36(alpha) 37

-              40:    7(float) Load 39

-              41:    8(fvec4) Load 10(texColor)

-              42:    7(float) CompositeExtract 41 3

-              43:    7(float) FAdd 42 40

-              44:    8(fvec4) Load 10(texColor)

-              45:    8(fvec4) CompositeInsert 43 44 3

-                              Store 10(texColor) 45

-              48:    8(fvec4) Load 10(texColor)

-                              Store 47(gl_FragColor) 48

-                              Branch 6

-               6:             Label

+     9(texColor):      8(ptr) Variable Function

+              18:     17(ptr) AccessChain 14(color) 16

+              19:    7(fvec4) Load 18

+              20:     17(ptr) AccessChain 14(color) 16

+              21:    7(fvec4) Load 20

+              22:    7(fvec4) FAdd 19 21

+                              Store 9(texColor) 22

+              26:   23(fvec3) Load 25(inColor)

+              27:    7(fvec4) Load 9(texColor)

+              28:   23(fvec3) VectorShuffle 27 27 0 1 2

+              29:   23(fvec3) FAdd 28 26

+              30:    7(fvec4) Load 9(texColor)

+              31:    7(fvec4) VectorShuffle 30 29 4 5 6 3

+                              Store 9(texColor) 31

+              38:     37(ptr) AccessChain 35(alpha) 36

+              39:    6(float) Load 38

+              40:    7(fvec4) Load 9(texColor)

+              41:    6(float) CompositeExtract 40 3

+              42:    6(float) FAdd 41 39

+              43:    7(fvec4) Load 9(texColor)

+              44:    7(fvec4) CompositeInsert 42 43 3

+                              Store 9(texColor) 44

+              47:    7(fvec4) Load 9(texColor)

+                              Store 46(gl_FragColor) 47

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.variableArrayIndex.frag.out b/Test/baseResults/spv.variableArrayIndex.frag.out
index 5931d59..215c22a 100755
--- a/Test/baseResults/spv.variableArrayIndex.frag.out
+++ b/Test/baseResults/spv.variableArrayIndex.frag.out
@@ -7,7 +7,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 94

+// Id's are bound by 93

 

                               Source GLSL 130

                               Capability Shader

@@ -16,133 +16,131 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 9  "iLocal"

-                              Name 11  "Count"

-                              Name 14  "lunarStruct1"

-                              MemberName 14(lunarStruct1) 0  "i"

-                              MemberName 14(lunarStruct1) 1  "f"

-                              Name 15  "lunarStruct2"

-                              MemberName 15(lunarStruct2) 0  "i"

-                              MemberName 15(lunarStruct2) 1  "f"

-                              MemberName 15(lunarStruct2) 2  "s1_1"

-                              Name 19  "lunarStruct3"

-                              MemberName 19(lunarStruct3) 0  "s2_1"

-                              MemberName 19(lunarStruct3) 1  "i"

-                              MemberName 19(lunarStruct3) 2  "f"

-                              MemberName 19(lunarStruct3) 3  "s1_1"

-                              Name 21  "foo3"

-                              Name 31  "scale"

-                              Name 35  "foo2"

-                              Name 37  "foo"

-                              Name 55  "gl_FragColor"

-                              Name 60  "sampler"

-                              Name 64  "coord"

-                              Name 70  "constructed"

-                              Decorate 55(gl_FragColor) BuiltIn FragColor

-                              Decorate 64(coord) Smooth

+                              Name 8  "iLocal"

+                              Name 10  "Count"

+                              Name 13  "lunarStruct1"

+                              MemberName 13(lunarStruct1) 0  "i"

+                              MemberName 13(lunarStruct1) 1  "f"

+                              Name 14  "lunarStruct2"

+                              MemberName 14(lunarStruct2) 0  "i"

+                              MemberName 14(lunarStruct2) 1  "f"

+                              MemberName 14(lunarStruct2) 2  "s1_1"

+                              Name 18  "lunarStruct3"

+                              MemberName 18(lunarStruct3) 0  "s2_1"

+                              MemberName 18(lunarStruct3) 1  "i"

+                              MemberName 18(lunarStruct3) 2  "f"

+                              MemberName 18(lunarStruct3) 3  "s1_1"

+                              Name 20  "foo3"

+                              Name 30  "scale"

+                              Name 34  "foo2"

+                              Name 36  "foo"

+                              Name 54  "gl_FragColor"

+                              Name 59  "sampler"

+                              Name 63  "coord"

+                              Name 69  "constructed"

+                              Decorate 54(gl_FragColor) BuiltIn FragColor

+                              Decorate 63(coord) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:             TypePointer UniformConstant 7(int)

-       11(Count):     10(ptr) Variable UniformConstant

-              13:             TypeFloat 32

-14(lunarStruct1):             TypeStruct 7(int) 13(float)

-15(lunarStruct2):             TypeStruct 7(int) 13(float) 14(lunarStruct1)

-              16:             TypeInt 32 0

-              17:     16(int) Constant 3

-              18:             TypeArray 15(lunarStruct2) 17

-19(lunarStruct3):             TypeStruct 18 7(int) 13(float) 14(lunarStruct1)

-              20:             TypePointer UniformConstant 19(lunarStruct3)

-        21(foo3):     20(ptr) Variable UniformConstant

-              22:      7(int) Constant 0

-              23:      7(int) Constant 1

-              26:             TypeBool

-              30:             TypePointer Function 13(float)

-              32:     16(int) Constant 5

-              33:             TypeArray 15(lunarStruct2) 32

-              34:             TypePointer UniformConstant 33

-        35(foo2):     34(ptr) Variable UniformConstant

-              36:             TypePointer UniformConstant 14(lunarStruct1)

-         37(foo):     36(ptr) Variable UniformConstant

-              42:      7(int) Constant 2

-              47:             TypePointer UniformConstant 13(float)

-              53:             TypeVector 13(float) 4

-              54:             TypePointer Output 53(fvec4)

-55(gl_FragColor):     54(ptr) Variable Output

-              57:             TypeImage 13(float) 2D sampled format:Unknown

-              58:             TypeSampledImage 57

-              59:             TypePointer UniformConstant 58

-     60(sampler):     59(ptr) Variable UniformConstant

-              62:             TypeVector 13(float) 2

-              63:             TypePointer Input 62(fvec2)

-       64(coord):     63(ptr) Variable Input

-              68:             TypeArray 62(fvec2) 17

-              69:             TypePointer Function 68

-              74:   13(float) Constant 1065353216

-              75:   13(float) Constant 1073741824

-              76:   62(fvec2) ConstantComposite 74 75

-              80:             TypePointer Function 62(fvec2)

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:             TypePointer UniformConstant 6(int)

+       10(Count):      9(ptr) Variable UniformConstant

+              12:             TypeFloat 32

+13(lunarStruct1):             TypeStruct 6(int) 12(float)

+14(lunarStruct2):             TypeStruct 6(int) 12(float) 13(lunarStruct1)

+              15:             TypeInt 32 0

+              16:     15(int) Constant 3

+              17:             TypeArray 14(lunarStruct2) 16

+18(lunarStruct3):             TypeStruct 17 6(int) 12(float) 13(lunarStruct1)

+              19:             TypePointer UniformConstant 18(lunarStruct3)

+        20(foo3):     19(ptr) Variable UniformConstant

+              21:      6(int) Constant 0

+              22:      6(int) Constant 1

+              25:             TypeBool

+              29:             TypePointer Function 12(float)

+              31:     15(int) Constant 5

+              32:             TypeArray 14(lunarStruct2) 31

+              33:             TypePointer UniformConstant 32

+        34(foo2):     33(ptr) Variable UniformConstant

+              35:             TypePointer UniformConstant 13(lunarStruct1)

+         36(foo):     35(ptr) Variable UniformConstant

+              41:      6(int) Constant 2

+              46:             TypePointer UniformConstant 12(float)

+              52:             TypeVector 12(float) 4

+              53:             TypePointer Output 52(fvec4)

+54(gl_FragColor):     53(ptr) Variable Output

+              56:             TypeImage 12(float) 2D sampled format:Unknown

+              57:             TypeSampledImage 56

+              58:             TypePointer UniformConstant 57

+     59(sampler):     58(ptr) Variable UniformConstant

+              61:             TypeVector 12(float) 2

+              62:             TypePointer Input 61(fvec2)

+       63(coord):     62(ptr) Variable Input

+              67:             TypeArray 61(fvec2) 16

+              68:             TypePointer Function 67

+              73:   12(float) Constant 1065353216

+              74:   12(float) Constant 1073741824

+              75:   61(fvec2) ConstantComposite 73 74

+              79:             TypePointer Function 61(fvec2)

          4(main):           2 Function None 3

                5:             Label

-       9(iLocal):      8(ptr) Variable Function

-       31(scale):     30(ptr) Variable Function

- 70(constructed):     69(ptr) Variable Function

-              12:      7(int) Load 11(Count)

-                              Store 9(iLocal) 12

-              24:     10(ptr) AccessChain 21(foo3) 22 23 22

-              25:      7(int) Load 24

-              27:    26(bool) SGreaterThan 25 22

-                              SelectionMerge 29 None

-                              BranchConditional 27 28 50

-              28:               Label

-              38:     10(ptr)   AccessChain 37(foo) 22

-              39:      7(int)   Load 38

-              40:     10(ptr)   AccessChain 21(foo3) 22 39 22

-              41:      7(int)   Load 40

-              43:      7(int)   IAdd 41 42

-              44:      7(int)   Load 9(iLocal)

-              45:      7(int)   IAdd 44 23

-                                Store 9(iLocal) 45

-              46:      7(int)   IAdd 43 45

-              48:     47(ptr)   AccessChain 35(foo2) 46 42 23

-              49:   13(float)   Load 48

-                                Store 31(scale) 49

-                                Branch 29

-              50:               Label

-              51:     47(ptr)   AccessChain 21(foo3) 22 22 42 23

-              52:   13(float)   Load 51

-                                Store 31(scale) 52

-                                Branch 29

-              29:             Label

-              56:   13(float) Load 31(scale)

-              61:          58 Load 60(sampler)

-              65:   62(fvec2) Load 64(coord)

-              66:   53(fvec4) ImageSampleImplicitLod 61 65

-              67:   53(fvec4) VectorTimesScalar 66 56

-                              Store 55(gl_FragColor) 67

-              71:   62(fvec2) Load 64(coord)

-              72:   13(float) Load 31(scale)

-              73:   62(fvec2) CompositeConstruct 72 72

-              77:          68 CompositeConstruct 71 73 76

-                              Store 70(constructed) 77

-              78:     10(ptr) AccessChain 37(foo) 22

-              79:      7(int) Load 78

-              81:     80(ptr) AccessChain 70(constructed) 79

-              82:   62(fvec2) Load 81

-              83:     10(ptr) AccessChain 37(foo) 22

-              84:      7(int) Load 83

-              85:     80(ptr) AccessChain 70(constructed) 84

-              86:   62(fvec2) Load 85

-              87:   13(float) CompositeExtract 82 0

-              88:   13(float) CompositeExtract 82 1

-              89:   13(float) CompositeExtract 86 0

-              90:   13(float) CompositeExtract 86 1

-              91:   53(fvec4) CompositeConstruct 87 88 89 90

-              92:   53(fvec4) Load 55(gl_FragColor)

-              93:   53(fvec4) FAdd 92 91

-                              Store 55(gl_FragColor) 93

-                              Branch 6

-               6:             Label

+       8(iLocal):      7(ptr) Variable Function

+       30(scale):     29(ptr) Variable Function

+ 69(constructed):     68(ptr) Variable Function

+              11:      6(int) Load 10(Count)

+                              Store 8(iLocal) 11

+              23:      9(ptr) AccessChain 20(foo3) 21 22 21

+              24:      6(int) Load 23

+              26:    25(bool) SGreaterThan 24 21

+                              SelectionMerge 28 None

+                              BranchConditional 26 27 49

+              27:               Label

+              37:      9(ptr)   AccessChain 36(foo) 21

+              38:      6(int)   Load 37

+              39:      9(ptr)   AccessChain 20(foo3) 21 38 21

+              40:      6(int)   Load 39

+              42:      6(int)   IAdd 40 41

+              43:      6(int)   Load 8(iLocal)

+              44:      6(int)   IAdd 43 22

+                                Store 8(iLocal) 44

+              45:      6(int)   IAdd 42 44

+              47:     46(ptr)   AccessChain 34(foo2) 45 41 22

+              48:   12(float)   Load 47

+                                Store 30(scale) 48

+                                Branch 28

+              49:               Label

+              50:     46(ptr)   AccessChain 20(foo3) 21 21 41 22

+              51:   12(float)   Load 50

+                                Store 30(scale) 51

+                                Branch 28

+              28:             Label

+              55:   12(float) Load 30(scale)

+              60:          57 Load 59(sampler)

+              64:   61(fvec2) Load 63(coord)

+              65:   52(fvec4) ImageSampleImplicitLod 60 64

+              66:   52(fvec4) VectorTimesScalar 65 55

+                              Store 54(gl_FragColor) 66

+              70:   61(fvec2) Load 63(coord)

+              71:   12(float) Load 30(scale)

+              72:   61(fvec2) CompositeConstruct 71 71

+              76:          67 CompositeConstruct 70 72 75

+                              Store 69(constructed) 76

+              77:      9(ptr) AccessChain 36(foo) 21

+              78:      6(int) Load 77

+              80:     79(ptr) AccessChain 69(constructed) 78

+              81:   61(fvec2) Load 80

+              82:      9(ptr) AccessChain 36(foo) 21

+              83:      6(int) Load 82

+              84:     79(ptr) AccessChain 69(constructed) 83

+              85:   61(fvec2) Load 84

+              86:   12(float) CompositeExtract 81 0

+              87:   12(float) CompositeExtract 81 1

+              88:   12(float) CompositeExtract 85 0

+              89:   12(float) CompositeExtract 85 1

+              90:   52(fvec4) CompositeConstruct 86 87 88 89

+              91:   52(fvec4) Load 54(gl_FragColor)

+              92:   52(fvec4) FAdd 91 90

+                              Store 54(gl_FragColor) 92

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.varyingArray.frag.out b/Test/baseResults/spv.varyingArray.frag.out
index 848470f..f42947f 100755
--- a/Test/baseResults/spv.varyingArray.frag.out
+++ b/Test/baseResults/spv.varyingArray.frag.out
@@ -10,7 +10,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 62

+// Id's are bound by 61

 

                               Source GLSL 130

                               Capability Shader

@@ -19,82 +19,80 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "texColor"

-                              Name 14  "texSampler2D"

-                              Name 20  "gl_TexCoord"

-                              Name 35  "color"

-                              Name 40  "alpha"

-                              Name 45  "gl_FragColor"

-                              Name 49  "foo"

-                              Decorate 20(gl_TexCoord) Smooth

-                              Decorate 35(color) Smooth

-                              Decorate 40(alpha) Smooth

-                              Decorate 45(gl_FragColor) BuiltIn FragColor

-                              Decorate 49(foo) Smooth

+                              Name 9  "texColor"

+                              Name 13  "texSampler2D"

+                              Name 19  "gl_TexCoord"

+                              Name 34  "color"

+                              Name 39  "alpha"

+                              Name 44  "gl_FragColor"

+                              Name 48  "foo"

+                              Decorate 19(gl_TexCoord) Smooth

+                              Decorate 34(color) Smooth

+                              Decorate 39(alpha) Smooth

+                              Decorate 44(gl_FragColor) BuiltIn FragColor

+                              Decorate 48(foo) Smooth

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypeImage 7(float) 2D sampled format:Unknown

-              12:             TypeSampledImage 11

-              13:             TypePointer UniformConstant 12

-14(texSampler2D):     13(ptr) Variable UniformConstant

-              16:             TypeInt 32 0

-              17:     16(int) Constant 6

-              18:             TypeArray 8(fvec4) 17

-              19:             TypePointer Input 18

- 20(gl_TexCoord):     19(ptr) Variable Input

-              21:             TypeInt 32 1

-              22:     21(int) Constant 4

-              23:             TypePointer Input 8(fvec4)

-              26:     21(int) Constant 5

-              30:             TypeVector 7(float) 2

-       35(color):     23(ptr) Variable Input

-              39:             TypePointer Input 7(float)

-       40(alpha):     39(ptr) Variable Input

-              44:             TypePointer Output 8(fvec4)

-45(gl_FragColor):     44(ptr) Variable Output

-              46:     16(int) Constant 3

-              47:             TypeArray 8(fvec4) 46

-              48:             TypePointer Input 47

-         49(foo):     48(ptr) Variable Input

-              50:     21(int) Constant 1

-              53:     21(int) Constant 0

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypeImage 6(float) 2D sampled format:Unknown

+              11:             TypeSampledImage 10

+              12:             TypePointer UniformConstant 11

+13(texSampler2D):     12(ptr) Variable UniformConstant

+              15:             TypeInt 32 0

+              16:     15(int) Constant 6

+              17:             TypeArray 7(fvec4) 16

+              18:             TypePointer Input 17

+ 19(gl_TexCoord):     18(ptr) Variable Input

+              20:             TypeInt 32 1

+              21:     20(int) Constant 4

+              22:             TypePointer Input 7(fvec4)

+              25:     20(int) Constant 5

+              29:             TypeVector 6(float) 2

+       34(color):     22(ptr) Variable Input

+              38:             TypePointer Input 6(float)

+       39(alpha):     38(ptr) Variable Input

+              43:             TypePointer Output 7(fvec4)

+44(gl_FragColor):     43(ptr) Variable Output

+              45:     15(int) Constant 3

+              46:             TypeArray 7(fvec4) 45

+              47:             TypePointer Input 46

+         48(foo):     47(ptr) Variable Input

+              49:     20(int) Constant 1

+              52:     20(int) Constant 0

          4(main):           2 Function None 3

                5:             Label

-    10(texColor):      9(ptr) Variable Function

-              15:          12 Load 14(texSampler2D)

-              24:     23(ptr) AccessChain 20(gl_TexCoord) 22

-              25:    8(fvec4) Load 24

-              27:     23(ptr) AccessChain 20(gl_TexCoord) 26

-              28:    8(fvec4) Load 27

-              29:    8(fvec4) FAdd 25 28

-              31:    7(float) CompositeExtract 29 0

-              32:    7(float) CompositeExtract 29 1

-              33:   30(fvec2) CompositeConstruct 31 32

-              34:    8(fvec4) ImageSampleImplicitLod 15 33

-                              Store 10(texColor) 34

-              36:    8(fvec4) Load 35(color)

-              37:    8(fvec4) Load 10(texColor)

-              38:    8(fvec4) FAdd 37 36

-                              Store 10(texColor) 38

-              41:    7(float) Load 40(alpha)

-              42:    8(fvec4) Load 10(texColor)

-              43:    8(fvec4) CompositeInsert 41 42 3

-                              Store 10(texColor) 43

-              51:     23(ptr) AccessChain 49(foo) 50

-              52:    8(fvec4) Load 51

-              54:     23(ptr) AccessChain 20(gl_TexCoord) 53

-              55:    8(fvec4) Load 54

-              56:    8(fvec4) FAdd 52 55

-              57:     23(ptr) AccessChain 20(gl_TexCoord) 22

-              58:    8(fvec4) Load 57

-              59:    8(fvec4) FAdd 56 58

-              60:    8(fvec4) Load 10(texColor)

-              61:    8(fvec4) FAdd 59 60

-                              Store 45(gl_FragColor) 61

-                              Branch 6

-               6:             Label

+     9(texColor):      8(ptr) Variable Function

+              14:          11 Load 13(texSampler2D)

+              23:     22(ptr) AccessChain 19(gl_TexCoord) 21

+              24:    7(fvec4) Load 23

+              26:     22(ptr) AccessChain 19(gl_TexCoord) 25

+              27:    7(fvec4) Load 26

+              28:    7(fvec4) FAdd 24 27

+              30:    6(float) CompositeExtract 28 0

+              31:    6(float) CompositeExtract 28 1

+              32:   29(fvec2) CompositeConstruct 30 31

+              33:    7(fvec4) ImageSampleImplicitLod 14 32

+                              Store 9(texColor) 33

+              35:    7(fvec4) Load 34(color)

+              36:    7(fvec4) Load 9(texColor)

+              37:    7(fvec4) FAdd 36 35

+                              Store 9(texColor) 37

+              40:    6(float) Load 39(alpha)

+              41:    7(fvec4) Load 9(texColor)

+              42:    7(fvec4) CompositeInsert 40 41 3

+                              Store 9(texColor) 42

+              50:     22(ptr) AccessChain 48(foo) 49

+              51:    7(fvec4) Load 50

+              53:     22(ptr) AccessChain 19(gl_TexCoord) 52

+              54:    7(fvec4) Load 53

+              55:    7(fvec4) FAdd 51 54

+              56:     22(ptr) AccessChain 19(gl_TexCoord) 21

+              57:    7(fvec4) Load 56

+              58:    7(fvec4) FAdd 55 57

+              59:    7(fvec4) Load 9(texColor)

+              60:    7(fvec4) FAdd 58 59

+                              Store 44(gl_FragColor) 60

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.varyingArrayIndirect.frag.out b/Test/baseResults/spv.varyingArrayIndirect.frag.out
index 9dfe588..a6db896 100755
--- a/Test/baseResults/spv.varyingArrayIndirect.frag.out
+++ b/Test/baseResults/spv.varyingArrayIndirect.frag.out
@@ -10,7 +10,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 70

+// Id's are bound by 69

 

                               Source GLSL 130

                               Capability Shader

@@ -19,92 +19,90 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "texColor"

-                              Name 14  "texSampler2D"

-                              Name 20  "userIn"

-                              Name 23  "b"

-                              Name 31  "gl_TexCoord"

-                              Name 32  "a"

-                              Name 46  "color"

-                              Name 51  "alpha"

-                              Name 56  "gl_FragColor"

-                              Decorate 20(userIn) Smooth

-                              Decorate 31(gl_TexCoord) Smooth

-                              Decorate 46(color) Smooth

-                              Decorate 51(alpha) Smooth

-                              Decorate 56(gl_FragColor) BuiltIn FragColor

+                              Name 9  "texColor"

+                              Name 13  "texSampler2D"

+                              Name 19  "userIn"

+                              Name 22  "b"

+                              Name 30  "gl_TexCoord"

+                              Name 31  "a"

+                              Name 45  "color"

+                              Name 50  "alpha"

+                              Name 55  "gl_FragColor"

+                              Decorate 19(userIn) Smooth

+                              Decorate 30(gl_TexCoord) Smooth

+                              Decorate 45(color) Smooth

+                              Decorate 50(alpha) Smooth

+                              Decorate 55(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypeImage 7(float) 2D sampled format:Unknown

-              12:             TypeSampledImage 11

-              13:             TypePointer UniformConstant 12

-14(texSampler2D):     13(ptr) Variable UniformConstant

-              16:             TypeInt 32 0

-              17:     16(int) Constant 2

-              18:             TypeArray 8(fvec4) 17

-              19:             TypePointer Input 18

-      20(userIn):     19(ptr) Variable Input

-              21:             TypeInt 32 1

-              22:             TypePointer UniformConstant 21(int)

-           23(b):     22(ptr) Variable UniformConstant

-              25:             TypePointer Input 8(fvec4)

-              28:     16(int) Constant 6

-              29:             TypeArray 8(fvec4) 28

-              30:             TypePointer Input 29

- 31(gl_TexCoord):     30(ptr) Variable Input

-           32(a):     22(ptr) Variable UniformConstant

-              37:     21(int) Constant 5

-              41:             TypeVector 7(float) 2

-       46(color):     25(ptr) Variable Input

-              50:             TypePointer Input 7(float)

-       51(alpha):     50(ptr) Variable Input

-              55:             TypePointer Output 8(fvec4)

-56(gl_FragColor):     55(ptr) Variable Output

-              57:     21(int) Constant 0

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypeImage 6(float) 2D sampled format:Unknown

+              11:             TypeSampledImage 10

+              12:             TypePointer UniformConstant 11

+13(texSampler2D):     12(ptr) Variable UniformConstant

+              15:             TypeInt 32 0

+              16:     15(int) Constant 2

+              17:             TypeArray 7(fvec4) 16

+              18:             TypePointer Input 17

+      19(userIn):     18(ptr) Variable Input

+              20:             TypeInt 32 1

+              21:             TypePointer UniformConstant 20(int)

+           22(b):     21(ptr) Variable UniformConstant

+              24:             TypePointer Input 7(fvec4)

+              27:     15(int) Constant 6

+              28:             TypeArray 7(fvec4) 27

+              29:             TypePointer Input 28

+ 30(gl_TexCoord):     29(ptr) Variable Input

+           31(a):     21(ptr) Variable UniformConstant

+              36:     20(int) Constant 5

+              40:             TypeVector 6(float) 2

+       45(color):     24(ptr) Variable Input

+              49:             TypePointer Input 6(float)

+       50(alpha):     49(ptr) Variable Input

+              54:             TypePointer Output 7(fvec4)

+55(gl_FragColor):     54(ptr) Variable Output

+              56:     20(int) Constant 0

          4(main):           2 Function None 3

                5:             Label

-    10(texColor):      9(ptr) Variable Function

-              15:          12 Load 14(texSampler2D)

-              24:     21(int) Load 23(b)

-              26:     25(ptr) AccessChain 20(userIn) 24

-              27:    8(fvec4) Load 26

-              33:     21(int) Load 32(a)

-              34:     25(ptr) AccessChain 31(gl_TexCoord) 33

-              35:    8(fvec4) Load 34

-              36:    8(fvec4) FAdd 27 35

-              38:     25(ptr) AccessChain 31(gl_TexCoord) 37

-              39:    8(fvec4) Load 38

-              40:    8(fvec4) FAdd 36 39

-              42:    7(float) CompositeExtract 40 0

-              43:    7(float) CompositeExtract 40 1

-              44:   41(fvec2) CompositeConstruct 42 43

-              45:    8(fvec4) ImageSampleImplicitLod 15 44

-                              Store 10(texColor) 45

-              47:    8(fvec4) Load 46(color)

-              48:    8(fvec4) Load 10(texColor)

-              49:    8(fvec4) FAdd 48 47

-                              Store 10(texColor) 49

-              52:    7(float) Load 51(alpha)

-              53:    8(fvec4) Load 10(texColor)

-              54:    8(fvec4) CompositeInsert 52 53 3

-                              Store 10(texColor) 54

-              58:     25(ptr) AccessChain 31(gl_TexCoord) 57

-              59:    8(fvec4) Load 58

-              60:     21(int) Load 23(b)

-              61:     25(ptr) AccessChain 31(gl_TexCoord) 60

-              62:    8(fvec4) Load 61

-              63:    8(fvec4) FAdd 59 62

-              64:    8(fvec4) Load 10(texColor)

-              65:    8(fvec4) FAdd 63 64

-              66:     21(int) Load 32(a)

-              67:     25(ptr) AccessChain 20(userIn) 66

-              68:    8(fvec4) Load 67

-              69:    8(fvec4) FAdd 65 68

-                              Store 56(gl_FragColor) 69

-                              Branch 6

-               6:             Label

+     9(texColor):      8(ptr) Variable Function

+              14:          11 Load 13(texSampler2D)

+              23:     20(int) Load 22(b)

+              25:     24(ptr) AccessChain 19(userIn) 23

+              26:    7(fvec4) Load 25

+              32:     20(int) Load 31(a)

+              33:     24(ptr) AccessChain 30(gl_TexCoord) 32

+              34:    7(fvec4) Load 33

+              35:    7(fvec4) FAdd 26 34

+              37:     24(ptr) AccessChain 30(gl_TexCoord) 36

+              38:    7(fvec4) Load 37

+              39:    7(fvec4) FAdd 35 38

+              41:    6(float) CompositeExtract 39 0

+              42:    6(float) CompositeExtract 39 1

+              43:   40(fvec2) CompositeConstruct 41 42

+              44:    7(fvec4) ImageSampleImplicitLod 14 43

+                              Store 9(texColor) 44

+              46:    7(fvec4) Load 45(color)

+              47:    7(fvec4) Load 9(texColor)

+              48:    7(fvec4) FAdd 47 46

+                              Store 9(texColor) 48

+              51:    6(float) Load 50(alpha)

+              52:    7(fvec4) Load 9(texColor)

+              53:    7(fvec4) CompositeInsert 51 52 3

+                              Store 9(texColor) 53

+              57:     24(ptr) AccessChain 30(gl_TexCoord) 56

+              58:    7(fvec4) Load 57

+              59:     20(int) Load 22(b)

+              60:     24(ptr) AccessChain 30(gl_TexCoord) 59

+              61:    7(fvec4) Load 60

+              62:    7(fvec4) FAdd 58 61

+              63:    7(fvec4) Load 9(texColor)

+              64:    7(fvec4) FAdd 62 63

+              65:     20(int) Load 31(a)

+              66:     24(ptr) AccessChain 19(userIn) 65

+              67:    7(fvec4) Load 66

+              68:    7(fvec4) FAdd 64 67

+                              Store 55(gl_FragColor) 68

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.voidFunction.frag.out b/Test/baseResults/spv.voidFunction.frag.out
index 6e288de..a5086d3 100755
--- a/Test/baseResults/spv.voidFunction.frag.out
+++ b/Test/baseResults/spv.voidFunction.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 43

+// Id's are bound by 42

 

                               Source GLSL 120

                               Capability Shader

@@ -14,67 +14,65 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 7  "foo("

-                              Name 9  "foo2("

-                              Name 13  "bar"

-                              Name 23  "outColor"

-                              Name 25  "bigColor"

-                              Name 36  "gl_FragColor"

-                              Name 40  "BaseColor"

-                              Name 42  "d"

-                              Decorate 36(gl_FragColor) BuiltIn FragColor

-                              Decorate 40(BaseColor) Smooth

-                              Decorate 40(BaseColor) NoStaticUse

-                              Decorate 42(d) NoStaticUse

+                              Name 6  "foo("

+                              Name 8  "foo2("

+                              Name 12  "bar"

+                              Name 22  "outColor"

+                              Name 24  "bigColor"

+                              Name 35  "gl_FragColor"

+                              Name 39  "BaseColor"

+                              Name 41  "d"

+                              Decorate 35(gl_FragColor) BuiltIn FragColor

+                              Decorate 39(BaseColor) Smooth

+                              Decorate 39(BaseColor) NoStaticUse

+                              Decorate 41(d) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-              11:             TypeFloat 32

-              12:             TypePointer PrivateGlobal 11(float)

-         13(bar):     12(ptr) Variable PrivateGlobal

-              14:   11(float) Constant 1073741824

-              16:   11(float) Constant 1065353216

-              21:             TypeVector 11(float) 4

-              22:             TypePointer Function 21(fvec4)

-              24:             TypePointer UniformConstant 21(fvec4)

-    25(bigColor):     24(ptr) Variable UniformConstant

-              35:             TypePointer Output 21(fvec4)

-36(gl_FragColor):     35(ptr) Variable Output

-              39:             TypePointer Input 21(fvec4)

-   40(BaseColor):     39(ptr) Variable Input

-              41:             TypePointer UniformConstant 11(float)

-           42(d):     41(ptr) Variable UniformConstant

+              10:             TypeFloat 32

+              11:             TypePointer PrivateGlobal 10(float)

+         12(bar):     11(ptr) Variable PrivateGlobal

+              13:   10(float) Constant 1073741824

+              15:   10(float) Constant 1065353216

+              20:             TypeVector 10(float) 4

+              21:             TypePointer Function 20(fvec4)

+              23:             TypePointer UniformConstant 20(fvec4)

+    24(bigColor):     23(ptr) Variable UniformConstant

+              34:             TypePointer Output 20(fvec4)

+35(gl_FragColor):     34(ptr) Variable Output

+              38:             TypePointer Input 20(fvec4)

+   39(BaseColor):     38(ptr) Variable Input

+              40:             TypePointer UniformConstant 10(float)

+           41(d):     40(ptr) Variable UniformConstant

          4(main):           2 Function None 3

                5:             Label

-    23(outColor):     22(ptr) Variable Function

-                              Store 13(bar) 14

-              26:   21(fvec4) Load 25(bigColor)

-                              Store 23(outColor) 26

-              27:           2 FunctionCall 7(foo()

-              28:           2 FunctionCall 9(foo2()

-              29:   11(float) Load 13(bar)

-              30:   21(fvec4) Load 23(outColor)

-              31:   11(float) CompositeExtract 30 0

-              32:   11(float) FAdd 31 29

-              33:   21(fvec4) Load 23(outColor)

-              34:   21(fvec4) CompositeInsert 32 33 0

-                              Store 23(outColor) 34

-              37:   21(fvec4) Load 23(outColor)

-                              Store 36(gl_FragColor) 37

-                              Branch 6

-               6:             Label

+    22(outColor):     21(ptr) Variable Function

+                              Store 12(bar) 13

+              25:   20(fvec4) Load 24(bigColor)

+                              Store 22(outColor) 25

+              26:           2 FunctionCall 6(foo()

+              27:           2 FunctionCall 8(foo2()

+              28:   10(float) Load 12(bar)

+              29:   20(fvec4) Load 22(outColor)

+              30:   10(float) CompositeExtract 29 0

+              31:   10(float) FAdd 30 28

+              32:   20(fvec4) Load 22(outColor)

+              33:   20(fvec4) CompositeInsert 31 32 0

+                              Store 22(outColor) 33

+              36:   20(fvec4) Load 22(outColor)

+                              Store 35(gl_FragColor) 36

                               Return

                               FunctionEnd

-         7(foo():           2 Function None 3

-               8:             Label

-              15:   11(float) Load 13(bar)

-              17:   11(float) FAdd 15 16

-                              Store 13(bar) 17

+         6(foo():           2 Function None 3

+               7:             Label

+              14:   10(float) Load 12(bar)

+              16:   10(float) FAdd 14 15

+                              Store 12(bar) 16

                               Return

                               FunctionEnd

-        9(foo2():           2 Function None 3

-              10:             Label

-              19:   11(float) Load 13(bar)

-              20:   11(float) FAdd 19 16

-                              Store 13(bar) 20

+        8(foo2():           2 Function None 3

+               9:             Label

+              18:   10(float) Load 12(bar)

+              19:   10(float) FAdd 18 15

+                              Store 12(bar) 19

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.while-continue-break.vert.out b/Test/baseResults/spv.while-continue-break.vert.out
index 1dba3c8..533e4cb 100755
--- a/Test/baseResults/spv.while-continue-break.vert.out
+++ b/Test/baseResults/spv.while-continue-break.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 43

+// Id's are bound by 42

 

                               Source ESSL 300

                               Capability Shader

@@ -13,78 +13,76 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 18  "A"

-                              Name 26  "B"

-                              Name 28  "C"

-                              Name 38  "D"

-                              Name 41  "gl_VertexID"

-                              Name 42  "gl_InstanceID"

-                              Decorate 41(gl_VertexID) BuiltIn VertexId

-                              Decorate 41(gl_VertexID) NoStaticUse

-                              Decorate 42(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 42(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 17  "A"

+                              Name 25  "B"

+                              Name 27  "C"

+                              Name 37  "D"

+                              Name 40  "gl_VertexID"

+                              Name 41  "gl_InstanceID"

+                              Decorate 40(gl_VertexID) BuiltIn VertexId

+                              Decorate 40(gl_VertexID) NoStaticUse

+                              Decorate 41(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 41(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:      7(int) Constant 10

-              16:             TypeBool

-              19:      7(int) Constant 1

-              21:      7(int) Constant 2

-              30:      7(int) Constant 5

-              39:      7(int) Constant 3

-              40:             TypePointer Input 7(int)

- 41(gl_VertexID):     40(ptr) Variable Input

-42(gl_InstanceID):     40(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:      6(int) Constant 10

+              15:             TypeBool

+              18:      6(int) Constant 1

+              20:      6(int) Constant 2

+              29:      6(int) Constant 5

+              38:      6(int) Constant 3

+              39:             TypePointer Input 6(int)

+ 40(gl_VertexID):     39(ptr) Variable Input

+41(gl_InstanceID):     39(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-           18(A):      8(ptr) Variable Function

-           26(B):      8(ptr) Variable Function

-           28(C):      8(ptr) Variable Function

-           38(D):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

-              11:             Label

-              14:      7(int) Load 9(i)

-              17:    16(bool) SLessThan 14 15

-                              LoopMerge 12 None

-                              BranchConditional 17 13 12

-              13:               Label

-                                Store 18(A) 19

-              20:      7(int)   Load 9(i)

-              22:      7(int)   SMod 20 21

-              23:    16(bool)   IEqual 22 10

-                                SelectionMerge 25 None

-                                BranchConditional 23 24 25

-              24:                 Label

-                                  Store 26(B) 21

+            8(i):      7(ptr) Variable Function

+           17(A):      7(ptr) Variable Function

+           25(B):      7(ptr) Variable Function

+           27(C):      7(ptr) Variable Function

+           37(D):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:      6(int) Load 8(i)

+              16:    15(bool) SLessThan 13 14

+                              LoopMerge 11 None

+                              BranchConditional 16 12 11

+              12:               Label

+                                Store 17(A) 18

+              19:      6(int)   Load 8(i)

+              21:      6(int)   SMod 19 20

+              22:    15(bool)   IEqual 21 9

+                                SelectionMerge 24 None

+                                BranchConditional 22 23 24

+              23:                 Label

+                                  Store 25(B) 20

+                                  Branch 10

+              26:                 Label

+                                  Store 27(C) 20

+                                  Branch 24

+              24:               Label

+              28:      6(int)   Load 8(i)

+              30:      6(int)   SMod 28 29

+              31:    15(bool)   IEqual 30 9

+                                SelectionMerge 33 None

+                                BranchConditional 31 32 33

+              32:                 Label

+                                  Store 25(B) 20

                                   Branch 11

-              27:                 Label

-                                  Store 28(C) 21

-                                  Branch 25

-              25:               Label

-              29:      7(int)   Load 9(i)

-              31:      7(int)   SMod 29 30

-              32:    16(bool)   IEqual 31 10

-                                SelectionMerge 34 None

-                                BranchConditional 32 33 34

-              33:                 Label

-                                  Store 26(B) 21

-                                  Branch 12

-              35:                 Label

-                                  Store 28(C) 21

-                                  Branch 34

-              34:               Label

-              36:      7(int)   Load 9(i)

-              37:      7(int)   IAdd 36 19

-                                Store 9(i) 37

-                                Branch 11

-              12:             Label

-                              Store 38(D) 39

-                              Branch 6

-               6:             Label

+              34:                 Label

+                                  Store 27(C) 20

+                                  Branch 33

+              33:               Label

+              35:      6(int)   Load 8(i)

+              36:      6(int)   IAdd 35 18

+                                Store 8(i) 36

+                                Branch 10

+              11:             Label

+                              Store 37(D) 38

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.while-simple.vert.out b/Test/baseResults/spv.while-simple.vert.out
index b896e9f..9b04a52 100755
--- a/Test/baseResults/spv.while-simple.vert.out
+++ b/Test/baseResults/spv.while-simple.vert.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 24

+// Id's are bound by 23

 

                               Source ESSL 300

                               Capability Shader

@@ -13,41 +13,39 @@
                               MemoryModel Logical GLSL450

                               EntryPoint Vertex 4  "main"

                               Name 4  "main"

-                              Name 9  "i"

-                              Name 22  "gl_VertexID"

-                              Name 23  "gl_InstanceID"

-                              Decorate 22(gl_VertexID) BuiltIn VertexId

-                              Decorate 22(gl_VertexID) NoStaticUse

-                              Decorate 23(gl_InstanceID) BuiltIn InstanceId

-                              Decorate 23(gl_InstanceID) NoStaticUse

+                              Name 8  "i"

+                              Name 21  "gl_VertexID"

+                              Name 22  "gl_InstanceID"

+                              Decorate 21(gl_VertexID) BuiltIn VertexId

+                              Decorate 21(gl_VertexID) NoStaticUse

+                              Decorate 22(gl_InstanceID) BuiltIn InstanceId

+                              Decorate 22(gl_InstanceID) NoStaticUse

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeInt 32 1

-               8:             TypePointer Function 7(int)

-              10:      7(int) Constant 0

-              15:      7(int) Constant 10

-              16:             TypeBool

-              19:      7(int) Constant 1

-              21:             TypePointer Input 7(int)

- 22(gl_VertexID):     21(ptr) Variable Input

-23(gl_InstanceID):     21(ptr) Variable Input

+               6:             TypeInt 32 1

+               7:             TypePointer Function 6(int)

+               9:      6(int) Constant 0

+              14:      6(int) Constant 10

+              15:             TypeBool

+              18:      6(int) Constant 1

+              20:             TypePointer Input 6(int)

+ 21(gl_VertexID):     20(ptr) Variable Input

+22(gl_InstanceID):     20(ptr) Variable Input

          4(main):           2 Function None 3

                5:             Label

-            9(i):      8(ptr) Variable Function

-                              Store 9(i) 10

-                              Branch 11

+            8(i):      7(ptr) Variable Function

+                              Store 8(i) 9

+                              Branch 10

+              10:             Label

+              13:      6(int) Load 8(i)

+              16:    15(bool) SLessThan 13 14

+                              LoopMerge 11 None

+                              BranchConditional 16 12 11

+              12:               Label

+              17:      6(int)   Load 8(i)

+              19:      6(int)   IAdd 17 18

+                                Store 8(i) 19

+                                Branch 10

               11:             Label

-              14:      7(int) Load 9(i)

-              17:    16(bool) SLessThan 14 15

-                              LoopMerge 12 None

-                              BranchConditional 17 13 12

-              13:               Label

-              18:      7(int)   Load 9(i)

-              20:      7(int)   IAdd 18 19

-                                Store 9(i) 20

-                                Branch 11

-              12:             Label

-                              Branch 6

-               6:             Label

                               Return

                               FunctionEnd

diff --git a/Test/baseResults/spv.whileLoop.frag.out b/Test/baseResults/spv.whileLoop.frag.out
index bb7d913..f6e59e1 100755
--- a/Test/baseResults/spv.whileLoop.frag.out
+++ b/Test/baseResults/spv.whileLoop.frag.out
@@ -5,7 +5,7 @@
 

 // Module Version 99

 // Generated by (magic number): 51a00bb

-// Id's are bound by 32

+// Id's are bound by 31

 

                               Source GLSL 110

                               Capability Shader

@@ -14,50 +14,48 @@
                               EntryPoint Fragment 4  "main"

                               ExecutionMode 4 OriginLowerLeft

                               Name 4  "main"

-                              Name 10  "color"

-                              Name 12  "BaseColor"

-                              Name 20  "d"

-                              Name 25  "bigColor"

-                              Name 30  "gl_FragColor"

-                              Decorate 12(BaseColor) Smooth

-                              Decorate 30(gl_FragColor) BuiltIn FragColor

+                              Name 9  "color"

+                              Name 11  "BaseColor"

+                              Name 19  "d"

+                              Name 24  "bigColor"

+                              Name 29  "gl_FragColor"

+                              Decorate 11(BaseColor) Smooth

+                              Decorate 29(gl_FragColor) BuiltIn FragColor

                2:             TypeVoid

                3:             TypeFunction 2

-               7:             TypeFloat 32

-               8:             TypeVector 7(float) 4

-               9:             TypePointer Function 8(fvec4)

-              11:             TypePointer Input 8(fvec4)

-   12(BaseColor):     11(ptr) Variable Input

-              19:             TypePointer UniformConstant 7(float)

-           20(d):     19(ptr) Variable UniformConstant

-              22:             TypeBool

-              24:             TypePointer UniformConstant 8(fvec4)

-    25(bigColor):     24(ptr) Variable UniformConstant

-              29:             TypePointer Output 8(fvec4)

-30(gl_FragColor):     29(ptr) Variable Output

+               6:             TypeFloat 32

+               7:             TypeVector 6(float) 4

+               8:             TypePointer Function 7(fvec4)

+              10:             TypePointer Input 7(fvec4)

+   11(BaseColor):     10(ptr) Variable Input

+              18:             TypePointer UniformConstant 6(float)

+           19(d):     18(ptr) Variable UniformConstant

+              21:             TypeBool

+              23:             TypePointer UniformConstant 7(fvec4)

+    24(bigColor):     23(ptr) Variable UniformConstant

+              28:             TypePointer Output 7(fvec4)

+29(gl_FragColor):     28(ptr) Variable Output

          4(main):           2 Function None 3

                5:             Label

-       10(color):      9(ptr) Variable Function

-              13:    8(fvec4) Load 12(BaseColor)

-                              Store 10(color) 13

-                              Branch 14

+        9(color):      8(ptr) Variable Function

+              12:    7(fvec4) Load 11(BaseColor)

+                              Store 9(color) 12

+                              Branch 13

+              13:             Label

+              16:    7(fvec4) Load 9(color)

+              17:    6(float) CompositeExtract 16 0

+              20:    6(float) Load 19(d)

+              22:    21(bool) FOrdLessThan 17 20

+                              LoopMerge 14 None

+                              BranchConditional 22 15 14

+              15:               Label

+              25:    7(fvec4)   Load 24(bigColor)

+              26:    7(fvec4)   Load 9(color)

+              27:    7(fvec4)   FAdd 26 25

+                                Store 9(color) 27

+                                Branch 13

               14:             Label

-              17:    8(fvec4) Load 10(color)

-              18:    7(float) CompositeExtract 17 0

-              21:    7(float) Load 20(d)

-              23:    22(bool) FOrdLessThan 18 21

-                              LoopMerge 15 None

-                              BranchConditional 23 16 15

-              16:               Label

-              26:    8(fvec4)   Load 25(bigColor)

-              27:    8(fvec4)   Load 10(color)

-              28:    8(fvec4)   FAdd 27 26

-                                Store 10(color) 28

-                                Branch 14

-              15:             Label

-              31:    8(fvec4) Load 10(color)

-                              Store 30(gl_FragColor) 31

-                              Branch 6

-               6:             Label

+              30:    7(fvec4) Load 9(color)

+                              Store 29(gl_FragColor) 30

                               Return

                               FunctionEnd

diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h
index cccc87c..9d7c280 100644
--- a/glslang/Include/Types.h
+++ b/glslang/Include/Types.h
@@ -574,7 +574,7 @@
     }
     bool hasLocation() const
     {
-        return layoutLocation  != layoutLocationEnd;
+        return layoutLocation != layoutLocationEnd;
     }
     bool hasComponent() const
     {
diff --git a/glslang/Include/revision.h b/glslang/Include/revision.h
index 12a3874..a223c3a 100644
--- a/glslang/Include/revision.h
+++ b/glslang/Include/revision.h
@@ -2,5 +2,5 @@
 // For the version, it uses the latest git tag followed by the number of commits.
 // For the date, it uses the current date (when then script is run).
 
-#define GLSLANG_REVISION "3.0.752"
-#define GLSLANG_DATE "13-Sep-2015"
+#define GLSLANG_REVISION "3.0.753"
+#define GLSLANG_DATE "14-Sep-2015"