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.
97 lines
4.3 KiB
Plaintext
97 lines
4.3 KiB
Plaintext
spv.while-continue-break.vert
|
|
|
|
Linked vertex stage:
|
|
|
|
|
|
// Module Version 99
|
|
// Generated by (magic number): 51a00bb
|
|
// Id's are bound by 43
|
|
|
|
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 28 "C"
|
|
Name 38 "D"
|
|
Name 41 "gl_VertexID"
|
|
Name 42 "gl_InstanceID"
|
|
Decorate 9(i) PrecisionHigh
|
|
Decorate 18(A) PrecisionHigh
|
|
Decorate 26(B) PrecisionHigh
|
|
Decorate 28(C) PrecisionHigh
|
|
Decorate 38(D) PrecisionHigh
|
|
Decorate 41(gl_VertexID) PrecisionHigh
|
|
Decorate 41(gl_VertexID) BuiltIn VertexId
|
|
Decorate 41(gl_VertexID) NoStaticUse
|
|
Decorate 42(gl_InstanceID) PrecisionHigh
|
|
Decorate 42(gl_InstanceID) BuiltIn InstanceId
|
|
Decorate 42(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
|
|
30: 7(int) Constant 5
|
|
39: 7(int) Constant 3
|
|
40: TypePointer Input 7(int)
|
|
41(gl_VertexID): 40(ptr) Variable Input
|
|
42(gl_InstanceID): 40(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
|
|
28(C): 8(ptr) Variable Function
|
|
38(D): 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) 21
|
|
Branch 11
|
|
27: Label
|
|
Store 28(C) 21
|
|
Branch 25
|
|
25: Label
|
|
29: 7(int) Load 9(i)
|
|
31: 7(int) SMod 29 30
|
|
32: 16(bool) IEqual 31 10
|
|
SelectionMerge 34 None
|
|
BranchConditional 32 33 34
|
|
33: Label
|
|
Store 26(B) 21
|
|
Branch 12
|
|
35: Label
|
|
Store 28(C) 21
|
|
Branch 34
|
|
34: Label
|
|
36: 7(int) Load 9(i)
|
|
37: 7(int) IAdd 36 19
|
|
Store 9(i) 37
|
|
Branch 11
|
|
12: Label
|
|
Store 38(D) 39
|
|
Branch 6
|
|
6: Label
|
|
Return
|
|
FunctionEnd
|