Split loop header from condition testing for for/while loops.
diff --git a/Test/baseResults/spv.dataOutIndirect.vert.out b/Test/baseResults/spv.dataOutIndirect.vert.out
index 08c07a9..62da85f 100755
--- a/Test/baseResults/spv.dataOutIndirect.vert.out
+++ b/Test/baseResults/spv.dataOutIndirect.vert.out
@@ -8,66 +8,68 @@
 
 // Module Version 10000
 // Generated by (magic number): 80001
-// Id's are bound by 39
+// Id's are bound by 40
 
                               Capability Shader
                1:             ExtInstImport  "GLSL.std.450"
                               MemoryModel Logical GLSL450
-                              EntryPoint Vertex 4  "main" 24 27 33 38
+                              EntryPoint Vertex 4  "main" 25 28 34 39
                               Source GLSL 130
                               Name 4  "main"
                               Name 8  "i"
-                              Name 24  "colorOut"
-                              Name 27  "color"
-                              Name 33  "gl_Position"
-                              Name 38  "gl_VertexID"
-                              Decorate 33(gl_Position) BuiltIn Position
-                              Decorate 38(gl_VertexID) BuiltIn VertexId
+                              Name 25  "colorOut"
+                              Name 28  "color"
+                              Name 34  "gl_Position"
+                              Name 39  "gl_VertexID"
+                              Decorate 34(gl_Position) BuiltIn Position
+                              Decorate 39(gl_VertexID) BuiltIn VertexId
                2:             TypeVoid
                3:             TypeFunction 2
                6:             TypeInt 32 1
                7:             TypePointer Function 6(int)
                9:      6(int) Constant 1
-              15:      6(int) Constant 5
-              16:             TypeBool
-              18:             TypeFloat 32
-              19:             TypeVector 18(float) 4
-              20:             TypeInt 32 0
-              21:     20(int) Constant 6
-              22:             TypeArray 19(fvec4) 21
-              23:             TypePointer Output 22
-    24(colorOut):     23(ptr) Variable Output
-              26:             TypePointer Input 19(fvec4)
-       27(color):     26(ptr) Variable Input
-              29:             TypePointer Output 19(fvec4)
- 33(gl_Position):     29(ptr) Variable Output
-              34:      6(int) Constant 2
-              37:             TypePointer Input 6(int)
- 38(gl_VertexID):     37(ptr) Variable Input
+              16:      6(int) Constant 5
+              17:             TypeBool
+              19:             TypeFloat 32
+              20:             TypeVector 19(float) 4
+              21:             TypeInt 32 0
+              22:     21(int) Constant 6
+              23:             TypeArray 20(fvec4) 22
+              24:             TypePointer Output 23
+    25(colorOut):     24(ptr) Variable Output
+              27:             TypePointer Input 20(fvec4)
+       28(color):     27(ptr) Variable Input
+              30:             TypePointer Output 20(fvec4)
+ 34(gl_Position):     30(ptr) Variable Output
+              35:      6(int) Constant 2
+              38:             TypePointer Input 6(int)
+ 39(gl_VertexID):     38(ptr) Variable Input
          4(main):           2 Function None 3
                5:             Label
             8(i):      7(ptr) Variable Function
                               Store 8(i) 9
                               Branch 10
               10:             Label
-              14:      6(int) Load 8(i)
-              17:    16(bool) SLessThan 14 15
                               LoopMerge 12 13 None
-                              BranchConditional 17 11 12
+                              Branch 14
+              14:             Label
+              15:      6(int) Load 8(i)
+              18:    17(bool) SLessThan 15 16
+                              BranchConditional 18 11 12
               11:               Label
-              25:      6(int)   Load 8(i)
-              28:   19(fvec4)   Load 27(color)
-              30:     29(ptr)   AccessChain 24(colorOut) 25
-                                Store 30 28
+              26:      6(int)   Load 8(i)
+              29:   20(fvec4)   Load 28(color)
+              31:     30(ptr)   AccessChain 25(colorOut) 26
+                                Store 31 29
                                 Branch 13
               13:               Label
-              31:      6(int)   Load 8(i)
-              32:      6(int)   IAdd 31 9
-                                Store 8(i) 32
+              32:      6(int)   Load 8(i)
+              33:      6(int)   IAdd 32 9
+                                Store 8(i) 33
                                 Branch 10
               12:             Label
-              35:     29(ptr) AccessChain 24(colorOut) 34
-              36:   19(fvec4) Load 35
-                              Store 33(gl_Position) 36
+              36:     30(ptr) AccessChain 25(colorOut) 35
+              37:   20(fvec4) Load 36
+                              Store 34(gl_Position) 37
                               Return
                               FunctionEnd