glslang/Test/baseResults/spv.AofA.frag.out
John Kessenich e770b3e6cf SPV return from main: Simplify a legacy design such returns are not jumps to exit block.
Structured control-flow rules allow leaving the middle of a construct through
a return, but not through a jump to a block that does a return.

Addresses issue #58.
2015-09-14 21:08:58 -06:00

153 lines
7.0 KiB
Plaintext

spv.AofA.frag
Warning, version 430 is not yet complete; most version-specific features are present, but some are missing.
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 103
Source GLSL 430
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Name 4 "main"
Name 17 "foo(f1[5][7];"
Name 16 "a"
Name 20 "r"
Name 38 "outfloat"
Name 41 "g4"
Name 43 "g5"
Name 44 "param"
Name 47 "u"
Name 51 "param"
Name 65 "many"
Name 67 "i"
Name 69 "j"
Name 71 "k"
Name 77 "infloat"
Name 93 "uAofA"
MemberName 93(uAofA) 0 "f"
Name 97 "nameAofA"
Decorate 43(g5) Smooth
Decorate 77(infloat) Smooth
Decorate 93(uAofA) GLSLShared
Decorate 93(uAofA) Block
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeInt 32 0
8: 7(int) Constant 7
9: TypeArray 6(float) 8
10: 7(int) Constant 5
11: TypeArray 9 10
12: TypePointer Function 11
13: 7(int) Constant 4
14: TypeArray 9 13
15: TypeFunction 14 12(ptr)
19: TypePointer Function 9
21: TypeInt 32 1
22: 21(int) Constant 2
25: 21(int) Constant 0
28: 21(int) Constant 1
32: 21(int) Constant 3
37: TypePointer Output 6(float)
38(outfloat): 37(ptr) Variable Output
39: 6(float) Constant 0
40: TypePointer PrivateGlobal 14
41(g4): 40(ptr) Variable PrivateGlobal
42: TypePointer Input 11
43(g5): 42(ptr) Variable Input
48: 6(float) Constant 1077936128
49: TypePointer Function 6(float)
54: 7(int) Constant 6
55: TypeArray 6(float) 54
56: TypeArray 55 10
57: TypeArray 56 13
58: 7(int) Constant 3
59: TypeArray 57 58
60: 7(int) Constant 2
61: TypeArray 59 60
62: 7(int) Constant 1
63: TypeArray 61 62
64: TypePointer PrivateGlobal 63
65(many): 64(ptr) Variable PrivateGlobal
66: TypePointer UniformConstant 21(int)
67(i): 66(ptr) Variable UniformConstant
69(j): 66(ptr) Variable UniformConstant
71(k): 66(ptr) Variable UniformConstant
76: TypePointer Input 6(float)
77(infloat): 76(ptr) Variable Input
79: TypePointer PrivateGlobal 6(float)
91: TypeArray 6(float) 13
92: TypeArray 91 60
93(uAofA): TypeStruct 92
94: TypeArray 93(uAofA) 10
95: TypeArray 94 58
96: TypePointer Uniform 95
97(nameAofA): 96(ptr) Variable Uniform
98: TypePointer Uniform 6(float)
4(main): 2 Function None 3
5: Label
44(param): 12(ptr) Variable Function
47(u): 12(ptr) Variable Function
51(param): 12(ptr) Variable Function
Store 38(outfloat) 39
45: 11 Load 43(g5)
Store 44(param) 45
46: 14 FunctionCall 17(foo(f1[5][7];) 44(param)
Store 41(g4) 46
50: 49(ptr) AccessChain 47(u) 22 22
Store 50 48
52: 11 Load 47(u)
Store 51(param) 52
53: 14 FunctionCall 17(foo(f1[5][7];) 51(param)
68: 21(int) Load 67(i)
70: 21(int) Load 69(j)
72: 21(int) Load 71(k)
73: 21(int) Load 67(i)
74: 21(int) Load 69(j)
75: 21(int) Load 71(k)
78: 6(float) Load 77(infloat)
80: 79(ptr) AccessChain 65(many) 68 70 72 73 74 75
Store 80 78
81: 21(int) Load 69(j)
82: 21(int) Load 69(j)
83: 21(int) Load 69(j)
84: 21(int) Load 69(j)
85: 21(int) Load 69(j)
86: 21(int) Load 69(j)
87: 79(ptr) AccessChain 65(many) 81 82 83 84 85 86
88: 6(float) Load 87
89: 6(float) Load 38(outfloat)
90: 6(float) FAdd 89 88
Store 38(outfloat) 90
99: 98(ptr) AccessChain 97(nameAofA) 28 22 25 25 32
100: 6(float) Load 99
101: 6(float) Load 38(outfloat)
102: 6(float) FAdd 101 100
Store 38(outfloat) 102
Return
FunctionEnd
17(foo(f1[5][7];): 14 Function None 15
16(a): 12(ptr) FunctionParameter
18: Label
20(r): 19(ptr) Variable Function
23: 19(ptr) AccessChain 16(a) 22
24: 9 Load 23
Store 20(r) 24
26: 19(ptr) AccessChain 16(a) 25
27: 9 Load 26
29: 19(ptr) AccessChain 16(a) 28
30: 9 Load 29
31: 9 Load 20(r)
33: 19(ptr) AccessChain 16(a) 32
34: 9 Load 33
35: 14 CompositeConstruct 27 30 31 34
ReturnValue 35
FunctionEnd