
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.
239 lines
11 KiB
Plaintext
Executable File
239 lines
11 KiB
Plaintext
Executable File
spv.functionSemantics.frag
|
|
Warning, version 400 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 158
|
|
|
|
Source GLSL 400
|
|
Capability Shader
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint Fragment 4 "main"
|
|
ExecutionMode 4 OriginLowerLeft
|
|
Name 4 "main"
|
|
Name 15 "foo(i1;i1;i1;i1;i1;i1;"
|
|
Name 9 "a"
|
|
Name 10 "b"
|
|
Name 11 "c"
|
|
Name 12 "d"
|
|
Name 13 "e"
|
|
Name 14 "f"
|
|
Name 25 "foo2(f1;vf3;i1;"
|
|
Name 22 "a"
|
|
Name 23 "b"
|
|
Name 24 "r"
|
|
Name 28 "foo3("
|
|
Name 30 "sum"
|
|
Name 72 "u"
|
|
Name 84 "t"
|
|
Name 87 "s"
|
|
MemberName 87(s) 0 "t"
|
|
Name 89 "f"
|
|
Name 96 "color"
|
|
Name 102 "e"
|
|
Name 103 "param"
|
|
Name 104 "param"
|
|
Name 105 "param"
|
|
Name 106 "param"
|
|
Name 125 "ret"
|
|
Name 127 "tempReturn"
|
|
Name 132 "tempArg"
|
|
Name 133 "param"
|
|
Name 134 "param"
|
|
Name 135 "param"
|
|
Name 138 "arg"
|
|
Name 154 "gl_FragColor"
|
|
Decorate 154(gl_FragColor) BuiltIn FragColor
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
8: TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)
|
|
17: TypeFloat 32
|
|
18: TypePointer Function 17(float)
|
|
19: TypeVector 17(float) 3
|
|
20: TypePointer Function 19(fvec3)
|
|
21: TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)
|
|
27: TypeFunction 6(int)
|
|
38: 6(int) Constant 64
|
|
43: 6(int) Constant 1024
|
|
61: 17(float) Constant 1077936128
|
|
65: 17(float) Constant 1084227584
|
|
71: TypePointer UniformConstant 17(float)
|
|
72(u): 71(ptr) Variable UniformConstant
|
|
74: 17(float) Constant 1078774989
|
|
75: TypeBool
|
|
80: 6(int) Constant 1000000
|
|
82: 6(int) Constant 2000000
|
|
85: 6(int) Constant 2
|
|
86: TypeVector 6(int) 4
|
|
87(s): TypeStruct 86(ivec4)
|
|
88: TypePointer Function 87(s)
|
|
90: 6(int) Constant 0
|
|
91: 6(int) Constant 32
|
|
92: TypePointer Function 86(ivec4)
|
|
97: 6(int) Constant 1
|
|
101: 6(int) Constant 8
|
|
116: 6(int) Constant 128
|
|
126: TypePointer PrivateGlobal 6(int)
|
|
127(tempReturn): 126(ptr) Variable PrivateGlobal
|
|
128: 17(float) Constant 1082130432
|
|
129: 17(float) Constant 1065353216
|
|
130: 17(float) Constant 1073741824
|
|
131: 19(fvec3) ConstantComposite 129 130 61
|
|
152: TypeVector 17(float) 4
|
|
153: TypePointer Output 152(fvec4)
|
|
154(gl_FragColor): 153(ptr) Variable Output
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
84(t): 7(ptr) Variable Function
|
|
89(f): 88(ptr) Variable Function
|
|
96(color): 7(ptr) Variable Function
|
|
102(e): 7(ptr) Variable Function
|
|
103(param): 7(ptr) Variable Function
|
|
104(param): 7(ptr) Variable Function
|
|
105(param): 7(ptr) Variable Function
|
|
106(param): 7(ptr) Variable Function
|
|
125(ret): 18(ptr) Variable Function
|
|
132(tempArg): 7(ptr) Variable Function
|
|
133(param): 18(ptr) Variable Function
|
|
134(param): 20(ptr) Variable Function
|
|
135(param): 7(ptr) Variable Function
|
|
138(arg): 18(ptr) Variable Function
|
|
Store 84(t) 85
|
|
93: 92(ptr) AccessChain 89(f) 90
|
|
94: 86(ivec4) Load 93
|
|
95: 86(ivec4) CompositeInsert 91 94 1
|
|
Store 93 95
|
|
98: 6(int) Load 84(t)
|
|
99: 6(int) Load 84(t)
|
|
100: 6(int) IAdd 98 99
|
|
Store 103(param) 97
|
|
Store 104(param) 100
|
|
107: 92(ptr) AccessChain 89(f) 90
|
|
108: 86(ivec4) Load 107
|
|
109: 6(int) CompositeExtract 108 1
|
|
Store 106(param) 109
|
|
110: 6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 103(param) 85 104(param) 101 105(param) 106(param)
|
|
111: 6(int) Load 105(param)
|
|
Store 102(e) 111
|
|
112: 6(int) Load 106(param)
|
|
113: 92(ptr) AccessChain 89(f) 90
|
|
114: 86(ivec4) Load 113
|
|
115: 86(ivec4) CompositeInsert 112 114 1
|
|
Store 113 115
|
|
Store 96(color) 110
|
|
117: 6(int) Load 102(e)
|
|
118: 92(ptr) AccessChain 89(f) 90
|
|
119: 86(ivec4) Load 118
|
|
120: 6(int) CompositeExtract 119 1
|
|
121: 6(int) IAdd 117 120
|
|
122: 6(int) IMul 116 121
|
|
123: 6(int) Load 96(color)
|
|
124: 6(int) IAdd 123 122
|
|
Store 96(color) 124
|
|
Store 133(param) 128
|
|
Store 134(param) 131
|
|
136: 6(int) FunctionCall 25(foo2(f1;vf3;i1;) 133(param) 134(param) 135(param)
|
|
137: 6(int) Load 135(param)
|
|
Store 132(tempArg) 137
|
|
Store 127(tempReturn) 136
|
|
139: 6(int) Load 132(tempArg)
|
|
140: 17(float) ConvertSToF 139
|
|
Store 138(arg) 140
|
|
141: 6(int) Load 127(tempReturn)
|
|
142: 17(float) ConvertSToF 141
|
|
Store 125(ret) 142
|
|
143: 17(float) Load 125(ret)
|
|
144: 17(float) Load 138(arg)
|
|
145: 17(float) FAdd 143 144
|
|
146: 6(int) ConvertFToS 145
|
|
147: 6(int) Load 96(color)
|
|
148: 6(int) IAdd 147 146
|
|
Store 96(color) 148
|
|
149: 6(int) FunctionCall 28(foo3()
|
|
150: 6(int) Load 96(color)
|
|
151: 6(int) IAdd 150 149
|
|
Store 96(color) 151
|
|
155: 6(int) Load 96(color)
|
|
156: 17(float) ConvertSToF 155
|
|
157: 152(fvec4) CompositeConstruct 156 156 156 156
|
|
Store 154(gl_FragColor) 157
|
|
Return
|
|
FunctionEnd
|
|
15(foo(i1;i1;i1;i1;i1;i1;): 6(int) Function None 8
|
|
9(a): 7(ptr) FunctionParameter
|
|
10(b): 6(int) FunctionParameter
|
|
11(c): 7(ptr) FunctionParameter
|
|
12(d): 6(int) FunctionParameter
|
|
13(e): 7(ptr) FunctionParameter
|
|
14(f): 7(ptr) FunctionParameter
|
|
16: Label
|
|
30(sum): 7(ptr) Variable Function
|
|
31: 6(int) Load 9(a)
|
|
32: 6(int) IAdd 31 10(b)
|
|
33: 6(int) Load 11(c)
|
|
34: 6(int) IAdd 32 33
|
|
35: 6(int) IAdd 34 12(d)
|
|
36: 6(int) Load 14(f)
|
|
37: 6(int) IAdd 35 36
|
|
Store 30(sum) 37
|
|
39: 6(int) Load 9(a)
|
|
40: 6(int) IMul 39 38
|
|
Store 9(a) 40
|
|
41: 6(int) Load 11(c)
|
|
42: 6(int) IMul 41 38
|
|
Store 11(c) 42
|
|
Store 13(e) 43
|
|
44: 6(int) Load 14(f)
|
|
45: 6(int) IMul 44 38
|
|
Store 14(f) 45
|
|
46: 6(int) Load 9(a)
|
|
47: 6(int) IMul 38 10(b)
|
|
48: 6(int) IAdd 46 47
|
|
49: 6(int) Load 11(c)
|
|
50: 6(int) IAdd 48 49
|
|
51: 6(int) IMul 38 12(d)
|
|
52: 6(int) IAdd 50 51
|
|
53: 6(int) Load 13(e)
|
|
54: 6(int) IAdd 52 53
|
|
55: 6(int) Load 14(f)
|
|
56: 6(int) IAdd 54 55
|
|
57: 6(int) Load 30(sum)
|
|
58: 6(int) IAdd 57 56
|
|
Store 30(sum) 58
|
|
59: 6(int) Load 30(sum)
|
|
ReturnValue 59
|
|
FunctionEnd
|
|
25(foo2(f1;vf3;i1;): 6(int) Function None 21
|
|
22(a): 18(ptr) FunctionParameter
|
|
23(b): 20(ptr) FunctionParameter
|
|
24(r): 7(ptr) FunctionParameter
|
|
26: Label
|
|
62: 17(float) Load 22(a)
|
|
63: 17(float) FMul 61 62
|
|
64: 6(int) ConvertFToS 63
|
|
Store 24(r) 64
|
|
66: 19(fvec3) Load 23(b)
|
|
67: 17(float) CompositeExtract 66 1
|
|
68: 17(float) FMul 65 67
|
|
69: 6(int) ConvertFToS 68
|
|
ReturnValue 69
|
|
FunctionEnd
|
|
28(foo3(): 6(int) Function None 27
|
|
29: Label
|
|
73: 17(float) Load 72(u)
|
|
76: 75(bool) FOrdGreaterThan 73 74
|
|
SelectionMerge 78 None
|
|
BranchConditional 76 77 78
|
|
77: Label
|
|
Kill
|
|
78: Label
|
|
ReturnValue 82
|
|
FunctionEnd
|