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