Add Test/spv.for-complex-condition.vert.

This commit is contained in:
Dejan Mircevski 2016-01-20 11:54:11 -05:00
parent 213bbbe4a7
commit 2ab5a373d9
3 changed files with 86 additions and 0 deletions

View File

@ -0,0 +1,78 @@
spv.for-complex-condition.vert
Warning, version 450 is not yet complete; most version-specific features are present, but some are missing.
Linked vertex stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 37
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 18 31 35 36
Source GLSL 450
Name 4 "main"
Name 8 "i"
Name 18 "flag"
Name 31 "r"
Name 35 "gl_VertexID"
Name 36 "gl_InstanceID"
Decorate 18(flag) Location 0
Decorate 31(r) Location 0
Decorate 35(gl_VertexID) BuiltIn VertexId
Decorate 36(gl_InstanceID) BuiltIn InstanceId
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 1
7: TypePointer Function 6(int)
9: 6(int) Constant 0
17: TypePointer Input 6(int)
18(flag): 17(ptr) Variable Input
20: 6(int) Constant 1
21: TypeBool
25: 6(int) Constant 10
27: 6(int) Constant 15
30: TypePointer Output 6(int)
31(r): 30(ptr) Variable Output
35(gl_VertexID): 17(ptr) Variable Input
36(gl_InstanceID): 17(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(i): 7(ptr) Variable Function
16: 7(ptr) Variable Function
Store 8(i) 9
Branch 10
10: Label
LoopMerge 12 13 None
Branch 14
14: Label
15: 6(int) Load 8(i)
19: 6(int) Load 18(flag)
22: 21(bool) IEqual 19 20
SelectionMerge 24 None
BranchConditional 22 23 26
23: Label
Store 16 25
Branch 24
26: Label
Store 16 27
Branch 24
24: Label
28: 6(int) Load 16
29: 21(bool) SLessThan 15 28
BranchConditional 29 11 12
11: Label
32: 6(int) Load 8(i)
Store 31(r) 32
Branch 13
13: Label
33: 6(int) Load 8(i)
34: 6(int) IAdd 33 20
Store 8(i) 34
Branch 10
12: Label
Return
FunctionEnd

View File

@ -0,0 +1,7 @@
#version 450
layout(location=0) out highp int r;
layout(location=0) in lowp int flag;
void main() {
int i;
for (i=0; i < (flag==1 ? 10 : 15) ; i++) { r = i; }
}

View File

@ -3,6 +3,7 @@
# goes to the innermost target.
spv.do-simple.vert
spv.do-while-continue-break.vert
spv.for-complex-condition.vert
spv.for-continue-break.vert
spv.for-simple.vert
spv.for-notest.vert