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