glslang/Test/baseResults/spv.switch.frag.out
Dejan Mircevski ed55bcd9f8 Don't remove SPIR-V blocks before codegen.
A removed block releases its instructions, so Module::idToInstruction
suddenly contains dangling references.  The original motivation for
block removal was to skip some unreachable blocks, but that's already
achieved by InReadableOrder.cpp.

Also updated stale comments.
2016-01-19 21:18:14 -05:00

405 lines
18 KiB
Plaintext
Executable File

spv.switch.frag
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.
WARNING: 0:121: 'switch' : last case/default label not followed by statements
WARNING: 0:134: 'switch' : last case/default label not followed by statements
WARNING: 0:139: 'switch' : last case/default label not followed by statements
Linked fragment stage:
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 267
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 75 225
ExecutionMode 4 OriginLowerLeft
Source ESSL 310
Name 4 "main"
Name 15 "foo1(vf4;vf4;i1;"
Name 12 "v1"
Name 13 "v2"
Name 14 "i1"
Name 20 "foo2(vf4;vf4;i1;"
Name 17 "v1"
Name 18 "v2"
Name 19 "i1"
Name 60 "local"
Name 62 "c"
Name 73 "f"
Name 75 "x"
Name 129 "d"
Name 155 "i"
Name 174 "j"
Name 225 "color"
Name 231 "v"
Name 232 "param"
Name 234 "param"
Name 236 "param"
Name 244 "param"
Name 246 "param"
Name 248 "param"
Decorate 60(local) RelaxedPrecision
Decorate 62(c) RelaxedPrecision
Decorate 73(f) RelaxedPrecision
Decorate 75(x) RelaxedPrecision
Decorate 129(d) RelaxedPrecision
Decorate 155(i) RelaxedPrecision
Decorate 174(j) RelaxedPrecision
Decorate 225(color) RelaxedPrecision
Decorate 231(v) RelaxedPrecision
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
9: TypeInt 32 1
10: TypePointer Function 9(int)
11: TypeFunction 7(fvec4) 8(ptr) 8(ptr) 10(ptr)
36: 6(float) Constant 0
37: 7(fvec4) ConstantComposite 36 36 36 36
48: 6(float) Constant 1065353216
49: 7(fvec4) ConstantComposite 48 48 48 48
61: TypePointer UniformConstant 9(int)
62(c): 61(ptr) Variable UniformConstant
65: 9(int) Constant 1
72: TypePointer Function 6(float)
74: TypePointer Input 6(float)
75(x): 74(ptr) Variable Input
129(d): 61(ptr) Variable UniformConstant
156: 9(int) Constant 0
162: 9(int) Constant 10
163: TypeBool
175: 9(int) Constant 20
181: 9(int) Constant 30
186: 6(float) Constant 1120429670
206: 6(float) Constant 1079739679
224: TypePointer Output 6(float)
225(color): 224(ptr) Variable Output
230: TypePointer UniformConstant 7(fvec4)
231(v): 230(ptr) Variable UniformConstant
239: TypeInt 32 0
240: 239(int) Constant 1
251: 239(int) Constant 2
4(main): 2 Function None 3
5: Label
60(local): 10(ptr) Variable Function
73(f): 72(ptr) Variable Function
155(i): 10(ptr) Variable Function
174(j): 10(ptr) Variable Function
232(param): 8(ptr) Variable Function
234(param): 8(ptr) Variable Function
236(param): 10(ptr) Variable Function
244(param): 8(ptr) Variable Function
246(param): 8(ptr) Variable Function
248(param): 10(ptr) Variable Function
63: 9(int) Load 62(c)
Store 60(local) 63
64: 9(int) Load 60(local)
66: 9(int) IAdd 64 65
Store 60(local) 66
67: 9(int) Load 62(c)
SelectionMerge 71 None
Switch 67 70
case 1: 68
case 2: 69
70: Label
82: 6(float) Load 75(x)
83: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 82
Store 73(f) 83
Branch 71
68: Label
76: 6(float) Load 75(x)
77: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 76
Store 73(f) 77
Branch 71
69: Label
79: 6(float) Load 75(x)
80: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 79
Store 73(f) 80
Branch 71
71: Label
85: 9(int) Load 62(c)
SelectionMerge 89 None
Switch 85 88
case 1: 86
case 2: 87
88: Label
99: 6(float) Load 75(x)
100: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 99
101: 6(float) Load 73(f)
102: 6(float) FAdd 101 100
Store 73(f) 102
Branch 89
86: Label
90: 6(float) Load 75(x)
91: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 90
92: 6(float) Load 73(f)
93: 6(float) FAdd 92 91
Store 73(f) 93
Branch 87
87: Label
94: 6(float) Load 75(x)
95: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 94
96: 6(float) Load 73(f)
97: 6(float) FAdd 96 95
Store 73(f) 97
Branch 89
89: Label
104: 9(int) Load 62(c)
SelectionMerge 107 None
Switch 104 107
case 1: 105
case 2: 106
105: Label
108: 6(float) Load 75(x)
109: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 108
110: 6(float) Load 73(f)
111: 6(float) FAdd 110 109
Store 73(f) 111
Branch 107
106: Label
113: 6(float) Load 75(x)
114: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 113
115: 6(float) Load 73(f)
116: 6(float) FAdd 115 114
Store 73(f) 116
Branch 107
107: Label
119: 9(int) Load 62(c)
SelectionMerge 123 None
Switch 119 122
case 1: 120
case 2: 121
122: Label
150: 6(float) Load 75(x)
151: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 150
152: 6(float) Load 73(f)
153: 6(float) FAdd 152 151
Store 73(f) 153
Branch 123
120: Label
124: 6(float) Load 75(x)
125: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 124
126: 6(float) Load 73(f)
127: 6(float) FAdd 126 125
Store 73(f) 127
Branch 123
121: Label
130: 9(int) Load 129(d)
SelectionMerge 133 None
Switch 130 133
case 1: 131
case 2: 132
131: Label
134: 6(float) Load 75(x)
135: 6(float) Load 75(x)
136: 6(float) FMul 134 135
137: 6(float) Load 75(x)
138: 6(float) FMul 136 137
139: 6(float) Load 73(f)
140: 6(float) FAdd 139 138
Store 73(f) 140
Branch 133
132: Label
142: 6(float) Load 75(x)
143: 6(float) Load 75(x)
144: 6(float) FMul 142 143
145: 6(float) Load 73(f)
146: 6(float) FAdd 145 144
Store 73(f) 146
Branch 133
133: Label
Branch 123
123: Label
Store 155(i) 156
Branch 157
157: Label
161: 9(int) Load 155(i)
164: 163(bool) SLessThan 161 162
LoopMerge 159 160 None
BranchConditional 164 158 159
158: Label
165: 9(int) Load 62(c)
SelectionMerge 169 None
Switch 165 168
case 1: 166
case 2: 167
168: Label
200: 6(float) Load 75(x)
201: 6(float) ExtInst 1(GLSL.std.450) 15(Tan) 200
202: 6(float) Load 73(f)
203: 6(float) FAdd 202 201
Store 73(f) 203
Branch 169
166: Label
170: 6(float) Load 75(x)
171: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 170
172: 6(float) Load 73(f)
173: 6(float) FAdd 172 171
Store 73(f) 173
Store 174(j) 175
Branch 176
176: Label
180: 9(int) Load 174(j)
182: 163(bool) SLessThan 180 181
LoopMerge 178 179 None
BranchConditional 182 177 178
177: Label
183: 6(float) Load 73(f)
184: 6(float) FAdd 183 48
Store 73(f) 184
185: 6(float) Load 73(f)
187: 163(bool) FOrdLessThan 185 186
SelectionMerge 189 None
BranchConditional 187 188 189
188: Label
Branch 178
189: Label
Branch 179
179: Label
191: 9(int) Load 174(j)
192: 9(int) IAdd 191 65
Store 174(j) 192
Branch 176
178: Label
Branch 169
167: Label
194: 6(float) Load 75(x)
195: 6(float) ExtInst 1(GLSL.std.450) 14(Cos) 194
196: 6(float) Load 73(f)
197: 6(float) FAdd 196 195
Store 73(f) 197
Branch 169
169: Label
205: 6(float) Load 73(f)
207: 163(bool) FOrdLessThan 205 206
SelectionMerge 209 None
BranchConditional 207 208 209
208: Label
Branch 159
209: Label
Branch 160
160: Label
211: 9(int) Load 155(i)
212: 9(int) IAdd 211 65
Store 155(i) 212
Branch 157
159: Label
213: 9(int) Load 62(c)
SelectionMerge 216 None
Switch 213 216
case 1: 214
case 2: 215
214: Label
217: 6(float) Load 75(x)
218: 6(float) ExtInst 1(GLSL.std.450) 13(Sin) 217
219: 6(float) Load 73(f)
220: 6(float) FAdd 219 218
Store 73(f) 220
Branch 216
215: Label
Branch 216
216: Label
226: 6(float) Load 73(f)
227: 9(int) Load 60(local)
228: 6(float) ConvertSToF 227
229: 6(float) FAdd 226 228
Store 225(color) 229
233: 7(fvec4) Load 231(v)
Store 232(param) 233
235: 7(fvec4) Load 231(v)
Store 234(param) 235
237: 9(int) Load 62(c)
Store 236(param) 237
238: 7(fvec4) FunctionCall 15(foo1(vf4;vf4;i1;) 232(param) 234(param) 236(param)
241: 6(float) CompositeExtract 238 1
242: 6(float) Load 225(color)
243: 6(float) FAdd 242 241
Store 225(color) 243
245: 7(fvec4) Load 231(v)
Store 244(param) 245
247: 7(fvec4) Load 231(v)
Store 246(param) 247
249: 9(int) Load 62(c)
Store 248(param) 249
250: 7(fvec4) FunctionCall 20(foo2(vf4;vf4;i1;) 244(param) 246(param) 248(param)
252: 6(float) CompositeExtract 250 2
253: 6(float) Load 225(color)
254: 6(float) FAdd 253 252
Store 225(color) 254
255: 9(int) Load 62(c)
SelectionMerge 258 None
Switch 255 257
case 0: 256
257: Label
Branch 258
256: Label
Branch 258
258: Label
262: 9(int) Load 62(c)
SelectionMerge 264 None
Switch 262 263
263: Label
Branch 264
264: Label
Return
FunctionEnd
15(foo1(vf4;vf4;i1;): 7(fvec4) Function None 11
12(v1): 8(ptr) FunctionParameter
13(v2): 8(ptr) FunctionParameter
14(i1): 10(ptr) FunctionParameter
16: Label
22: 9(int) Load 14(i1)
SelectionMerge 26 None
Switch 22 26
case 0: 23
case 2: 24
case 1: 24
case 3: 25
23: Label
27: 7(fvec4) Load 12(v1)
ReturnValue 27
24: Label
29: 7(fvec4) Load 13(v2)
ReturnValue 29
25: Label
31: 7(fvec4) Load 12(v1)
32: 7(fvec4) Load 13(v2)
33: 7(fvec4) FMul 31 32
ReturnValue 33
26: Label
ReturnValue 37
FunctionEnd
20(foo2(vf4;vf4;i1;): 7(fvec4) Function None 11
17(v1): 8(ptr) FunctionParameter
18(v2): 8(ptr) FunctionParameter
19(i1): 10(ptr) FunctionParameter
21: Label
40: 9(int) Load 19(i1)
SelectionMerge 45 None
Switch 40 45
case 0: 41
case 2: 42
case 1: 43
case 3: 44
41: Label
46: 7(fvec4) Load 17(v1)
ReturnValue 46
42: Label
ReturnValue 49
43: Label
51: 7(fvec4) Load 18(v2)
ReturnValue 51
44: Label
53: 7(fvec4) Load 17(v1)
54: 7(fvec4) Load 18(v2)
55: 7(fvec4) FMul 53 54
ReturnValue 55
45: Label
ReturnValue 37
FunctionEnd