spv::Builder::Loop constructor inits all members.
authorDavid Neto <dneto@google.com>
Fri, 17 Jul 2015 21:11:22 +0000 (17:11 -0400)
committerDavid Neto <dneto@google.com>
Wed, 22 Jul 2015 16:24:21 +0000 (12:24 -0400)
After construction, the Loop is effectively const.

This perturbs the IDs in SPIR-V tests because the body block
is created before generating any of the loop code, rather than
only when the body is first referenced.

16 files changed:
SPIRV/SpvBuilder.cpp
SPIRV/SpvBuilder.h
Test/baseResults/spv.dataOutIndirect.vert.out
Test/baseResults/spv.do-simple.vert.out
Test/baseResults/spv.do-while-continue-break.vert.out
Test/baseResults/spv.doWhileLoop.frag.out
Test/baseResults/spv.for-continue-break.vert.out
Test/baseResults/spv.for-simple.vert.out
Test/baseResults/spv.forLoop.frag.out
Test/baseResults/spv.localAggregates.frag.out
Test/baseResults/spv.loops.frag.out
Test/baseResults/spv.loopsArtificial.frag.out
Test/baseResults/spv.switch.frag.out
Test/baseResults/spv.while-continue-break.vert.out
Test/baseResults/spv.while-simple.vert.out
Test/baseResults/spv.whileLoop.frag.out

index 6d1b2b9..91cb2d0 100644 (file)
@@ -1738,19 +1738,8 @@ void Builder::endSwitch(std::vector<Block*>& /*segmentBlock*/)
 // Comments in header
 void Builder::makeNewLoop(bool loopTestFirst)
 {
-    loops.push(Loop());
-    Loop& loop = loops.top();
-
-    loop.function  = &getBuildPoint()->getParent();
-    loop.header    = new Block(getUniqueId(), *loop.function);
-    loop.merge     = new Block(getUniqueId(), *loop.function);
-    // Delaying creation of the loop body perturbs test results less,
-    // which makes for easier patch review.
-    // TODO(dneto): Create the loop body block here, instead of
-    // upon first use.
-    loop.body      = 0;
-    loop.testFirst = loopTestFirst;
-    loop.isFirstIteration = 0;
+    loops.push(Loop(*this, loopTestFirst));
+    const Loop& loop = loops.top();
 
     // The loop test is always emitted before the loop body.
     // But if the loop test executes at the bottom of the loop, then
@@ -1771,8 +1760,6 @@ void Builder::makeNewLoop(bool loopTestFirst)
         // Generate code to defer the loop test until the second and
         // subsequent iterations.
 
-        // A phi node determines whether we're on the first iteration.
-        loop.isFirstIteration = new Instruction(getUniqueId(), makeBoolType(), OpPhi);
         // It's always the first iteration when coming from the preheader.
         // All other branches to this loop header will need to indicate "false",
         // but we don't yet know where they will come from.
@@ -1792,7 +1779,6 @@ void Builder::makeNewLoop(bool loopTestFirst)
         loop.function->addBlock(firstIterationCheck);
         setBuildPoint(firstIterationCheck);
 
-        loop.body = new Block(getUniqueId(), *loop.function);
         // Control flow after this "if" normally reconverges at the loop body.
         // However, the loop test has a "break branch" out of this selection
         // construct because it can transfer control to the loop merge block.
@@ -1808,14 +1794,13 @@ void Builder::makeNewLoop(bool loopTestFirst)
 
 void Builder::createLoopTestBranch(Id condition)
 {
-    Loop& loop = loops.top();
+    const Loop& loop = loops.top();
 
     // Generate the merge instruction. If the loop test executes before
     // the body, then this is a loop merge.  Otherwise the loop merge
     // has already been generated and this is a conditional merge.
     if (loop.testFirst) {
         createMerge(OpLoopMerge, loop.merge, LoopControlMaskNone);
-        loop.body = new Block(getUniqueId(), *loop.function);
         // Branching to the "body" block will keep control inside
         // the loop.
         createConditionalBranch(condition, loop.body, loop.merge);
@@ -1842,7 +1827,7 @@ void Builder::createLoopTestBranch(Id condition)
 
 void Builder::createBranchToBody()
 {
-    Loop& loop = loops.top();
+    const Loop& loop = loops.top();
     assert(loop.body);
 
     // This is a reconvergence of control flow, so no merge instruction
@@ -1870,7 +1855,7 @@ void Builder::createLoopExit()
 // Close the innermost loop
 void Builder::closeLoop()
 {
-    Loop& loop = loops.top();
+    const Loop& loop = loops.top();
 
     // Branch back to the top
     createBranchToLoopHeaderFromInside(loop);
@@ -2198,4 +2183,15 @@ void ValidationError(const char* error)
     printf("Validation Error: %s\n", error);
 }
 
+Builder::Loop::Loop(Builder& builder, bool testFirstArg)
+  : function(&builder.getBuildPoint()->getParent()),
+    header(new Block(builder.getUniqueId(), *function)),
+    merge(new Block(builder.getUniqueId(), *function)),
+    body(new Block(builder.getUniqueId(), *function)),
+    testFirst(testFirstArg),
+    isFirstIteration(testFirst
+                     ? nullptr
+                     : new Instruction(builder.getUniqueId(), builder.makeBoolType(), OpPhi))
+  {}
+
 }; // end spv namespace
index 27ffd3e..b3c8952 100644 (file)
@@ -524,7 +524,18 @@ protected:
 
     // Data that needs to be kept in order to properly handle loops.
     struct Loop {
-        Loop() : header(nullptr), merge(nullptr), body(nullptr), testFirst(false), isFirstIteration(nullptr), function(nullptr) { }
+        // Constructs a default Loop structure containing new header, merge, and
+        // body blocks for the current function.
+        // The testFirst argument indicates whether the loop test executes at
+        // the top of the loop rather than at the bottom.  In the latter case,
+        // also create a phi instruction whose value indicates whether we're on
+        // the first iteration of the loop.  The phi instruction is initialized
+        // with no values or predecessor operands.
+        Loop(Builder& builder, bool testFirst);
+        Loop(const Loop&) = default;
+
+        // The function containing the loop.
+        Function* const function;
         // The header is the first block generated for the loop.
         // It dominates all the blocks in the loop, i.e. it is always
         // executed before any others.
@@ -532,24 +543,22 @@ protected:
         // "for" loops), then the header begins with the test code.
         // Otherwise, the loop is a "do-while" loop and the header contains the
         // start of the body of the loop (if the body exists).
-        Block* header;
+        Block* const header;
         // The merge block marks the end of the loop.  Control is transferred
         // to the merge block when either the loop test fails, or when a
         // nested "break" is encountered.
-        Block* merge;
+        Block* const merge;
         // The body block is the first basic block in the body of the loop, i.e.
         // the code that is to be repeatedly executed, aside from loop control.
         // This member is null until we generate code that references the loop
         // body block.
-        Block* body;
+        Block* const body;
         // True when the loop test executes before the body.
-        bool testFirst;
+        const bool testFirst;
         // When the test executes after the body, this is defined as the phi
         // instruction that tells us whether we are on the first iteration of
         // the loop.  Otherwise this is null.
-        Instruction* isFirstIteration;
-        // The function containing the loop.
-        Function* function;
+        Instruction* const isFirstIteration;
     };
 
     // Our loop stack.
index 36b43c4..8fc8457 100644 (file)
@@ -29,8 +29,8 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 1\r
-              14:      7(int) Constant 5\r
-              15:             TypeBool\r
+              15:      7(int) Constant 5\r
+              16:             TypeBool\r
               18:             TypeFloat 32\r
               19:             TypeVector 18(float) 4\r
               20:             TypeInt 32 0\r
@@ -51,11 +51,11 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:      7(int) Load 9(i) \r
-              16:    15(bool) SLessThan 13 14\r
+              14:      7(int) Load 9(i) \r
+              17:    16(bool) SLessThan 14 15\r
                               LoopMerge 12 None\r
-                              BranchConditional 16 17 12 \r
-              17:               Label\r
+                              BranchConditional 17 13 12 \r
+              13:               Label\r
               25:      7(int)   Load 9(i) \r
               28:   19(fvec4)   Load 27(color) \r
               30:     29(ptr)   AccessChain 24(colorOut) 25\r
index 1e82c56..a006e3d 100644 (file)
@@ -27,11 +27,11 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:             TypeBool\r
-              15:    14(bool) ConstantTrue\r
+              15:             TypeBool\r
+              16:    15(bool) ConstantTrue\r
               20:      7(int) Constant 10\r
               24:      7(int) Constant 1\r
-              26:    14(bool) ConstantFalse\r
+              26:    15(bool) ConstantFalse\r
               27:             TypePointer Input 7(int)\r
  28(gl_VertexID):     27(ptr) Variable Input \r
 29(gl_InstanceID):     27(ptr) Variable Input \r
@@ -41,20 +41,20 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:    14(bool) Phi 15 5 26 17\r
+              14:    15(bool) Phi 16 5 26 13\r
                               LoopMerge 12 None\r
-                              Branch 16\r
-              16:             Label\r
-                              SelectionMerge 17 None\r
-                              BranchConditional 13 17 18 \r
+                              Branch 17\r
+              17:             Label\r
+                              SelectionMerge 13 None\r
+                              BranchConditional 14 13 18 \r
               18:               Label\r
               19:      7(int)   Load 9(i) \r
-              21:    14(bool)   SLessThan 19 20\r
+              21:    15(bool)   SLessThan 19 20\r
                                 SelectionMerge 22 None\r
                                 BranchConditional 21 22 12 \r
               22:               Label\r
-                                Branch 17\r
-              17:             Label\r
+                                Branch 13\r
+              13:             Label\r
               23:      7(int) Load 9(i) \r
               25:      7(int) IAdd 23 24\r
                               Store 9(i) 25 \r
index 749841d..8613a6d 100644 (file)
@@ -41,12 +41,12 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:             TypeBool\r
-              15:    14(bool) ConstantTrue\r
+              15:             TypeBool\r
+              16:    15(bool) ConstantTrue\r
               20:      7(int) Constant 1\r
               22:      7(int) Constant 19\r
               27:      7(int) Constant 2\r
-              32:    14(bool) ConstantFalse\r
+              32:    15(bool) ConstantFalse\r
               36:      7(int) Constant 5\r
               41:      7(int) Constant 3\r
               44:      7(int) Constant 42\r
@@ -68,25 +68,25 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:    14(bool) Phi 15 5 32 29 32 39\r
+              14:    15(bool) Phi 16 5 32 29 32 39\r
                               LoopMerge 12 None\r
-                              Branch 16\r
-              16:             Label\r
-                              SelectionMerge 17 None\r
-                              BranchConditional 13 17 18 \r
+                              Branch 17\r
+              17:             Label\r
+                              SelectionMerge 13 None\r
+                              BranchConditional 14 13 18 \r
               18:               Label\r
               19:      7(int)   Load 9(i) \r
               21:      7(int)   IAdd 19 20\r
                                 Store 9(i) 21 \r
-              23:    14(bool)   SLessThan 21 22\r
+              23:    15(bool)   SLessThan 21 22\r
                                 SelectionMerge 24 None\r
                                 BranchConditional 23 24 12 \r
               24:               Label\r
-                                Branch 17\r
-              17:             Label\r
+                                Branch 13\r
+              13:             Label\r
                               Store 25(A) 10 \r
               26:      7(int) Load 9(i) \r
-              28:    14(bool) IEqual 26 27\r
+              28:    15(bool) IEqual 26 27\r
                               SelectionMerge 30 None\r
                               BranchConditional 28 29 30 \r
               29:               Label\r
@@ -97,7 +97,7 @@ Linked vertex stage:
                                 Branch 30\r
               30:             Label\r
               35:      7(int) Load 9(i) \r
-              37:    14(bool) IEqual 35 36\r
+              37:    15(bool) IEqual 35 36\r
                               SelectionMerge 39 None\r
                               BranchConditional 37 38 39 \r
               38:               Label\r
index 71b4062..bf9b1ff 100644 (file)
@@ -26,13 +26,13 @@ Linked fragment stage:
                9:             TypePointer Function 8(fvec4)\r
               11:             TypePointer Input 8(fvec4)\r
    12(BaseColor):     11(ptr) Variable Input \r
-              17:             TypeBool\r
-              18:    17(bool) ConstantTrue\r
+              18:             TypeBool\r
+              19:    18(bool) ConstantTrue\r
               24:             TypePointer UniformConstant 7(float)\r
            25(d):     24(ptr) Variable UniformConstant \r
               29:             TypePointer UniformConstant 8(fvec4)\r
     30(bigColor):     29(ptr) Variable UniformConstant \r
-              34:    17(bool) ConstantFalse\r
+              34:    18(bool) ConstantFalse\r
               35:             TypePointer Output 8(fvec4)\r
 36(gl_FragColor):     35(ptr) Variable Output \r
          4(main):           2 Function None 3\r
@@ -42,22 +42,22 @@ Linked fragment stage:
                               Store 10(color) 13 \r
                               Branch 14\r
               14:             Label\r
-              16:    17(bool) Phi 18 5 34 20\r
+              17:    18(bool) Phi 19 5 34 16\r
                               LoopMerge 15 None\r
-                              Branch 19\r
-              19:             Label\r
-                              SelectionMerge 20 None\r
-                              BranchConditional 16 20 21 \r
+                              Branch 20\r
+              20:             Label\r
+                              SelectionMerge 16 None\r
+                              BranchConditional 17 16 21 \r
               21:               Label\r
               22:    8(fvec4)   Load 10(color) \r
               23:    7(float)   CompositeExtract 22 0\r
               26:    7(float)   Load 25(d) \r
-              27:    17(bool)   FOrdLessThan 23 26\r
+              27:    18(bool)   FOrdLessThan 23 26\r
                                 SelectionMerge 28 None\r
                                 BranchConditional 27 28 15 \r
               28:               Label\r
-                                Branch 20\r
-              20:             Label\r
+                                Branch 16\r
+              16:             Label\r
               31:    8(fvec4) Load 30(bigColor) \r
               32:    8(fvec4) Load 10(color) \r
               33:    8(fvec4) FAdd 32 31\r
index a1a0ae1..a1de5b4 100644 (file)
@@ -41,8 +41,8 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:      7(int) Constant 10\r
-              15:             TypeBool\r
+              15:      7(int) Constant 10\r
+              16:             TypeBool\r
               19:      7(int) Constant 1\r
               21:      7(int) Constant 2\r
               32:      7(int) Constant 3\r
@@ -64,15 +64,15 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:      7(int) Load 9(i) \r
-              16:    15(bool) SLessThan 13 14\r
+              14:      7(int) Load 9(i) \r
+              17:    16(bool) SLessThan 14 15\r
                               LoopMerge 12 None\r
-                              BranchConditional 16 17 12 \r
-              17:               Label\r
+                              BranchConditional 17 13 12 \r
+              13:               Label\r
                                 Store 18(A) 19 \r
               20:      7(int)   Load 9(i) \r
               22:      7(int)   SMod 20 21\r
-              23:    15(bool)   IEqual 22 10\r
+              23:    16(bool)   IEqual 22 10\r
                                 SelectionMerge 25 None\r
                                 BranchConditional 23 24 25 \r
               24:                 Label\r
@@ -87,7 +87,7 @@ Linked vertex stage:
               25:               Label\r
               31:      7(int)   Load 9(i) \r
               33:      7(int)   SMod 31 32\r
-              34:    15(bool)   IEqual 33 10\r
+              34:    16(bool)   IEqual 33 10\r
                                 SelectionMerge 36 None\r
                                 BranchConditional 34 35 36 \r
               35:                 Label\r
index 1004945..8facddc 100644 (file)
@@ -29,8 +29,8 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:      7(int) Constant 10\r
-              15:             TypeBool\r
+              15:      7(int) Constant 10\r
+              16:             TypeBool\r
               19:      7(int) Constant 12\r
               21:      7(int) Constant 1\r
               23:             TypePointer Input 7(int)\r
@@ -43,11 +43,11 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:      7(int) Load 9(i) \r
-              16:    15(bool) SLessThan 13 14\r
+              14:      7(int) Load 9(i) \r
+              17:    16(bool) SLessThan 14 15\r
                               LoopMerge 12 None\r
-                              BranchConditional 16 17 12 \r
-              17:               Label\r
+                              BranchConditional 17 13 12 \r
+              13:               Label\r
                                 Store 18(j) 19 \r
               20:      7(int)   Load 9(i) \r
               22:      7(int)   IAdd 20 21\r
index ccf05b1..6ad719d 100644 (file)
@@ -15,7 +15,7 @@ Linked fragment stage:
                               Name 10  "color"\r
                               Name 12  "BaseColor"\r
                               Name 16  "i"\r
-                              Name 22  "Count"\r
+                              Name 23  "Count"\r
                               Name 28  "bigColor"\r
                               Name 36  "gl_FragColor"\r
                               Name 39  "sum"\r
@@ -40,9 +40,9 @@ Linked fragment stage:
               14:             TypeInt 32 1\r
               15:             TypePointer Function 14(int)\r
               17:     14(int) Constant 0\r
-              21:             TypePointer UniformConstant 14(int)\r
-       22(Count):     21(ptr) Variable UniformConstant \r
-              24:             TypeBool\r
+              22:             TypePointer UniformConstant 14(int)\r
+       23(Count):     22(ptr) Variable UniformConstant \r
+              25:             TypeBool\r
               27:             TypePointer UniformConstant 8(fvec4)\r
     28(bigColor):     27(ptr) Variable UniformConstant \r
               33:     14(int) Constant 1\r
@@ -50,7 +50,7 @@ Linked fragment stage:
 36(gl_FragColor):     35(ptr) Variable Output \r
               38:             TypePointer Function 7(float)\r
               40:    7(float) Constant 0\r
-              45:     14(int) Constant 4\r
+              46:     14(int) Constant 4\r
               48:             TypeInt 32 0\r
               49:             TypeVector 48(int) 4\r
               50:             TypePointer UniformConstant 49(ivec4)\r
@@ -59,7 +59,7 @@ Linked fragment stage:
               86:             TypeVector 7(float) 3\r
               97:             TypePointer Input 7(float)\r
            98(f):     97(ptr) Variable Input \r
-             115:     14(int) Constant 16\r
+             116:     14(int) Constant 16\r
          4(main):           2 Function None 3\r
                5:             Label\r
        10(color):      9(ptr) Variable Function \r
@@ -76,12 +76,12 @@ Linked fragment stage:
                               Store 16(i) 17 \r
                               Branch 18\r
               18:             Label\r
-              20:     14(int) Load 16(i) \r
-              23:     14(int) Load 22(Count) \r
-              25:    24(bool) SLessThan 20 23\r
+              21:     14(int) Load 16(i) \r
+              24:     14(int) Load 23(Count) \r
+              26:    25(bool) SLessThan 21 24\r
                               LoopMerge 19 None\r
-                              BranchConditional 25 26 19 \r
-              26:               Label\r
+                              BranchConditional 26 20 19 \r
+              20:               Label\r
               29:    8(fvec4)   Load 28(bigColor) \r
               30:    8(fvec4)   Load 10(color) \r
               31:    8(fvec4)   FAdd 30 29\r
@@ -97,11 +97,11 @@ Linked fragment stage:
                               Store 41(i) 17 \r
                               Branch 42\r
               42:             Label\r
-              44:     14(int) Load 41(i) \r
-              46:    24(bool) SLessThan 44 45\r
+              45:     14(int) Load 41(i) \r
+              47:    25(bool) SLessThan 45 46\r
                               LoopMerge 43 None\r
-                              BranchConditional 46 47 43 \r
-              47:               Label\r
+                              BranchConditional 47 44 43 \r
+              44:               Label\r
               52:     14(int)   Load 41(i) \r
               53:   49(ivec4)   Load 51(v4) \r
               54:     48(int)   VectorExtractDynamic 53 52\r
@@ -117,11 +117,11 @@ Linked fragment stage:
                               Store 60(i) 17 \r
                               Branch 61\r
               61:             Label\r
-              63:     14(int) Load 60(i) \r
-              64:    24(bool) SLessThan 63 45\r
+              64:     14(int) Load 60(i) \r
+              65:    25(bool) SLessThan 64 46\r
                               LoopMerge 62 None\r
-                              BranchConditional 64 65 62 \r
-              65:               Label\r
+                              BranchConditional 65 63 62 \r
+              63:               Label\r
               67:     14(int)   Load 60(i) \r
               68:     14(int)   Load 60(i) \r
               69:   49(ivec4)   Load 51(v4) \r
@@ -151,12 +151,12 @@ Linked fragment stage:
                               Store 90(i) 17 \r
                               Branch 91\r
               91:             Label\r
-              93:     14(int) Load 90(i) \r
-              94:     14(int) Load 22(Count) \r
-              95:    24(bool) SLessThan 93 94\r
+              94:     14(int) Load 90(i) \r
+              95:     14(int) Load 23(Count) \r
+              96:    25(bool) SLessThan 94 95\r
                               LoopMerge 92 None\r
-                              BranchConditional 95 96 92 \r
-              96:               Label\r
+                              BranchConditional 96 93 92 \r
+              93:               Label\r
               99:    7(float)   Load 98(f) \r
              100:    8(fvec4)   Load 84(r) \r
              101:    8(fvec4)   CompositeInsert 99 100 3\r
@@ -177,17 +177,17 @@ Linked fragment stage:
                               Store 111(i) 17 \r
                               Branch 112\r
              112:             Label\r
-             114:     14(int) Load 111(i) \r
-             116:    24(bool) SLessThan 114 115\r
+             115:     14(int) Load 111(i) \r
+             117:    25(bool) SLessThan 115 116\r
                               LoopMerge 113 None\r
-                              BranchConditional 116 117 113 \r
-             117:               Label\r
+                              BranchConditional 117 114 113 \r
+             114:               Label\r
              118:    7(float)   Load 98(f) \r
              119:    8(fvec4)   Load 36(gl_FragColor) \r
              120:    8(fvec4)   VectorTimesScalar 119 118\r
                                 Store 36(gl_FragColor) 120 \r
              121:     14(int)   Load 111(i) \r
-             122:     14(int)   IAdd 121 45\r
+             122:     14(int)   IAdd 121 46\r
                                 Store 111(i) 122 \r
                                 Branch 112\r
              113:             Label\r
index 97f358b..1ebe299 100644 (file)
@@ -82,7 +82,7 @@ Linked fragment stage:
               47:             TypePointer Function 46\r
               51:             TypePointer Function 7(int)\r
               68:      7(int) Constant 5\r
-              78:      7(int) Constant 16\r
+              79:      7(int) Constant 16\r
               83:    8(float) Constant 0\r
    87(condition):     21(ptr) Variable UniformConstant \r
               93:      7(int) Constant 3\r
@@ -160,11 +160,11 @@ Linked fragment stage:
                               Store 74(i) 17 \r
                               Branch 75\r
               75:             Label\r
-              77:      7(int) Load 74(i) \r
-              79:    24(bool) SLessThan 77 78\r
+              78:      7(int) Load 74(i) \r
+              80:    24(bool) SLessThan 78 79\r
                               LoopMerge 76 None\r
-                              BranchConditional 79 80 76 \r
-              80:               Label\r
+                              BranchConditional 80 77 76 \r
+              77:               Label\r
               82:      7(int)   Load 74(i) \r
               84:     31(ptr)   AccessChain 81(a) 82\r
                                 Store 84 83 \r
index 0e7c712..6b8e3fb 100644 (file)
@@ -16,16 +16,16 @@ Linked fragment stage:
                               Name 4  "main"\r
                               Name 10  "color"\r
                               Name 12  "BaseColor"\r
-                              Name 47  "d"\r
+                              Name 48  "d"\r
                               Name 52  "bigColor"\r
                               Name 63  "bigColor1_1"\r
-                              Name 92  "d2"\r
-                              Name 97  "d3"\r
+                              Name 93  "d2"\r
+                              Name 98  "d3"\r
                               Name 102  "bigColor1_2"\r
                               Name 113  "bigColor1_3"\r
                               Name 119  "d4"\r
                               Name 130  "i"\r
-                              Name 136  "Count"\r
+                              Name 137  "Count"\r
                               Name 140  "bigColor2"\r
                               Name 158  "bigColor3"\r
                               Name 163  "i"\r
@@ -41,15 +41,15 @@ Linked fragment stage:
                               Name 413  "d7"\r
                               Name 447  "bigColor7"\r
                               Name 472  "d8"\r
-                              Name 517  "d9"\r
-                              Name 549  "d10"\r
+                              Name 518  "d9"\r
+                              Name 550  "d10"\r
                               Name 560  "d11"\r
                               Name 572  "d12"\r
                               Name 600  "bigColor8"\r
                               Name 628  "gl_FragColor"\r
-                              Name 634  "d14"\r
+                              Name 635  "d14"\r
                               Name 640  "d15"\r
-                              Name 657  "d16"\r
+                              Name 658  "d16"\r
                               Name 696  "d17"\r
                               Name 702  "d18"\r
                               Name 733  "d13"\r
@@ -95,78 +95,78 @@ Linked fragment stage:
                9:             TypePointer Function 8(fvec4)\r
               11:             TypePointer Input 8(fvec4)\r
    12(BaseColor):     11(ptr) Variable Input \r
-              16:             TypeBool\r
-              17:    16(bool) ConstantTrue\r
+              17:             TypeBool\r
+              18:    17(bool) ConstantTrue\r
               21:    7(float) Constant 1051260355\r
               25:    8(fvec4) ConstantComposite 21 21 21 21\r
               31:    7(float) Constant 1059648963\r
               35:    8(fvec4) ConstantComposite 31 31 31 31\r
-              46:             TypePointer UniformConstant 7(float)\r
-           47(d):     46(ptr) Variable UniformConstant \r
+              47:             TypePointer UniformConstant 7(float)\r
+           48(d):     47(ptr) Variable UniformConstant \r
               51:             TypePointer UniformConstant 8(fvec4)\r
     52(bigColor):     51(ptr) Variable UniformConstant \r
  63(bigColor1_1):     51(ptr) Variable UniformConstant \r
-              81:    7(float) Constant 1109917696\r
+              82:    7(float) Constant 1109917696\r
               85:    7(float) Constant 1065353216\r
-          92(d2):     46(ptr) Variable UniformConstant \r
-          97(d3):     46(ptr) Variable UniformConstant \r
+          93(d2):     47(ptr) Variable UniformConstant \r
+          98(d3):     47(ptr) Variable UniformConstant \r
 102(bigColor1_2):     51(ptr) Variable UniformConstant \r
 113(bigColor1_3):     51(ptr) Variable UniformConstant \r
-         119(d4):     46(ptr) Variable UniformConstant \r
+         119(d4):     47(ptr) Variable UniformConstant \r
              128:             TypeInt 32 1\r
              129:             TypePointer Function 128(int)\r
              131:    128(int) Constant 0\r
-             135:             TypePointer UniformConstant 128(int)\r
-      136(Count):    135(ptr) Variable UniformConstant \r
+             136:             TypePointer UniformConstant 128(int)\r
+      137(Count):    136(ptr) Variable UniformConstant \r
   140(bigColor2):     51(ptr) Variable UniformConstant \r
              145:    128(int) Constant 1\r
   158(bigColor3):     51(ptr) Variable UniformConstant \r
-             162:    16(bool) ConstantFalse\r
-             167:    128(int) Constant 42\r
-             182:    128(int) Constant 100\r
+             162:    17(bool) ConstantFalse\r
+             168:    128(int) Constant 42\r
+             183:    128(int) Constant 100\r
              187:    7(float) Constant 1101004800\r
-             220:    128(int) Constant 120\r
+             221:    128(int) Constant 120\r
   306(bigColor4):     51(ptr) Variable UniformConstant \r
-         344(d5):     46(ptr) Variable UniformConstant \r
+         344(d5):     47(ptr) Variable UniformConstant \r
   348(bigColor5):     51(ptr) Variable UniformConstant \r
-         366(d6):     46(ptr) Variable UniformConstant \r
+         366(d6):     47(ptr) Variable UniformConstant \r
   378(bigColor6):     51(ptr) Variable UniformConstant \r
-         413(d7):     46(ptr) Variable UniformConstant \r
+         413(d7):     47(ptr) Variable UniformConstant \r
              442:    7(float) Constant 0\r
   447(bigColor7):     51(ptr) Variable UniformConstant \r
-         472(d8):     46(ptr) Variable UniformConstant \r
+         472(d8):     47(ptr) Variable UniformConstant \r
              494:    7(float) Constant 1073741824\r
-         517(d9):     46(ptr) Variable UniformConstant \r
+         518(d9):     47(ptr) Variable UniformConstant \r
              534:    7(float) Constant 1084227584\r
-        549(d10):     46(ptr) Variable UniformConstant \r
-        560(d11):     46(ptr) Variable UniformConstant \r
-        572(d12):     46(ptr) Variable UniformConstant \r
-             597:    7(float) Constant 1092616192\r
+        550(d10):     47(ptr) Variable UniformConstant \r
+        560(d11):     47(ptr) Variable UniformConstant \r
+        572(d12):     47(ptr) Variable UniformConstant \r
+             598:    7(float) Constant 1092616192\r
   600(bigColor8):     51(ptr) Variable UniformConstant \r
              627:             TypePointer Output 8(fvec4)\r
 628(gl_FragColor):    627(ptr) Variable Output \r
-        634(d14):     46(ptr) Variable UniformConstant \r
-        640(d15):     46(ptr) Variable UniformConstant \r
-        657(d16):     46(ptr) Variable UniformConstant \r
-        696(d17):     46(ptr) Variable UniformConstant \r
-        702(d18):     46(ptr) Variable UniformConstant \r
-        733(d13):     46(ptr) Variable UniformConstant \r
-        734(d19):     46(ptr) Variable UniformConstant \r
-        735(d20):     46(ptr) Variable UniformConstant \r
-        736(d21):     46(ptr) Variable UniformConstant \r
-        737(d22):     46(ptr) Variable UniformConstant \r
-        738(d23):     46(ptr) Variable UniformConstant \r
-        739(d24):     46(ptr) Variable UniformConstant \r
-        740(d25):     46(ptr) Variable UniformConstant \r
-        741(d26):     46(ptr) Variable UniformConstant \r
-        742(d27):     46(ptr) Variable UniformConstant \r
-        743(d28):     46(ptr) Variable UniformConstant \r
-        744(d29):     46(ptr) Variable UniformConstant \r
-        745(d30):     46(ptr) Variable UniformConstant \r
-        746(d31):     46(ptr) Variable UniformConstant \r
-        747(d32):     46(ptr) Variable UniformConstant \r
-        748(d33):     46(ptr) Variable UniformConstant \r
-        749(d34):     46(ptr) Variable UniformConstant \r
+        635(d14):     47(ptr) Variable UniformConstant \r
+        640(d15):     47(ptr) Variable UniformConstant \r
+        658(d16):     47(ptr) Variable UniformConstant \r
+        696(d17):     47(ptr) Variable UniformConstant \r
+        702(d18):     47(ptr) Variable UniformConstant \r
+        733(d13):     47(ptr) Variable UniformConstant \r
+        734(d19):     47(ptr) Variable UniformConstant \r
+        735(d20):     47(ptr) Variable UniformConstant \r
+        736(d21):     47(ptr) Variable UniformConstant \r
+        737(d22):     47(ptr) Variable UniformConstant \r
+        738(d23):     47(ptr) Variable UniformConstant \r
+        739(d24):     47(ptr) Variable UniformConstant \r
+        740(d25):     47(ptr) Variable UniformConstant \r
+        741(d26):     47(ptr) Variable UniformConstant \r
+        742(d27):     47(ptr) Variable UniformConstant \r
+        743(d28):     47(ptr) Variable UniformConstant \r
+        744(d29):     47(ptr) Variable UniformConstant \r
+        745(d30):     47(ptr) Variable UniformConstant \r
+        746(d31):     47(ptr) Variable UniformConstant \r
+        747(d32):     47(ptr) Variable UniformConstant \r
+        748(d33):     47(ptr) Variable UniformConstant \r
+        749(d34):     47(ptr) Variable UniformConstant \r
          4(main):           2 Function None 3\r
                5:             Label\r
        10(color):      9(ptr) Variable Function \r
@@ -181,11 +181,11 @@ Linked fragment stage:
                               Branch 14\r
               14:             Label\r
                               LoopMerge 15 None\r
-                              BranchConditional 17 18 15 \r
-              18:               Label\r
+                              BranchConditional 18 16 15 \r
+              16:               Label\r
               19:    8(fvec4)   Load 10(color) \r
               20:    7(float)   CompositeExtract 19 0\r
-              22:    16(bool)   FOrdLessThan 20 21\r
+              22:    17(bool)   FOrdLessThan 20 21\r
                                 SelectionMerge 24 None\r
                                 BranchConditional 22 23 24 \r
               23:                 Label\r
@@ -196,7 +196,7 @@ Linked fragment stage:
               24:               Label\r
               29:    8(fvec4)   Load 10(color) \r
               30:    7(float)   CompositeExtract 29 0\r
-              32:    16(bool)   FOrdLessThan 30 31\r
+              32:    17(bool)   FOrdLessThan 30 31\r
                                 SelectionMerge 34 None\r
                                 BranchConditional 32 33 34 \r
               33:                 Label\r
@@ -212,13 +212,13 @@ Linked fragment stage:
               15:             Label\r
                               Branch 42\r
               42:             Label\r
-              44:    8(fvec4) Load 10(color) \r
-              45:    7(float) CompositeExtract 44 0\r
-              48:    7(float) Load 47(d) \r
-              49:    16(bool) FOrdLessThan 45 48\r
+              45:    8(fvec4) Load 10(color) \r
+              46:    7(float) CompositeExtract 45 0\r
+              49:    7(float) Load 48(d) \r
+              50:    17(bool) FOrdLessThan 46 49\r
                               LoopMerge 43 None\r
-                              BranchConditional 49 50 43 \r
-              50:               Label\r
+                              BranchConditional 50 44 43 \r
+              44:               Label\r
               53:    8(fvec4)   Load 52(bigColor) \r
               54:    8(fvec4)   Load 10(color) \r
               55:    8(fvec4)   FAdd 54 53\r
@@ -227,21 +227,21 @@ Linked fragment stage:
               43:             Label\r
                               Branch 56\r
               56:             Label\r
-              58:    8(fvec4) Load 10(color) \r
-              59:    7(float) CompositeExtract 58 2\r
-              60:    7(float) Load 47(d) \r
-              61:    16(bool) FOrdLessThan 59 60\r
+              59:    8(fvec4) Load 10(color) \r
+              60:    7(float) CompositeExtract 59 2\r
+              61:    7(float) Load 48(d) \r
+              62:    17(bool) FOrdLessThan 60 61\r
                               LoopMerge 57 None\r
-                              BranchConditional 61 62 57 \r
-              62:               Label\r
+                              BranchConditional 62 58 57 \r
+              58:               Label\r
               64:    8(fvec4)   Load 63(bigColor1_1) \r
               65:    8(fvec4)   Load 10(color) \r
               66:    8(fvec4)   FAdd 65 64\r
                                 Store 10(color) 66 \r
               67:    8(fvec4)   Load 10(color) \r
               68:    7(float)   CompositeExtract 67 3\r
-              69:    7(float)   Load 47(d) \r
-              70:    16(bool)   FOrdLessThan 68 69\r
+              69:    7(float)   Load 48(d) \r
+              70:    17(bool)   FOrdLessThan 68 69\r
                                 SelectionMerge 72 None\r
                                 BranchConditional 70 71 72 \r
               71:                 Label\r
@@ -255,12 +255,12 @@ Linked fragment stage:
               57:             Label\r
                               Branch 77\r
               77:             Label\r
-              79:    8(fvec4) Load 10(color) \r
-              80:    7(float) CompositeExtract 79 0\r
-              82:    16(bool) FOrdLessThan 80 81\r
+              80:    8(fvec4) Load 10(color) \r
+              81:    7(float) CompositeExtract 80 0\r
+              83:    17(bool) FOrdLessThan 81 82\r
                               LoopMerge 78 None\r
-                              BranchConditional 82 83 78 \r
-              83:               Label\r
+                              BranchConditional 83 79 78 \r
+              79:               Label\r
               84:    8(fvec4)   Load 10(color) \r
               86:    8(fvec4)   CompositeConstruct 85 85 85 85\r
               87:    8(fvec4)   FAdd 84 86\r
@@ -269,18 +269,18 @@ Linked fragment stage:
               78:             Label\r
                               Branch 88\r
               88:             Label\r
-              90:    8(fvec4) Load 10(color) \r
-              91:    7(float) CompositeExtract 90 3\r
-              93:    7(float) Load 92(d2) \r
-              94:    16(bool) FOrdLessThan 91 93\r
-              95:    8(fvec4) Load 10(color) \r
-              96:    7(float) CompositeExtract 95 1\r
-              98:    7(float) Load 97(d3) \r
-              99:    16(bool) FOrdLessThan 96 98\r
-             100:    16(bool) LogicalAnd 94 99\r
+              91:    8(fvec4) Load 10(color) \r
+              92:    7(float) CompositeExtract 91 3\r
+              94:    7(float) Load 93(d2) \r
+              95:    17(bool) FOrdLessThan 92 94\r
+              96:    8(fvec4) Load 10(color) \r
+              97:    7(float) CompositeExtract 96 1\r
+              99:    7(float) Load 98(d3) \r
+             100:    17(bool) FOrdLessThan 97 99\r
+             101:    17(bool) LogicalAnd 95 100\r
                               LoopMerge 89 None\r
-                              BranchConditional 100 101 89 \r
-             101:               Label\r
+                              BranchConditional 101 90 89 \r
+              90:               Label\r
              103:    8(fvec4)   Load 102(bigColor1_2) \r
              104:    8(fvec4)   Load 10(color) \r
              105:    8(fvec4)   FAdd 104 103\r
@@ -289,13 +289,13 @@ Linked fragment stage:
               89:             Label\r
                               Branch 106\r
              106:             Label\r
-             108:    8(fvec4) Load 10(color) \r
-             109:    7(float) CompositeExtract 108 2\r
-             110:    7(float) Load 97(d3) \r
-             111:    16(bool) FOrdLessThan 109 110\r
+             109:    8(fvec4) Load 10(color) \r
+             110:    7(float) CompositeExtract 109 2\r
+             111:    7(float) Load 98(d3) \r
+             112:    17(bool) FOrdLessThan 110 111\r
                               LoopMerge 107 None\r
-                              BranchConditional 111 112 107 \r
-             112:               Label\r
+                              BranchConditional 112 108 107 \r
+             108:               Label\r
              114:    8(fvec4)   Load 113(bigColor1_3) \r
              115:    8(fvec4)   Load 10(color) \r
              116:    8(fvec4)   FAdd 115 114\r
@@ -303,7 +303,7 @@ Linked fragment stage:
              117:    8(fvec4)   Load 10(color) \r
              118:    7(float)   CompositeExtract 117 1\r
              120:    7(float)   Load 119(d4) \r
-             121:    16(bool)   FOrdLessThan 118 120\r
+             121:    17(bool)   FOrdLessThan 118 120\r
                                 SelectionMerge 123 None\r
                                 BranchConditional 121 122 123 \r
              122:                 Label\r
@@ -318,12 +318,12 @@ Linked fragment stage:
                               Store 130(i) 131 \r
                               Branch 132\r
              132:             Label\r
-             134:    128(int) Load 130(i) \r
-             137:    128(int) Load 136(Count) \r
-             138:    16(bool) SLessThan 134 137\r
+             135:    128(int) Load 130(i) \r
+             138:    128(int) Load 137(Count) \r
+             139:    17(bool) SLessThan 135 138\r
                               LoopMerge 133 None\r
-                              BranchConditional 138 139 133 \r
-             139:               Label\r
+                              BranchConditional 139 134 133 \r
+             134:               Label\r
              141:    8(fvec4)   Load 140(bigColor2) \r
              142:    8(fvec4)   Load 10(color) \r
              143:    8(fvec4)   FAdd 142 141\r
@@ -335,22 +335,22 @@ Linked fragment stage:
              133:             Label\r
                               Branch 147\r
              147:             Label\r
-             149:    16(bool) Phi 17 133 162 151\r
+             150:    17(bool) Phi 18 133 162 149\r
                               LoopMerge 148 None\r
-                              Branch 150\r
-             150:             Label\r
-                              SelectionMerge 151 None\r
-                              BranchConditional 149 151 152 \r
+                              Branch 151\r
+             151:             Label\r
+                              SelectionMerge 149 None\r
+                              BranchConditional 150 149 152 \r
              152:               Label\r
              153:    8(fvec4)   Load 10(color) \r
              154:    7(float)   CompositeExtract 153 0\r
-             155:    7(float)   Load 92(d2) \r
-             156:    16(bool)   FOrdLessThan 154 155\r
+             155:    7(float)   Load 93(d2) \r
+             156:    17(bool)   FOrdLessThan 154 155\r
                                 SelectionMerge 157 None\r
                                 BranchConditional 156 157 148 \r
              157:               Label\r
-                                Branch 151\r
-             151:             Label\r
+                                Branch 149\r
+             149:             Label\r
              159:    8(fvec4) Load 158(bigColor3) \r
              160:    8(fvec4) Load 10(color) \r
              161:    8(fvec4) FAdd 160 159\r
@@ -360,12 +360,12 @@ Linked fragment stage:
                               Store 163(i) 131 \r
                               Branch 164\r
              164:             Label\r
-             166:    128(int) Load 163(i) \r
-             168:    16(bool) SLessThan 166 167\r
+             167:    128(int) Load 163(i) \r
+             169:    17(bool) SLessThan 167 168\r
                               LoopMerge 165 None\r
-                              BranchConditional 168 169 165 \r
-             169:               Label\r
-             170:    7(float)   Load 97(d3) \r
+                              BranchConditional 169 166 165 \r
+             166:               Label\r
+             170:    7(float)   Load 98(d3) \r
              171:    8(fvec4)   Load 10(color) \r
              172:    7(float)   CompositeExtract 171 2\r
              173:    7(float)   FAdd 172 170\r
@@ -380,14 +380,14 @@ Linked fragment stage:
                               Store 178(i) 131 \r
                               Branch 179\r
              179:             Label\r
-             181:    128(int) Load 178(i) \r
-             183:    16(bool) SLessThan 181 182\r
+             182:    128(int) Load 178(i) \r
+             184:    17(bool) SLessThan 182 183\r
                               LoopMerge 180 None\r
-                              BranchConditional 183 184 180 \r
-             184:               Label\r
+                              BranchConditional 184 181 180 \r
+             181:               Label\r
              185:    8(fvec4)   Load 10(color) \r
              186:    7(float)   CompositeExtract 185 2\r
-             188:    16(bool)   FOrdLessThan 186 187\r
+             188:    17(bool)   FOrdLessThan 186 187\r
                                 SelectionMerge 190 None\r
                                 BranchConditional 188 189 196 \r
              189:                 Label\r
@@ -409,7 +409,7 @@ Linked fragment stage:
              190:               Label\r
              202:    8(fvec4)   Load 10(color) \r
              203:    7(float)   CompositeExtract 202 3\r
-             204:    16(bool)   FOrdLessThan 203 187\r
+             204:    17(bool)   FOrdLessThan 203 187\r
                                 SelectionMerge 206 None\r
                                 BranchConditional 204 205 206 \r
              205:                 Label\r
@@ -417,7 +417,7 @@ Linked fragment stage:
              208:    7(float)     CompositeExtract 207 2\r
              209:    8(fvec4)     Load 10(color) \r
              210:    7(float)     CompositeExtract 209 1\r
-             211:    16(bool)     FOrdGreaterThan 208 210\r
+             211:    17(bool)     FOrdGreaterThan 208 210\r
                                   SelectionMerge 213 None\r
                                   BranchConditional 211 212 213 \r
              212:                   Label\r
@@ -433,14 +433,14 @@ Linked fragment stage:
                               Store 216(i) 131 \r
                               Branch 217\r
              217:             Label\r
-             219:    128(int) Load 216(i) \r
-             221:    16(bool) SLessThan 219 220\r
+             220:    128(int) Load 216(i) \r
+             222:    17(bool) SLessThan 220 221\r
                               LoopMerge 218 None\r
-                              BranchConditional 221 222 218 \r
-             222:               Label\r
+                              BranchConditional 222 219 218 \r
+             219:               Label\r
              223:    8(fvec4)   Load 10(color) \r
              224:    7(float)   CompositeExtract 223 2\r
-             225:    16(bool)   FOrdLessThan 224 187\r
+             225:    17(bool)   FOrdLessThan 224 187\r
                                 SelectionMerge 227 None\r
                                 BranchConditional 225 226 233 \r
              226:                 Label\r
@@ -468,12 +468,12 @@ Linked fragment stage:
                               Store 241(i) 131 \r
                               Branch 242\r
              242:             Label\r
-             244:    128(int) Load 241(i) \r
-             245:    16(bool) SLessThan 244 167\r
+             245:    128(int) Load 241(i) \r
+             246:    17(bool) SLessThan 245 168\r
                               LoopMerge 243 None\r
-                              BranchConditional 245 246 243 \r
-             246:               Label\r
-             247:    7(float)   Load 97(d3) \r
+                              BranchConditional 246 244 243 \r
+             244:               Label\r
+             247:    7(float)   Load 98(d3) \r
              248:    8(fvec4)   Load 10(color) \r
              249:    7(float)   CompositeExtract 248 2\r
              250:    7(float)   FAdd 249 247\r
@@ -483,7 +483,7 @@ Linked fragment stage:
              253:    8(fvec4)   Load 10(color) \r
              254:    7(float)   CompositeExtract 253 0\r
              255:    7(float)   Load 119(d4) \r
-             256:    16(bool)   FOrdLessThan 254 255\r
+             256:    17(bool)   FOrdLessThan 254 255\r
                                 SelectionMerge 258 None\r
                                 BranchConditional 256 257 258 \r
              257:                 Label\r
@@ -506,12 +506,12 @@ Linked fragment stage:
                               Store 269(i) 131 \r
                               Branch 270\r
              270:             Label\r
-             272:    128(int) Load 269(i) \r
-             273:    16(bool) SLessThan 272 167\r
+             273:    128(int) Load 269(i) \r
+             274:    17(bool) SLessThan 273 168\r
                               LoopMerge 271 None\r
-                              BranchConditional 273 274 271 \r
-             274:               Label\r
-             275:    7(float)   Load 97(d3) \r
+                              BranchConditional 274 272 271 \r
+             272:               Label\r
+             275:    7(float)   Load 98(d3) \r
              276:    8(fvec4)   Load 10(color) \r
              277:    7(float)   CompositeExtract 276 2\r
              278:    7(float)   FAdd 277 275\r
@@ -521,7 +521,7 @@ Linked fragment stage:
              281:    8(fvec4)   Load 10(color) \r
              282:    7(float)   CompositeExtract 281 0\r
              283:    7(float)   Load 119(d4) \r
-             284:    16(bool)   FOrdLessThan 282 283\r
+             284:    17(bool)   FOrdLessThan 282 283\r
                                 SelectionMerge 286 None\r
                                 BranchConditional 284 285 286 \r
              285:                 Label\r
@@ -540,22 +540,22 @@ Linked fragment stage:
              271:             Label\r
                               Branch 295\r
              295:             Label\r
-             297:    16(bool) Phi 17 271 162 314 162 322\r
+             298:    17(bool) Phi 18 271 162 314 162 322\r
                               LoopMerge 296 None\r
-                              Branch 298\r
-             298:             Label\r
-                              SelectionMerge 299 None\r
-                              BranchConditional 297 299 300 \r
+                              Branch 299\r
+             299:             Label\r
+                              SelectionMerge 297 None\r
+                              BranchConditional 298 297 300 \r
              300:               Label\r
              301:    8(fvec4)   Load 10(color) \r
              302:    7(float)   CompositeExtract 301 2\r
              303:    7(float)   Load 119(d4) \r
-             304:    16(bool)   FOrdLessThan 302 303\r
+             304:    17(bool)   FOrdLessThan 302 303\r
                                 SelectionMerge 305 None\r
                                 BranchConditional 304 305 296 \r
              305:               Label\r
-                                Branch 299\r
-             299:             Label\r
+                                Branch 297\r
+             297:             Label\r
              307:    8(fvec4) Load 306(bigColor4) \r
              308:    8(fvec4) Load 10(color) \r
              309:    8(fvec4) FAdd 308 307\r
@@ -563,7 +563,7 @@ Linked fragment stage:
              310:    8(fvec4) Load 10(color) \r
              311:    7(float) CompositeExtract 310 0\r
              312:    7(float) Load 119(d4) \r
-             313:    16(bool) FOrdLessThan 311 312\r
+             313:    17(bool) FOrdLessThan 311 312\r
                               SelectionMerge 315 None\r
                               BranchConditional 313 314 315 \r
              314:               Label\r
@@ -572,7 +572,7 @@ Linked fragment stage:
              317:    8(fvec4) Load 10(color) \r
              318:    7(float) CompositeExtract 317 1\r
              319:    7(float) Load 119(d4) \r
-             320:    16(bool) FOrdLessThan 318 319\r
+             320:    17(bool) FOrdLessThan 318 319\r
                               SelectionMerge 322 None\r
                               BranchConditional 320 321 329 \r
              321:               Label\r
@@ -598,22 +598,22 @@ Linked fragment stage:
              296:             Label\r
                               Branch 336\r
              336:             Label\r
-             338:    16(bool) Phi 17 296 162 357\r
+             339:    17(bool) Phi 18 296 162 357\r
                               LoopMerge 337 None\r
-                              Branch 339\r
-             339:             Label\r
-                              SelectionMerge 340 None\r
-                              BranchConditional 338 340 341 \r
+                              Branch 340\r
+             340:             Label\r
+                              SelectionMerge 338 None\r
+                              BranchConditional 339 338 341 \r
              341:               Label\r
              342:    8(fvec4)   Load 10(color) \r
              343:    7(float)   CompositeExtract 342 0\r
              345:    7(float)   Load 344(d5) \r
-             346:    16(bool)   FOrdLessThan 343 345\r
+             346:    17(bool)   FOrdLessThan 343 345\r
                                 SelectionMerge 347 None\r
                                 BranchConditional 346 347 337 \r
              347:               Label\r
-                                Branch 340\r
-             340:             Label\r
+                                Branch 338\r
+             338:             Label\r
              349:    8(fvec4) Load 348(bigColor5) \r
              350:    8(fvec4) Load 10(color) \r
              351:    8(fvec4) FAdd 350 349\r
@@ -621,7 +621,7 @@ Linked fragment stage:
              352:    8(fvec4) Load 10(color) \r
              353:    7(float) CompositeExtract 352 1\r
              354:    7(float) Load 344(d5) \r
-             355:    16(bool) FOrdLessThan 353 354\r
+             355:    17(bool) FOrdLessThan 353 354\r
                               SelectionMerge 357 None\r
                               BranchConditional 355 356 357 \r
              356:               Label\r
@@ -639,19 +639,19 @@ Linked fragment stage:
              364:    8(fvec4) Load 10(color) \r
              365:    7(float) CompositeExtract 364 0\r
              367:    7(float) Load 366(d6) \r
-             368:    16(bool) FOrdLessThan 365 367\r
+             368:    17(bool) FOrdLessThan 365 367\r
                               SelectionMerge 370 None\r
                               BranchConditional 368 369 382 \r
              369:               Label\r
                                 Branch 371\r
              371:               Label\r
-             373:    8(fvec4)   Load 10(color) \r
-             374:    7(float)   CompositeExtract 373 1\r
-             375:    7(float)   Load 366(d6) \r
-             376:    16(bool)   FOrdLessThan 374 375\r
+             374:    8(fvec4)   Load 10(color) \r
+             375:    7(float)   CompositeExtract 374 1\r
+             376:    7(float)   Load 366(d6) \r
+             377:    17(bool)   FOrdLessThan 375 376\r
                                 LoopMerge 372 None\r
-                                BranchConditional 376 377 372 \r
-             377:                 Label\r
+                                BranchConditional 377 373 372 \r
+             373:                 Label\r
              379:    8(fvec4)     Load 378(bigColor6) \r
              380:    8(fvec4)     Load 10(color) \r
              381:    8(fvec4)     FAdd 380 379\r
@@ -662,13 +662,13 @@ Linked fragment stage:
              382:               Label\r
                                 Branch 383\r
              383:               Label\r
-             385:    8(fvec4)   Load 10(color) \r
-             386:    7(float)   CompositeExtract 385 2\r
-             387:    7(float)   Load 366(d6) \r
-             388:    16(bool)   FOrdLessThan 386 387\r
+             386:    8(fvec4)   Load 10(color) \r
+             387:    7(float)   CompositeExtract 386 2\r
+             388:    7(float)   Load 366(d6) \r
+             389:    17(bool)   FOrdLessThan 387 388\r
                                 LoopMerge 384 None\r
-                                BranchConditional 388 389 384 \r
-             389:                 Label\r
+                                BranchConditional 389 385 384 \r
+             385:                 Label\r
              390:    8(fvec4)     Load 378(bigColor6) \r
              391:    7(float)     CompositeExtract 390 2\r
              392:    8(fvec4)     Load 10(color) \r
@@ -684,25 +684,25 @@ Linked fragment stage:
              397:    8(fvec4) Load 10(color) \r
              398:    7(float) CompositeExtract 397 0\r
              399:    7(float) Load 366(d6) \r
-             400:    16(bool) FOrdLessThan 398 399\r
+             400:    17(bool) FOrdLessThan 398 399\r
                               SelectionMerge 402 None\r
                               BranchConditional 400 401 419 \r
              401:               Label\r
                                 Branch 403\r
              403:               Label\r
-             405:    8(fvec4)   Load 10(color) \r
-             406:    7(float)   CompositeExtract 405 1\r
-             407:    7(float)   Load 366(d6) \r
-             408:    16(bool)   FOrdLessThan 406 407\r
+             406:    8(fvec4)   Load 10(color) \r
+             407:    7(float)   CompositeExtract 406 1\r
+             408:    7(float)   Load 366(d6) \r
+             409:    17(bool)   FOrdLessThan 407 408\r
                                 LoopMerge 404 None\r
-                                BranchConditional 408 409 404 \r
-             409:                 Label\r
+                                BranchConditional 409 405 404 \r
+             405:                 Label\r
              410:    8(fvec4)     Load 378(bigColor6) \r
              411:    8(fvec4)     Load 10(color) \r
              412:    8(fvec4)     FAdd 411 410\r
                                   Store 10(color) 412 \r
              414:    7(float)     Load 413(d7) \r
-             415:    16(bool)     FOrdLessThan 414 85\r
+             415:    17(bool)     FOrdLessThan 414 85\r
                                   SelectionMerge 417 None\r
                                   BranchConditional 415 416 417 \r
              416:                   Label\r
@@ -714,13 +714,13 @@ Linked fragment stage:
              419:               Label\r
                                 Branch 420\r
              420:               Label\r
-             422:    8(fvec4)   Load 10(color) \r
-             423:    7(float)   CompositeExtract 422 2\r
-             424:    7(float)   Load 366(d6) \r
-             425:    16(bool)   FOrdLessThan 423 424\r
+             423:    8(fvec4)   Load 10(color) \r
+             424:    7(float)   CompositeExtract 423 2\r
+             425:    7(float)   Load 366(d6) \r
+             426:    17(bool)   FOrdLessThan 424 425\r
                                 LoopMerge 421 None\r
-                                BranchConditional 425 426 421 \r
-             426:                 Label\r
+                                BranchConditional 426 422 421 \r
+             422:                 Label\r
              427:    8(fvec4)     Load 378(bigColor6) \r
              428:    7(float)     CompositeExtract 427 2\r
              429:    8(fvec4)     Load 10(color) \r
@@ -735,20 +735,20 @@ Linked fragment stage:
              402:             Label\r
                               Branch 434\r
              434:             Label\r
-             436:    16(bool) Phi 17 402 162 454\r
+             437:    17(bool) Phi 18 402 162 454\r
                               LoopMerge 435 None\r
-                              Branch 437\r
-             437:             Label\r
-                              SelectionMerge 438 None\r
-                              BranchConditional 436 438 439 \r
+                              Branch 438\r
+             438:             Label\r
+                              SelectionMerge 436 None\r
+                              BranchConditional 437 436 439 \r
              439:               Label\r
                                 SelectionMerge 440 None\r
-                                BranchConditional 17 440 435 \r
+                                BranchConditional 18 440 435 \r
              440:               Label\r
-                                Branch 438\r
-             438:             Label\r
+                                Branch 436\r
+             436:             Label\r
              441:    7(float) Load 413(d7) \r
-             443:    16(bool) FOrdLessThan 441 442\r
+             443:    17(bool) FOrdLessThan 441 442\r
                               SelectionMerge 445 None\r
                               BranchConditional 443 444 445 \r
              444:               Label\r
@@ -759,7 +759,7 @@ Linked fragment stage:
              450:    8(fvec4) FAdd 449 448\r
                               Store 10(color) 450 \r
              451:    7(float) Load 413(d7) \r
-             452:    16(bool) FOrdLessThan 451 85\r
+             452:    17(bool) FOrdLessThan 451 85\r
                               SelectionMerge 454 None\r
                               BranchConditional 452 453 454 \r
              453:               Label\r
@@ -779,24 +779,24 @@ Linked fragment stage:
              435:             Label\r
                               Branch 464\r
              464:             Label\r
-             466:    16(bool) Phi 17 435 162 487\r
+             467:    17(bool) Phi 18 435 162 487\r
                               LoopMerge 465 None\r
-                              Branch 467\r
-             467:             Label\r
-                              SelectionMerge 468 None\r
-                              BranchConditional 466 468 469 \r
+                              Branch 468\r
+             468:             Label\r
+                              SelectionMerge 466 None\r
+                              BranchConditional 467 466 469 \r
              469:               Label\r
              470:    8(fvec4)   Load 10(color) \r
              471:    7(float)   CompositeExtract 470 2\r
              473:    7(float)   Load 472(d8) \r
-             474:    16(bool)   FOrdLessThan 471 473\r
+             474:    17(bool)   FOrdLessThan 471 473\r
                                 SelectionMerge 475 None\r
                                 BranchConditional 474 475 465 \r
              475:               Label\r
-                                Branch 468\r
-             468:             Label\r
+                                Branch 466\r
+             466:             Label\r
              476:    7(float) Load 472(d8) \r
-             477:    16(bool) FOrdLessThan 476 442\r
+             477:    17(bool) FOrdLessThan 476 442\r
                               SelectionMerge 479 None\r
                               BranchConditional 477 478 479 \r
              478:               Label\r
@@ -807,7 +807,7 @@ Linked fragment stage:
              483:    8(fvec4) FAdd 482 481\r
                               Store 10(color) 483 \r
              484:    7(float) Load 472(d8) \r
-             485:    16(bool) FOrdLessThan 484 85\r
+             485:    17(bool) FOrdLessThan 484 85\r
                               SelectionMerge 487 None\r
                               BranchConditional 485 486 487 \r
              486:               Label\r
@@ -818,7 +818,7 @@ Linked fragment stage:
              492:    8(fvec4)   CompositeInsert 490 491 2\r
                                 Store 10(color) 492 \r
              493:    7(float)   Load 472(d8) \r
-             495:    16(bool)   FOrdLessThan 493 494\r
+             495:    17(bool)   FOrdLessThan 493 494\r
                                 SelectionMerge 497 None\r
                                 BranchConditional 495 496 503 \r
              496:                 Label\r
@@ -848,29 +848,29 @@ Linked fragment stage:
              465:             Label\r
                               Branch 513\r
              513:             Label\r
-             515:    8(fvec4) Load 10(color) \r
-             516:    7(float) CompositeExtract 515 3\r
-             518:    7(float) Load 517(d9) \r
-             519:    16(bool) FOrdLessThan 516 518\r
+             516:    8(fvec4) Load 10(color) \r
+             517:    7(float) CompositeExtract 516 3\r
+             519:    7(float) Load 518(d9) \r
+             520:    17(bool) FOrdLessThan 517 519\r
                               LoopMerge 514 None\r
-                              BranchConditional 519 520 514 \r
-             520:               Label\r
-             521:    7(float)   Load 517(d9) \r
+                              BranchConditional 520 515 514 \r
+             515:               Label\r
+             521:    7(float)   Load 518(d9) \r
              522:    7(float)   Load 472(d8) \r
-             523:    16(bool)   FOrdGreaterThan 521 522\r
+             523:    17(bool)   FOrdGreaterThan 521 522\r
                                 SelectionMerge 525 None\r
                                 BranchConditional 523 524 525 \r
              524:                 Label\r
              526:    8(fvec4)     Load 10(color) \r
              527:    7(float)     CompositeExtract 526 0\r
              528:    7(float)     Load 413(d7) \r
-             529:    16(bool)     FOrdLessThanEqual 527 528\r
+             529:    17(bool)     FOrdLessThanEqual 527 528\r
                                   SelectionMerge 531 None\r
                                   BranchConditional 529 530 531 \r
              530:                   Label\r
              532:    8(fvec4)       Load 10(color) \r
              533:    7(float)       CompositeExtract 532 2\r
-             535:    16(bool)       FOrdEqual 533 534\r
+             535:    17(bool)       FOrdEqual 533 534\r
                                     SelectionMerge 537 None\r
                                     BranchConditional 535 536 543 \r
              536:                     Label\r
@@ -892,13 +892,13 @@ Linked fragment stage:
              514:             Label\r
                               Branch 545\r
              545:             Label\r
-             547:    8(fvec4) Load 10(color) \r
-             548:    7(float) CompositeExtract 547 2\r
-             550:    7(float) Load 549(d10) \r
-             551:    16(bool) FOrdLessThan 548 550\r
+             548:    8(fvec4) Load 10(color) \r
+             549:    7(float) CompositeExtract 548 2\r
+             551:    7(float) Load 550(d10) \r
+             552:    17(bool) FOrdLessThan 549 551\r
                               LoopMerge 546 None\r
-                              BranchConditional 551 552 546 \r
-             552:               Label\r
+                              BranchConditional 552 547 546 \r
+             547:               Label\r
              553:    8(fvec4)   Load 10(color) \r
              554:    7(float)   CompositeExtract 553 1\r
              555:    7(float)   FAdd 554 85\r
@@ -908,7 +908,7 @@ Linked fragment stage:
              558:    8(fvec4)   Load 10(color) \r
              559:    7(float)   CompositeExtract 558 1\r
              561:    7(float)   Load 560(d11) \r
-             562:    16(bool)   FOrdLessThan 559 561\r
+             562:    17(bool)   FOrdLessThan 559 561\r
                                 SelectionMerge 564 None\r
                                 BranchConditional 562 563 564 \r
              563:                 Label\r
@@ -921,7 +921,7 @@ Linked fragment stage:
              570:    8(fvec4)     Load 10(color) \r
              571:    7(float)     CompositeExtract 570 3\r
              573:    7(float)     Load 572(d12) \r
-             574:    16(bool)     FOrdLessThan 571 573\r
+             574:    17(bool)     FOrdLessThan 571 573\r
                                   SelectionMerge 576 None\r
                                   BranchConditional 574 575 582 \r
              575:                   Label\r
@@ -951,12 +951,12 @@ Linked fragment stage:
              546:             Label\r
                               Branch 593\r
              593:             Label\r
-             595:    8(fvec4) Load 10(color) \r
-             596:    7(float) CompositeExtract 595 0\r
-             598:    16(bool) FOrdLessThan 596 597\r
+             596:    8(fvec4) Load 10(color) \r
+             597:    7(float) CompositeExtract 596 0\r
+             599:    17(bool) FOrdLessThan 597 598\r
                               LoopMerge 594 None\r
-                              BranchConditional 598 599 594 \r
-             599:               Label\r
+                              BranchConditional 599 595 594 \r
+             595:               Label\r
              601:    8(fvec4)   Load 600(bigColor8) \r
              602:    8(fvec4)   Load 10(color) \r
              603:    8(fvec4)   FAdd 602 601\r
@@ -964,14 +964,14 @@ Linked fragment stage:
              604:    8(fvec4)   Load 10(color) \r
              605:    7(float)   CompositeExtract 604 2\r
              606:    7(float)   Load 472(d8) \r
-             607:    16(bool)   FOrdLessThan 605 606\r
+             607:    17(bool)   FOrdLessThan 605 606\r
                                 SelectionMerge 609 None\r
                                 BranchConditional 607 608 609 \r
              608:                 Label\r
              610:    8(fvec4)     Load 10(color) \r
              611:    7(float)     CompositeExtract 610 3\r
              612:    7(float)     Load 366(d6) \r
-             613:    16(bool)     FOrdLessThan 611 612\r
+             613:    17(bool)     FOrdLessThan 611 612\r
                                   SelectionMerge 615 None\r
                                   BranchConditional 613 614 615 \r
              614:                   Label\r
@@ -997,17 +997,17 @@ Linked fragment stage:
                               Store 628(gl_FragColor) 629 \r
                               Branch 630\r
              630:             Label\r
-             632:    8(fvec4) Load 10(color) \r
-             633:    7(float) CompositeExtract 632 0\r
-             635:    7(float) Load 634(d14) \r
-             636:    16(bool) FOrdLessThan 633 635\r
+             633:    8(fvec4) Load 10(color) \r
+             634:    7(float) CompositeExtract 633 0\r
+             636:    7(float) Load 635(d14) \r
+             637:    17(bool) FOrdLessThan 634 636\r
                               LoopMerge 631 None\r
-                              BranchConditional 636 637 631 \r
-             637:               Label\r
+                              BranchConditional 637 632 631 \r
+             632:               Label\r
              638:    8(fvec4)   Load 10(color) \r
              639:    7(float)   CompositeExtract 638 1\r
              641:    7(float)   Load 640(d15) \r
-             642:    16(bool)   FOrdLessThan 639 641\r
+             642:    17(bool)   FOrdLessThan 639 641\r
                                 SelectionMerge 644 None\r
                                 BranchConditional 642 643 646 \r
              643:                 Label\r
@@ -1027,13 +1027,13 @@ Linked fragment stage:
                               Store 10(color) 652 \r
                               Branch 653\r
              653:             Label\r
-             655:    8(fvec4) Load 10(color) \r
-             656:    7(float) CompositeExtract 655 3\r
-             658:    7(float) Load 657(d16) \r
-             659:    16(bool) FOrdLessThan 656 658\r
+             656:    8(fvec4) Load 10(color) \r
+             657:    7(float) CompositeExtract 656 3\r
+             659:    7(float) Load 658(d16) \r
+             660:    17(bool) FOrdLessThan 657 659\r
                               LoopMerge 654 None\r
-                              BranchConditional 659 660 654 \r
-             660:               Label\r
+                              BranchConditional 660 655 654 \r
+             655:               Label\r
              661:    8(fvec4)   Load 10(color) \r
              662:    7(float)   CompositeExtract 661 3\r
              663:    7(float)   FAdd 662 85\r
@@ -1044,26 +1044,26 @@ Linked fragment stage:
              654:             Label\r
                               Branch 666\r
              666:             Label\r
-             668:    8(fvec4) Load 10(color) \r
-             669:    7(float) CompositeExtract 668 3\r
-             670:    7(float) Load 92(d2) \r
-             671:    16(bool) FOrdLessThan 669 670\r
-             672:    8(fvec4) Load 10(color) \r
-             673:    7(float) CompositeExtract 672 1\r
-             674:    7(float) Load 97(d3) \r
-             675:    16(bool) FOrdLessThan 673 674\r
-             676:    16(bool) LogicalAnd 671 675\r
+             669:    8(fvec4) Load 10(color) \r
+             670:    7(float) CompositeExtract 669 3\r
+             671:    7(float) Load 93(d2) \r
+             672:    17(bool) FOrdLessThan 670 671\r
+             673:    8(fvec4) Load 10(color) \r
+             674:    7(float) CompositeExtract 673 1\r
+             675:    7(float) Load 98(d3) \r
+             676:    17(bool) FOrdLessThan 674 675\r
+             677:    17(bool) LogicalAnd 672 676\r
                               LoopMerge 667 None\r
-                              BranchConditional 676 677 667 \r
-             677:               Label\r
+                              BranchConditional 677 668 667 \r
+             668:               Label\r
              678:    8(fvec4)   Load 102(bigColor1_2) \r
              679:    8(fvec4)   Load 10(color) \r
              680:    8(fvec4)   FAdd 679 678\r
                                 Store 10(color) 680 \r
              681:    8(fvec4)   Load 10(color) \r
              682:    7(float)   CompositeExtract 681 2\r
-             683:    7(float)   Load 97(d3) \r
-             684:    16(bool)   FOrdLessThan 682 683\r
+             683:    7(float)   Load 98(d3) \r
+             684:    17(bool)   FOrdLessThan 682 683\r
                                 SelectionMerge 686 None\r
                                 BranchConditional 684 685 686 \r
              685:                 Label\r
@@ -1073,26 +1073,26 @@ Linked fragment stage:
              667:             Label\r
                               Branch 688\r
              688:             Label\r
-             690:    16(bool) Phi 17 667 162 706\r
+             691:    17(bool) Phi 18 667 162 706\r
                               LoopMerge 689 None\r
-                              Branch 691\r
-             691:             Label\r
-                              SelectionMerge 692 None\r
-                              BranchConditional 690 692 693 \r
+                              Branch 692\r
+             692:             Label\r
+                              SelectionMerge 690 None\r
+                              BranchConditional 691 690 693 \r
              693:               Label\r
              694:    8(fvec4)   Load 10(color) \r
              695:    7(float)   CompositeExtract 694 0\r
              697:    7(float)   Load 696(d17) \r
-             698:    16(bool)   FOrdLessThan 695 697\r
+             698:    17(bool)   FOrdLessThan 695 697\r
                                 SelectionMerge 699 None\r
                                 BranchConditional 698 699 689 \r
              699:               Label\r
-                                Branch 692\r
-             692:             Label\r
+                                Branch 690\r
+             690:             Label\r
              700:    8(fvec4) Load 10(color) \r
              701:    7(float) CompositeExtract 700 1\r
              703:    7(float) Load 702(d18) \r
-             704:    16(bool) FOrdLessThan 701 703\r
+             704:    17(bool) FOrdLessThan 701 703\r
                               SelectionMerge 706 None\r
                               BranchConditional 704 705 706 \r
              705:               Label\r
@@ -1106,17 +1106,17 @@ Linked fragment stage:
              689:             Label\r
                               Branch 711\r
              711:             Label\r
-             713:    8(fvec4) Load 10(color) \r
-             714:    7(float) CompositeExtract 713 1\r
-             715:    7(float) Load 657(d16) \r
-             716:    16(bool) FOrdLessThan 714 715\r
+             714:    8(fvec4) Load 10(color) \r
+             715:    7(float) CompositeExtract 714 1\r
+             716:    7(float) Load 658(d16) \r
+             717:    17(bool) FOrdLessThan 715 716\r
                               LoopMerge 712 None\r
-                              BranchConditional 716 717 712 \r
-             717:               Label\r
+                              BranchConditional 717 713 712 \r
+             713:               Label\r
              718:    8(fvec4)   Load 10(color) \r
              719:    7(float)   CompositeExtract 718 3\r
-             720:    7(float)   Load 657(d16) \r
-             721:    16(bool)   FOrdLessThan 719 720\r
+             720:    7(float)   Load 658(d16) \r
+             721:    17(bool)   FOrdLessThan 719 720\r
                                 SelectionMerge 723 None\r
                                 BranchConditional 721 722 725 \r
              722:                 Label\r
index a3ad1db..caa7ae7 100644 (file)
@@ -18,7 +18,7 @@ Linked fragment stage:
                               Name 12  "BaseColor"\r
                               Name 25  "d4"\r
                               Name 30  "bigColor4"\r
-                              Name 83  "d13"\r
+                              Name 84  "d13"\r
                               Name 149  "gl_FragColor"\r
                               Name 151  "bigColor"\r
                               Name 152  "bigColor1_1"\r
@@ -115,16 +115,16 @@ Linked fragment stage:
                9:             TypePointer Function 8(fvec4)\r
               11:             TypePointer Input 8(fvec4)\r
    12(BaseColor):     11(ptr) Variable Input \r
-              17:             TypeBool\r
-              18:    17(bool) ConstantTrue\r
+              18:             TypeBool\r
+              19:    18(bool) ConstantTrue\r
               24:             TypePointer UniformConstant 7(float)\r
           25(d4):     24(ptr) Variable UniformConstant \r
               29:             TypePointer UniformConstant 8(fvec4)\r
    30(bigColor4):     29(ptr) Variable UniformConstant \r
               40:    7(float) Constant 1073741824\r
               54:    7(float) Constant 1065353216\r
-              58:    17(bool) ConstantFalse\r
-         83(d13):     24(ptr) Variable UniformConstant \r
+              58:    18(bool) ConstantFalse\r
+         84(d13):     24(ptr) Variable UniformConstant \r
              148:             TypePointer Output 8(fvec4)\r
 149(gl_FragColor):    148(ptr) Variable Output \r
    151(bigColor):     29(ptr) Variable UniformConstant \r
@@ -179,22 +179,22 @@ Linked fragment stage:
                               Store 10(color) 13 \r
                               Branch 14\r
               14:             Label\r
-              16:    17(bool) Phi 18 5 58 50 58 65\r
+              17:    18(bool) Phi 19 5 58 50 58 65\r
                               LoopMerge 15 None\r
-                              Branch 19\r
-              19:             Label\r
-                              SelectionMerge 20 None\r
-                              BranchConditional 16 20 21 \r
+                              Branch 20\r
+              20:             Label\r
+                              SelectionMerge 16 None\r
+                              BranchConditional 17 16 21 \r
               21:               Label\r
               22:    8(fvec4)   Load 10(color) \r
               23:    7(float)   CompositeExtract 22 2\r
               26:    7(float)   Load 25(d4) \r
-              27:    17(bool)   FOrdLessThan 23 26\r
+              27:    18(bool)   FOrdLessThan 23 26\r
                                 SelectionMerge 28 None\r
                                 BranchConditional 27 28 15 \r
               28:               Label\r
-                                Branch 20\r
-              20:             Label\r
+                                Branch 16\r
+              16:             Label\r
               31:    8(fvec4) Load 30(bigColor4) \r
               32:    8(fvec4) Load 10(color) \r
               33:    8(fvec4) FAdd 32 31\r
@@ -202,7 +202,7 @@ Linked fragment stage:
               34:    8(fvec4) Load 10(color) \r
               35:    7(float) CompositeExtract 34 0\r
               36:    7(float) Load 25(d4) \r
-              37:    17(bool) FOrdLessThan 35 36\r
+              37:    18(bool) FOrdLessThan 35 36\r
                               SelectionMerge 39 None\r
                               BranchConditional 37 38 39 \r
               38:               Label\r
@@ -215,7 +215,7 @@ Linked fragment stage:
               46:    8(fvec4)   Load 10(color) \r
               47:    7(float)   CompositeExtract 46 2\r
               48:    7(float)   Load 25(d4) \r
-              49:    17(bool)   FOrdLessThan 47 48\r
+              49:    18(bool)   FOrdLessThan 47 48\r
                                 SelectionMerge 51 None\r
                                 BranchConditional 49 50 51 \r
               50:                 Label\r
@@ -232,7 +232,7 @@ Linked fragment stage:
               60:    8(fvec4) Load 10(color) \r
               61:    7(float) CompositeExtract 60 1\r
               62:    7(float) Load 25(d4) \r
-              63:    17(bool) FOrdLessThan 61 62\r
+              63:    18(bool) FOrdLessThan 61 62\r
                               SelectionMerge 65 None\r
                               BranchConditional 63 64 72 \r
               64:               Label\r
@@ -258,17 +258,17 @@ Linked fragment stage:
               15:             Label\r
                               Branch 79\r
               79:             Label\r
-              81:    8(fvec4) Load 10(color) \r
-              82:    7(float) CompositeExtract 81 3\r
-              84:    7(float) Load 83(d13) \r
-              85:    17(bool) FOrdLessThan 82 84\r
+              82:    8(fvec4) Load 10(color) \r
+              83:    7(float) CompositeExtract 82 3\r
+              85:    7(float) Load 84(d13) \r
+              86:    18(bool) FOrdLessThan 83 85\r
                               LoopMerge 80 None\r
-                              BranchConditional 85 86 80 \r
-              86:               Label\r
+                              BranchConditional 86 81 80 \r
+              81:               Label\r
               87:    8(fvec4)   Load 10(color) \r
               88:    7(float)   CompositeExtract 87 2\r
-              89:    7(float)   Load 83(d13) \r
-              90:    17(bool)   FOrdLessThan 88 89\r
+              89:    7(float)   Load 84(d13) \r
+              90:    18(bool)   FOrdLessThan 88 89\r
                                 SelectionMerge 92 None\r
                                 BranchConditional 90 91 96 \r
               91:                 Label\r
@@ -291,7 +291,7 @@ Linked fragment stage:
              103:    8(fvec4)   Load 10(color) \r
              104:    7(float)   CompositeExtract 103 0\r
              105:    7(float)   Load 25(d4) \r
-             106:    17(bool)   FOrdLessThan 104 105\r
+             106:    18(bool)   FOrdLessThan 104 105\r
                                 SelectionMerge 108 None\r
                                 BranchConditional 106 107 108 \r
              107:                 Label\r
@@ -304,7 +304,7 @@ Linked fragment stage:
              114:    8(fvec4)     Load 10(color) \r
              115:    7(float)     CompositeExtract 114 2\r
              116:    7(float)     Load 25(d4) \r
-             117:    17(bool)     FOrdLessThan 115 116\r
+             117:    18(bool)     FOrdLessThan 115 116\r
                                   SelectionMerge 119 None\r
                                   BranchConditional 117 118 119 \r
              118:                   Label\r
@@ -321,7 +321,7 @@ Linked fragment stage:
              126:    8(fvec4)   Load 10(color) \r
              127:    7(float)   CompositeExtract 126 1\r
              128:    7(float)   Load 25(d4) \r
-             129:    17(bool)   FOrdLessThan 127 128\r
+             129:    18(bool)   FOrdLessThan 127 128\r
                                 SelectionMerge 131 None\r
                                 BranchConditional 129 130 138 \r
              130:                 Label\r
index 6f3f865..8280626 100644 (file)
@@ -70,10 +70,10 @@ Linked fragment stage:
            74(x):     73(ptr) Variable Input \r
           128(d):     60(ptr) Variable UniformConstant \r
              155:     10(int) Constant 0\r
-             159:     10(int) Constant 10\r
-             160:             TypeBool\r
+             160:     10(int) Constant 10\r
+             161:             TypeBool\r
              173:     10(int) Constant 20\r
-             177:     10(int) Constant 30\r
+             178:     10(int) Constant 30\r
              183:    7(float) Constant 1120429670\r
              203:    7(float) Constant 1079739679\r
              221:             TypePointer Output 7(float)\r
@@ -214,11 +214,11 @@ Linked fragment stage:
                               Store 154(i) 155 \r
                               Branch 156\r
              156:             Label\r
-             158:     10(int) Load 154(i) \r
-             161:   160(bool) SLessThan 158 159\r
+             159:     10(int) Load 154(i) \r
+             162:   161(bool) SLessThan 159 160\r
                               LoopMerge 157 None\r
-                              BranchConditional 161 162 157 \r
-             162:               Label\r
+                              BranchConditional 162 158 157 \r
+             158:               Label\r
              163:     10(int)   Load 61(c) \r
                                 SelectionMerge 167 None\r
                                 Switch 163 166 \r
@@ -233,16 +233,16 @@ Linked fragment stage:
                                   Store 172(j) 173 \r
                                   Branch 174\r
              174:                 Label\r
-             176:     10(int)     Load 172(j) \r
-             178:   160(bool)     SLessThan 176 177\r
+             177:     10(int)     Load 172(j) \r
+             179:   161(bool)     SLessThan 177 178\r
                                   LoopMerge 175 None\r
-                                  BranchConditional 178 179 175 \r
-             179:                   Label\r
+                                  BranchConditional 179 176 175 \r
+             176:                   Label\r
              180:    7(float)       Load 72(f) \r
              181:    7(float)       FAdd 180 48\r
                                     Store 72(f) 181 \r
              182:    7(float)       Load 72(f) \r
-             184:   160(bool)       FOrdLessThan 182 183\r
+             184:   161(bool)       FOrdLessThan 182 183\r
                                     SelectionMerge 186 None\r
                                     BranchConditional 184 185 186 \r
              185:                     Label\r
@@ -270,7 +270,7 @@ Linked fragment stage:
                                   Branch 167\r
              167:               Label\r
              202:    7(float)   Load 72(f) \r
-             204:   160(bool)   FOrdLessThan 202 203\r
+             204:   161(bool)   FOrdLessThan 202 203\r
                                 SelectionMerge 206 None\r
                                 BranchConditional 204 205 206 \r
              205:                 Label\r
index 21c5296..6d8aaf2 100644 (file)
@@ -35,8 +35,8 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:      7(int) Constant 10\r
-              15:             TypeBool\r
+              15:      7(int) Constant 10\r
+              16:             TypeBool\r
               19:      7(int) Constant 1\r
               21:      7(int) Constant 2\r
               30:      7(int) Constant 5\r
@@ -54,15 +54,15 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:      7(int) Load 9(i) \r
-              16:    15(bool) SLessThan 13 14\r
+              14:      7(int) Load 9(i) \r
+              17:    16(bool) SLessThan 14 15\r
                               LoopMerge 12 None\r
-                              BranchConditional 16 17 12 \r
-              17:               Label\r
+                              BranchConditional 17 13 12 \r
+              13:               Label\r
                                 Store 18(A) 19 \r
               20:      7(int)   Load 9(i) \r
               22:      7(int)   SMod 20 21\r
-              23:    15(bool)   IEqual 22 10\r
+              23:    16(bool)   IEqual 22 10\r
                                 SelectionMerge 25 None\r
                                 BranchConditional 23 24 25 \r
               24:                 Label\r
@@ -74,7 +74,7 @@ Linked vertex stage:
               25:               Label\r
               29:      7(int)   Load 9(i) \r
               31:      7(int)   SMod 29 30\r
-              32:    15(bool)   IEqual 31 10\r
+              32:    16(bool)   IEqual 31 10\r
                                 SelectionMerge 34 None\r
                                 BranchConditional 32 33 34 \r
               33:                 Label\r
index 93bb145..3641f82 100644 (file)
@@ -27,8 +27,8 @@ Linked vertex stage:
                7:             TypeInt 32 1\r
                8:             TypePointer Function 7(int)\r
               10:      7(int) Constant 0\r
-              14:      7(int) Constant 10\r
-              15:             TypeBool\r
+              15:      7(int) Constant 10\r
+              16:             TypeBool\r
               19:      7(int) Constant 1\r
               21:             TypePointer Input 7(int)\r
  22(gl_VertexID):     21(ptr) Variable Input \r
@@ -39,11 +39,11 @@ Linked vertex stage:
                               Store 9(i) 10 \r
                               Branch 11\r
               11:             Label\r
-              13:      7(int) Load 9(i) \r
-              16:    15(bool) SLessThan 13 14\r
+              14:      7(int) Load 9(i) \r
+              17:    16(bool) SLessThan 14 15\r
                               LoopMerge 12 None\r
-                              BranchConditional 16 17 12 \r
-              17:               Label\r
+                              BranchConditional 17 13 12 \r
+              13:               Label\r
               18:      7(int)   Load 9(i) \r
               20:      7(int)   IAdd 18 19\r
                                 Store 9(i) 20 \r
index 6eb3fdc..5d82ee8 100644 (file)
@@ -14,7 +14,7 @@ Linked fragment stage:
                               Name 4  "main"\r
                               Name 10  "color"\r
                               Name 12  "BaseColor"\r
-                              Name 19  "d"\r
+                              Name 20  "d"\r
                               Name 25  "bigColor"\r
                               Name 30  "gl_FragColor"\r
                               Decorate 12(BaseColor) Smooth \r
@@ -26,9 +26,9 @@ Linked fragment stage:
                9:             TypePointer Function 8(fvec4)\r
               11:             TypePointer Input 8(fvec4)\r
    12(BaseColor):     11(ptr) Variable Input \r
-              18:             TypePointer UniformConstant 7(float)\r
-           19(d):     18(ptr) Variable UniformConstant \r
-              21:             TypeBool\r
+              19:             TypePointer UniformConstant 7(float)\r
+           20(d):     19(ptr) Variable UniformConstant \r
+              22:             TypeBool\r
               24:             TypePointer UniformConstant 8(fvec4)\r
     25(bigColor):     24(ptr) Variable UniformConstant \r
               29:             TypePointer Output 8(fvec4)\r
@@ -40,13 +40,13 @@ Linked fragment stage:
                               Store 10(color) 13 \r
                               Branch 14\r
               14:             Label\r
-              16:    8(fvec4) Load 10(color) \r
-              17:    7(float) CompositeExtract 16 0\r
-              20:    7(float) Load 19(d) \r
-              22:    21(bool) FOrdLessThan 17 20\r
+              17:    8(fvec4) Load 10(color) \r
+              18:    7(float) CompositeExtract 17 0\r
+              21:    7(float) Load 20(d) \r
+              23:    22(bool) FOrdLessThan 18 21\r
                               LoopMerge 15 None\r
-                              BranchConditional 22 23 15 \r
-              23:               Label\r
+                              BranchConditional 23 16 15 \r
+              16:               Label\r
               26:    8(fvec4)   Load 25(bigColor) \r
               27:    8(fvec4)   Load 10(color) \r
               28:    8(fvec4)   FAdd 27 26\r