glslang/Test/baseResults/spv.Operations.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

514 lines
24 KiB
Plaintext
Executable File

spv.Operations.frag
Linked fragment stage:
// Module Version 99
// Generated by (magic number): 51a00bb
// Id's are bound by 398
Source GLSL 130
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main"
ExecutionMode 4 OriginLowerLeft
Name 4 "main"
Name 9 "v"
Name 11 "uv4"
Name 20 "i"
Name 22 "ui"
Name 169 "uf"
Name 216 "b"
Name 242 "ub41"
Name 244 "ub42"
Name 301 "f"
Name 377 "gl_FragColor"
Name 395 "uiv4"
Name 397 "ub"
Decorate 377(gl_FragColor) BuiltIn FragColor
Decorate 395(uiv4) NoStaticUse
Decorate 397(ub) NoStaticUse
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: TypePointer UniformConstant 7(fvec4)
11(uv4): 10(ptr) Variable UniformConstant
18: TypeInt 32 1
19: TypePointer Function 18(int)
21: TypePointer UniformConstant 18(int)
22(ui): 21(ptr) Variable UniformConstant
168: TypePointer UniformConstant 6(float)
169(uf): 168(ptr) Variable UniformConstant
214: TypeBool
215: TypePointer Function 214(bool)
219: TypeVector 214(bool) 4
241: TypePointer UniformConstant 219(bvec4)
242(ub41): 241(ptr) Variable UniformConstant
244(ub42): 241(ptr) Variable UniformConstant
291: 18(int) Constant 2
298: 18(int) Constant 1
300: TypePointer Function 6(float)
330: TypeVector 6(float) 3
346: 6(float) Constant 1073741824
353: 6(float) Constant 1065353216
358: 18(int) Constant 66
364: 18(int) Constant 17
376: TypePointer Output 7(fvec4)
377(gl_FragColor): 376(ptr) Variable Output
393: TypeVector 18(int) 4
394: TypePointer UniformConstant 393(ivec4)
395(uiv4): 394(ptr) Variable UniformConstant
396: TypePointer UniformConstant 214(bool)
397(ub): 396(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(v): 8(ptr) Variable Function
20(i): 19(ptr) Variable Function
216(b): 215(ptr) Variable Function
301(f): 300(ptr) Variable Function
378: 8(ptr) Variable Function
12: 7(fvec4) Load 11(uv4)
13: 7(fvec4) ExtInst 1(GLSL.std.450) 11(Radians) 12
Store 9(v) 13
14: 7(fvec4) Load 9(v)
15: 7(fvec4) ExtInst 1(GLSL.std.450) 12(Degrees) 14
16: 7(fvec4) Load 9(v)
17: 7(fvec4) FAdd 16 15
Store 9(v) 17
23: 18(int) Load 22(ui)
24: 18(int) Load 22(ui)
25: 18(int) IMul 23 24
Store 20(i) 25
26: 7(fvec4) Load 9(v)
27: 7(fvec4) ExtInst 1(GLSL.std.450) 13(Sin) 26
28: 7(fvec4) Load 9(v)
29: 7(fvec4) FAdd 28 27
Store 9(v) 29
30: 7(fvec4) Load 9(v)
31: 7(fvec4) ExtInst 1(GLSL.std.450) 14(Cos) 30
32: 7(fvec4) Load 9(v)
33: 7(fvec4) FAdd 32 31
Store 9(v) 33
34: 7(fvec4) Load 9(v)
35: 7(fvec4) ExtInst 1(GLSL.std.450) 15(Tan) 34
36: 7(fvec4) Load 9(v)
37: 7(fvec4) FAdd 36 35
Store 9(v) 37
38: 7(fvec4) Load 9(v)
39: 7(fvec4) ExtInst 1(GLSL.std.450) 16(Asin) 38
40: 7(fvec4) Load 9(v)
41: 7(fvec4) FAdd 40 39
Store 9(v) 41
42: 7(fvec4) Load 9(v)
43: 7(fvec4) ExtInst 1(GLSL.std.450) 17(Acos) 42
44: 7(fvec4) Load 9(v)
45: 7(fvec4) FAdd 44 43
Store 9(v) 45
46: 7(fvec4) Load 9(v)
47: 7(fvec4) ExtInst 1(GLSL.std.450) 18(Atan) 46
48: 7(fvec4) Load 9(v)
49: 7(fvec4) FAdd 48 47
Store 9(v) 49
50: 7(fvec4) Load 9(v)
51: 7(fvec4) ExtInst 1(GLSL.std.450) 19(Sinh) 50
52: 7(fvec4) Load 9(v)
53: 7(fvec4) FAdd 52 51
Store 9(v) 53
54: 7(fvec4) Load 9(v)
55: 7(fvec4) ExtInst 1(GLSL.std.450) 20(Cosh) 54
56: 7(fvec4) Load 9(v)
57: 7(fvec4) FAdd 56 55
Store 9(v) 57
58: 7(fvec4) Load 9(v)
59: 7(fvec4) ExtInst 1(GLSL.std.450) 21(Tanh) 58
60: 7(fvec4) Load 9(v)
61: 7(fvec4) FAdd 60 59
Store 9(v) 61
62: 7(fvec4) Load 9(v)
63: 7(fvec4) ExtInst 1(GLSL.std.450) 22(Asinh) 62
64: 7(fvec4) Load 9(v)
65: 7(fvec4) FAdd 64 63
Store 9(v) 65
66: 7(fvec4) Load 9(v)
67: 7(fvec4) ExtInst 1(GLSL.std.450) 23(Acosh) 66
68: 7(fvec4) Load 9(v)
69: 7(fvec4) FAdd 68 67
Store 9(v) 69
70: 7(fvec4) Load 9(v)
71: 7(fvec4) ExtInst 1(GLSL.std.450) 24(Atanh) 70
72: 7(fvec4) Load 9(v)
73: 7(fvec4) FAdd 72 71
Store 9(v) 73
74: 7(fvec4) Load 9(v)
75: 7(fvec4) Load 9(v)
76: 7(fvec4) ExtInst 1(GLSL.std.450) 26(Pow) 74 75
77: 7(fvec4) Load 9(v)
78: 7(fvec4) FAdd 77 76
Store 9(v) 78
79: 7(fvec4) Load 9(v)
80: 7(fvec4) ExtInst 1(GLSL.std.450) 27(Exp) 79
81: 7(fvec4) Load 9(v)
82: 7(fvec4) FAdd 81 80
Store 9(v) 82
83: 7(fvec4) Load 9(v)
84: 7(fvec4) ExtInst 1(GLSL.std.450) 28(Log) 83
85: 7(fvec4) Load 9(v)
86: 7(fvec4) FAdd 85 84
Store 9(v) 86
87: 7(fvec4) Load 9(v)
88: 7(fvec4) ExtInst 1(GLSL.std.450) 29(Exp2) 87
89: 7(fvec4) Load 9(v)
90: 7(fvec4) FAdd 89 88
Store 9(v) 90
91: 7(fvec4) Load 9(v)
92: 7(fvec4) ExtInst 1(GLSL.std.450) 30(Log2) 91
93: 7(fvec4) Load 9(v)
94: 7(fvec4) FAdd 93 92
Store 9(v) 94
95: 7(fvec4) Load 9(v)
96: 7(fvec4) ExtInst 1(GLSL.std.450) 31(Sqrt) 95
97: 7(fvec4) Load 9(v)
98: 7(fvec4) FAdd 97 96
Store 9(v) 98
99: 7(fvec4) Load 9(v)
100: 7(fvec4) ExtInst 1(GLSL.std.450) 32(Inversesqrt) 99
101: 7(fvec4) Load 9(v)
102: 7(fvec4) FAdd 101 100
Store 9(v) 102
103: 7(fvec4) Load 9(v)
104: 7(fvec4) ExtInst 1(GLSL.std.450) 4(FAbs) 103
105: 7(fvec4) Load 9(v)
106: 7(fvec4) FAdd 105 104
Store 9(v) 106
107: 7(fvec4) Load 9(v)
108: 7(fvec4) ExtInst 1(GLSL.std.450) 6(FSign) 107
109: 7(fvec4) Load 9(v)
110: 7(fvec4) FAdd 109 108
Store 9(v) 110
111: 7(fvec4) Load 9(v)
112: 7(fvec4) ExtInst 1(GLSL.std.450) 8(Floor) 111
113: 7(fvec4) Load 9(v)
114: 7(fvec4) FAdd 113 112
Store 9(v) 114
115: 7(fvec4) Load 9(v)
116: 7(fvec4) ExtInst 1(GLSL.std.450) 9(Ceil) 115
117: 7(fvec4) Load 9(v)
118: 7(fvec4) FAdd 117 116
Store 9(v) 118
119: 7(fvec4) Load 9(v)
120: 7(fvec4) ExtInst 1(GLSL.std.450) 10(Fract) 119
121: 7(fvec4) Load 9(v)
122: 7(fvec4) FAdd 121 120
Store 9(v) 122
123: 7(fvec4) Load 9(v)
124: 7(fvec4) Load 9(v)
125: 7(fvec4) FMod 123 124
126: 7(fvec4) Load 9(v)
127: 7(fvec4) FAdd 126 125
Store 9(v) 127
128: 7(fvec4) Load 9(v)
129: 7(fvec4) Load 9(v)
130: 6(float) CompositeExtract 129 0
131: 7(fvec4) CompositeConstruct 130 130 130 130
132: 7(fvec4) FMod 128 131
133: 7(fvec4) Load 9(v)
134: 7(fvec4) FAdd 133 132
Store 9(v) 134
135: 7(fvec4) Load 9(v)
136: 7(fvec4) Load 11(uv4)
137: 7(fvec4) ExtInst 1(GLSL.std.450) 37(FMin) 135 136
138: 7(fvec4) Load 9(v)
139: 7(fvec4) FAdd 138 137
Store 9(v) 139
140: 7(fvec4) Load 9(v)
141: 7(fvec4) Load 11(uv4)
142: 7(fvec4) ExtInst 1(GLSL.std.450) 40(FMax) 140 141
143: 7(fvec4) Load 9(v)
144: 7(fvec4) FAdd 143 142
Store 9(v) 144
145: 7(fvec4) Load 9(v)
146: 7(fvec4) Load 11(uv4)
147: 7(fvec4) Load 11(uv4)
148: 7(fvec4) ExtInst 1(GLSL.std.450) 43(FClamp) 145 146 147
149: 7(fvec4) Load 9(v)
150: 7(fvec4) FAdd 149 148
Store 9(v) 150
151: 7(fvec4) Load 9(v)
152: 7(fvec4) Load 9(v)
153: 7(fvec4) Load 9(v)
154: 7(fvec4) ExtInst 1(GLSL.std.450) 46(Mix) 151 152 153
155: 7(fvec4) Load 9(v)
156: 7(fvec4) FAdd 155 154
Store 9(v) 156
157: 7(fvec4) Load 9(v)
158: 7(fvec4) Load 9(v)
159: 7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 157 158
160: 7(fvec4) Load 9(v)
161: 7(fvec4) FAdd 160 159
Store 9(v) 161
162: 7(fvec4) Load 9(v)
163: 7(fvec4) Load 9(v)
164: 7(fvec4) Load 9(v)
165: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 162 163 164
166: 7(fvec4) Load 9(v)
167: 7(fvec4) FAdd 166 165
Store 9(v) 167
170: 6(float) Load 169(uf)
171: 7(fvec4) Load 9(v)
172: 7(fvec4) ExtInst 1(GLSL.std.450) 47(Step) 170 171
173: 7(fvec4) Load 9(v)
174: 7(fvec4) FAdd 173 172
Store 9(v) 174
175: 6(float) Load 169(uf)
176: 6(float) Load 169(uf)
177: 7(fvec4) Load 9(v)
178: 7(fvec4) ExtInst 1(GLSL.std.450) 48(Smoothstep) 175 176 177
179: 7(fvec4) Load 9(v)
180: 7(fvec4) FAdd 179 178
Store 9(v) 180
181: 7(fvec4) Load 9(v)
182: 7(fvec4) ExtInst 1(GLSL.std.450) 68(Normalize) 181
183: 7(fvec4) Load 9(v)
184: 7(fvec4) FAdd 183 182
Store 9(v) 184
185: 7(fvec4) Load 9(v)
186: 7(fvec4) Load 9(v)
187: 7(fvec4) Load 9(v)
188: 7(fvec4) ExtInst 1(GLSL.std.450) 69(Faceforward) 185 186 187
189: 7(fvec4) Load 9(v)
190: 7(fvec4) FAdd 189 188
Store 9(v) 190
191: 7(fvec4) Load 9(v)
192: 7(fvec4) Load 9(v)
193: 7(fvec4) ExtInst 1(GLSL.std.450) 70(Reflect) 191 192
194: 7(fvec4) Load 9(v)
195: 7(fvec4) FAdd 194 193
Store 9(v) 195
196: 7(fvec4) Load 9(v)
197: 7(fvec4) Load 9(v)
198: 6(float) Load 169(uf)
199: 7(fvec4) ExtInst 1(GLSL.std.450) 71(Refract) 196 197 198
200: 7(fvec4) Load 9(v)
201: 7(fvec4) FAdd 200 199
Store 9(v) 201
202: 7(fvec4) Load 9(v)
203: 7(fvec4) DPdx 202
204: 7(fvec4) Load 9(v)
205: 7(fvec4) FAdd 204 203
Store 9(v) 205
206: 7(fvec4) Load 9(v)
207: 7(fvec4) DPdy 206
208: 7(fvec4) Load 9(v)
209: 7(fvec4) FAdd 208 207
Store 9(v) 209
210: 7(fvec4) Load 9(v)
211: 7(fvec4) Fwidth 210
212: 7(fvec4) Load 9(v)
213: 7(fvec4) FAdd 212 211
Store 9(v) 213
217: 7(fvec4) Load 9(v)
218: 7(fvec4) Load 11(uv4)
220: 219(bvec4) FOrdLessThan 217 218
221: 214(bool) Any 220
Store 216(b) 221
222: 214(bool) Load 216(b)
223: 7(fvec4) Load 9(v)
224: 7(fvec4) Load 11(uv4)
225: 219(bvec4) FOrdLessThanEqual 223 224
226: 214(bool) Any 225
227: 214(bool) LogicalAnd 222 226
Store 216(b) 227
228: 214(bool) Load 216(b)
229: 7(fvec4) Load 9(v)
230: 7(fvec4) Load 11(uv4)
231: 219(bvec4) FOrdGreaterThan 229 230
232: 214(bool) Any 231
233: 214(bool) LogicalAnd 228 232
Store 216(b) 233
234: 214(bool) Load 216(b)
235: 7(fvec4) Load 9(v)
236: 7(fvec4) Load 11(uv4)
237: 219(bvec4) FOrdGreaterThanEqual 235 236
238: 214(bool) Any 237
239: 214(bool) LogicalAnd 234 238
Store 216(b) 239
240: 214(bool) Load 216(b)
243: 219(bvec4) Load 242(ub41)
245: 219(bvec4) Load 244(ub42)
246: 219(bvec4) IEqual 243 245
247: 214(bool) Any 246
248: 214(bool) LogicalAnd 240 247
Store 216(b) 248
249: 214(bool) Load 216(b)
250: 219(bvec4) Load 242(ub41)
251: 219(bvec4) Load 244(ub42)
252: 219(bvec4) INotEqual 250 251
253: 214(bool) Any 252
254: 214(bool) LogicalAnd 249 253
Store 216(b) 254
255: 214(bool) Load 216(b)
256: 219(bvec4) Load 242(ub41)
257: 214(bool) Any 256
258: 214(bool) LogicalAnd 255 257
Store 216(b) 258
259: 214(bool) Load 216(b)
260: 219(bvec4) Load 242(ub41)
261: 214(bool) All 260
262: 214(bool) LogicalAnd 259 261
Store 216(b) 262
263: 214(bool) Load 216(b)
264: 219(bvec4) Load 242(ub41)
265: 219(bvec4) LogicalNot 264
266: 214(bool) Any 265
267: 214(bool) LogicalAnd 263 266
Store 216(b) 267
268: 18(int) Load 20(i)
269: 18(int) Load 22(ui)
270: 18(int) IAdd 268 269
271: 18(int) Load 20(i)
272: 18(int) IMul 270 271
273: 18(int) Load 22(ui)
274: 18(int) ISub 272 273
275: 18(int) Load 20(i)
276: 18(int) SDiv 274 275
Store 20(i) 276
277: 18(int) Load 20(i)
278: 18(int) Load 22(ui)
279: 18(int) SMod 277 278
Store 20(i) 279
280: 18(int) Load 20(i)
281: 18(int) Load 22(ui)
282: 214(bool) IEqual 280 281
283: 18(int) Load 20(i)
284: 18(int) Load 22(ui)
285: 214(bool) INotEqual 283 284
286: 18(int) Load 20(i)
287: 18(int) Load 22(ui)
288: 214(bool) IEqual 286 287
289: 214(bool) LogicalAnd 285 288
290: 18(int) Load 20(i)
292: 214(bool) INotEqual 290 291
293: 214(bool) LogicalNotEqual 289 292
294: 214(bool) LogicalOr 282 293
SelectionMerge 296 None
BranchConditional 294 295 296
295: Label
297: 18(int) Load 20(i)
299: 18(int) IAdd 297 298
Store 20(i) 299
Branch 296
296: Label
302: 6(float) Load 169(uf)
303: 6(float) Load 169(uf)
304: 6(float) FAdd 302 303
305: 6(float) Load 169(uf)
306: 6(float) FMul 304 305
307: 6(float) Load 169(uf)
308: 6(float) FSub 306 307
309: 6(float) Load 169(uf)
310: 6(float) FDiv 308 309
Store 301(f) 310
311: 7(fvec4) Load 9(v)
312: 6(float) ExtInst 1(GLSL.std.450) 65(Length) 311
313: 6(float) Load 301(f)
314: 6(float) FAdd 313 312
Store 301(f) 314
315: 7(fvec4) Load 9(v)
316: 7(fvec4) Load 9(v)
317: 6(float) ExtInst 1(GLSL.std.450) 66(Distance) 315 316
318: 6(float) Load 301(f)
319: 6(float) FAdd 318 317
Store 301(f) 319
320: 7(fvec4) Load 9(v)
321: 7(fvec4) Load 9(v)
322: 6(float) Dot 320 321
323: 6(float) Load 301(f)
324: 6(float) FAdd 323 322
Store 301(f) 324
325: 6(float) Load 301(f)
326: 6(float) Load 169(uf)
327: 6(float) FMul 325 326
328: 6(float) Load 301(f)
329: 6(float) FAdd 328 327
Store 301(f) 329
331: 7(fvec4) Load 9(v)
332: 330(fvec3) VectorShuffle 331 331 0 1 2
333: 7(fvec4) Load 9(v)
334: 330(fvec3) VectorShuffle 333 333 0 1 2
335: 330(fvec3) ExtInst 1(GLSL.std.450) 67(Cross) 332 334
336: 6(float) CompositeExtract 335 0
337: 6(float) Load 301(f)
338: 6(float) FAdd 337 336
Store 301(f) 338
339: 6(float) Load 301(f)
340: 6(float) Load 169(uf)
341: 214(bool) FOrdEqual 339 340
342: 6(float) Load 301(f)
343: 6(float) Load 169(uf)
344: 214(bool) FOrdNotEqual 342 343
345: 6(float) Load 301(f)
347: 214(bool) FOrdNotEqual 345 346
348: 214(bool) LogicalAnd 344 347
349: 214(bool) LogicalOr 341 348
SelectionMerge 351 None
BranchConditional 349 350 351
350: Label
352: 6(float) Load 301(f)
354: 6(float) FAdd 352 353
Store 301(f) 354
Branch 351
351: Label
355: 18(int) Load 22(ui)
356: 18(int) Load 20(i)
357: 18(int) BitwiseAnd 356 355
Store 20(i) 357
359: 18(int) Load 20(i)
360: 18(int) BitwiseOr 359 358
Store 20(i) 360
361: 18(int) Load 22(ui)
362: 18(int) Load 20(i)
363: 18(int) BitwiseXor 362 361
Store 20(i) 363
365: 18(int) Load 20(i)
366: 18(int) SMod 365 364
Store 20(i) 366
367: 18(int) Load 20(i)
368: 18(int) ShiftRightArithmetic 367 291
Store 20(i) 368
369: 18(int) Load 22(ui)
370: 18(int) Load 20(i)
371: 18(int) ShiftLeftLogical 370 369
Store 20(i) 371
372: 18(int) Load 20(i)
373: 18(int) Not 372
Store 20(i) 373
374: 214(bool) Load 216(b)
375: 214(bool) LogicalNot 374
Store 216(b) 375
379: 214(bool) Load 216(b)
SelectionMerge 381 None
BranchConditional 379 380 390
380: Label
382: 18(int) Load 20(i)
383: 6(float) ConvertSToF 382
384: 7(fvec4) CompositeConstruct 383 383 383 383
385: 6(float) Load 301(f)
386: 7(fvec4) CompositeConstruct 385 385 385 385
387: 7(fvec4) FAdd 384 386
388: 7(fvec4) Load 9(v)
389: 7(fvec4) FAdd 387 388
Store 378 389
Branch 381
390: Label
391: 7(fvec4) Load 9(v)
Store 378 391
Branch 381
381: Label
392: 7(fvec4) Load 378
Store 377(gl_FragColor) 392
Return
FunctionEnd