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.
118 lines
5.3 KiB
Plaintext
118 lines
5.3 KiB
Plaintext
spv.do-while-continue-break.vert
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 52
|
|
|
|
Source ESSL 300
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Vertex 4
|
|
Name 4 "main"
|
|
Name 9 "i"
|
|
Name 25 "A"
|
|
Name 31 "B"
|
|
Name 34 "C"
|
|
Name 40 "D"
|
|
Name 43 "E"
|
|
Name 45 "F"
|
|
Name 47 "G"
|
|
Name 50 "gl_VertexID"
|
|
Name 51 "gl_InstanceID"
|
|
Decorate 9(i) PrecisionHigh
|
|
Decorate 25(A) PrecisionHigh
|
|
Decorate 31(B) PrecisionHigh
|
|
Decorate 34(C) PrecisionHigh
|
|
Decorate 40(D) PrecisionHigh
|
|
Decorate 43(E) PrecisionHigh
|
|
Decorate 45(F) PrecisionHigh
|
|
Decorate 47(G) PrecisionHigh
|
|
Decorate 50(gl_VertexID) PrecisionHigh
|
|
Decorate 50(gl_VertexID) BuiltIn VertexId
|
|
Decorate 50(gl_VertexID) NoStaticUse
|
|
Decorate 51(gl_InstanceID) PrecisionHigh
|
|
Decorate 51(gl_InstanceID) BuiltIn InstanceId
|
|
Decorate 51(gl_InstanceID) NoStaticUse
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
7: TypeInt 32 1
|
|
8: TypePointer Function 7(int)
|
|
10: 7(int) Constant 0
|
|
15: TypeBool
|
|
16: 15(bool) ConstantTrue
|
|
20: 7(int) Constant 1
|
|
22: 7(int) Constant 19
|
|
27: 7(int) Constant 2
|
|
32: 15(bool) ConstantFalse
|
|
36: 7(int) Constant 5
|
|
41: 7(int) Constant 3
|
|
44: 7(int) Constant 42
|
|
46: 7(int) Constant 99
|
|
48: 7(int) Constant 12
|
|
49: TypePointer Input 7(int)
|
|
50(gl_VertexID): 49(ptr) Variable Input
|
|
51(gl_InstanceID): 49(ptr) Variable Input
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
9(i): 8(ptr) Variable Function
|
|
25(A): 8(ptr) Variable Function
|
|
31(B): 8(ptr) Variable Function
|
|
34(C): 8(ptr) Variable Function
|
|
40(D): 8(ptr) Variable Function
|
|
43(E): 8(ptr) Variable Function
|
|
45(F): 8(ptr) Variable Function
|
|
47(G): 8(ptr) Variable Function
|
|
Store 9(i) 10
|
|
Branch 11
|
|
11: Label
|
|
14: 15(bool) Phi 16 5 32 29 32 39
|
|
LoopMerge 12 None
|
|
Branch 17
|
|
17: Label
|
|
SelectionMerge 13 None
|
|
BranchConditional 14 13 18
|
|
18: Label
|
|
19: 7(int) Load 9(i)
|
|
21: 7(int) IAdd 19 20
|
|
Store 9(i) 21
|
|
23: 15(bool) SLessThan 21 22
|
|
SelectionMerge 24 None
|
|
BranchConditional 23 24 12
|
|
24: Label
|
|
Branch 13
|
|
13: Label
|
|
Store 25(A) 10
|
|
26: 7(int) Load 9(i)
|
|
28: 15(bool) IEqual 26 27
|
|
SelectionMerge 30 None
|
|
BranchConditional 28 29 30
|
|
29: Label
|
|
Store 31(B) 20
|
|
Branch 11
|
|
33: Label
|
|
Store 34(C) 27
|
|
Branch 30
|
|
30: Label
|
|
35: 7(int) Load 9(i)
|
|
37: 15(bool) IEqual 35 36
|
|
SelectionMerge 39 None
|
|
BranchConditional 37 38 39
|
|
38: Label
|
|
Store 40(D) 41
|
|
Branch 12
|
|
42: Label
|
|
Store 43(E) 44
|
|
Branch 39
|
|
39: Label
|
|
Store 45(F) 46
|
|
Branch 11
|
|
12: Label
|
|
Store 47(G) 48
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|