glslang/Test/baseResults/spv.conversion.frag.out
John Kessenich 4bee531fc1 HLSL: Fix #1249: Always execute both sides of ternary "?:".
This is semantically required by HLSL, and frequently results in using
OpSelect instead of control flow.
2018-02-20 21:32:33 -07:00

575 lines
26 KiB
Plaintext
Executable File

spv.conversion.frag
// Module Version 10000
// Generated by (magic number): 80004
// Id's are bound by 455
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 39 53 157 322 446 448 450 452 454
ExecutionMode 4 OriginUpperLeft
Source GLSL 140
Name 4 "main"
Name 8 "b"
Name 11 "u_i"
Name 18 "u_f"
Name 25 "b2"
Name 33 "b3"
Name 39 "i_i"
Name 45 "b4"
Name 53 "i_f"
Name 58 "i"
Name 68 "i2"
Name 71 "u_f2"
Name 81 "i3"
Name 84 "u_f3"
Name 94 "i4"
Name 97 "u_f4"
Name 106 "f"
Name 110 "f2"
Name 114 "f3"
Name 118 "f4"
Name 157 "i_i4"
Name 322 "gl_FragColor"
Name 417 "cv2"
Name 418 "cv5"
Name 428 "u_b"
Name 430 "u_b2"
Name 432 "u_b3"
Name 434 "u_b4"
Name 436 "u_i2"
Name 438 "u_i3"
Name 440 "u_i4"
Name 441 "i_b"
Name 442 "i_b2"
Name 443 "i_b3"
Name 444 "i_b4"
Name 446 "i_i2"
Name 448 "i_i3"
Name 450 "i_f2"
Name 452 "i_f3"
Name 454 "i_f4"
Decorate 39(i_i) Flat
Decorate 157(i_i4) Flat
Decorate 322(gl_FragColor) Location 0
Decorate 446(i_i2) Flat
Decorate 448(i_i3) Flat
2: TypeVoid
3: TypeFunction 2
6: TypeBool
7: TypePointer Function 6(bool)
9: TypeInt 32 1
10: TypePointer Private 9(int)
11(u_i): 10(ptr) Variable Private
13: TypeInt 32 0
14: 13(int) Constant 0
16: TypeFloat 32
17: TypePointer Private 16(float)
18(u_f): 17(ptr) Variable Private
20: 16(float) Constant 0
23: TypeVector 6(bool) 2
24: TypePointer Function 23(bvec2)
31: TypeVector 6(bool) 3
32: TypePointer Function 31(bvec3)
38: TypePointer Input 9(int)
39(i_i): 38(ptr) Variable Input
43: TypeVector 6(bool) 4
44: TypePointer Function 43(bvec4)
52: TypePointer Input 16(float)
53(i_f): 52(ptr) Variable Input
57: TypePointer Function 9(int)
62: 9(int) Constant 0
63: 9(int) Constant 1
66: TypeVector 9(int) 2
67: TypePointer Function 66(ivec2)
69: TypeVector 16(float) 2
70: TypePointer Private 69(fvec2)
71(u_f2): 70(ptr) Variable Private
75: 66(ivec2) ConstantComposite 62 62
76: 66(ivec2) ConstantComposite 63 63
79: TypeVector 9(int) 3
80: TypePointer Function 79(ivec3)
82: TypeVector 16(float) 3
83: TypePointer Private 82(fvec3)
84(u_f3): 83(ptr) Variable Private
88: 79(ivec3) ConstantComposite 62 62 62
89: 79(ivec3) ConstantComposite 63 63 63
92: TypeVector 9(int) 4
93: TypePointer Function 92(ivec4)
95: TypeVector 16(float) 4
96: TypePointer Private 95(fvec4)
97(u_f4): 96(ptr) Variable Private
101: 92(ivec4) ConstantComposite 62 62 62 62
102: 92(ivec4) ConstantComposite 63 63 63 63
105: TypePointer Function 16(float)
109: TypePointer Function 69(fvec2)
113: TypePointer Function 82(fvec3)
117: TypePointer Function 95(fvec4)
124: 16(float) Constant 1065353216
132: 69(fvec2) ConstantComposite 20 20
133: 69(fvec2) ConstantComposite 124 124
141: 82(fvec3) ConstantComposite 20 20 20
142: 82(fvec3) ConstantComposite 124 124 124
150: 95(fvec4) ConstantComposite 20 20 20 20
151: 95(fvec4) ConstantComposite 124 124 124 124
156: TypePointer Input 92(ivec4)
157(i_i4): 156(ptr) Variable Input
159: TypeVector 13(int) 4
160: 159(ivec4) ConstantComposite 14 14 14 14
315: 13(int) Constant 1
321: TypePointer Output 95(fvec4)
322(gl_FragColor): 321(ptr) Variable Output
336: 13(int) Constant 2
349: 13(int) Constant 3
427: TypePointer Private 6(bool)
428(u_b): 427(ptr) Variable Private
429: TypePointer Private 23(bvec2)
430(u_b2): 429(ptr) Variable Private
431: TypePointer Private 31(bvec3)
432(u_b3): 431(ptr) Variable Private
433: TypePointer Private 43(bvec4)
434(u_b4): 433(ptr) Variable Private
435: TypePointer Private 66(ivec2)
436(u_i2): 435(ptr) Variable Private
437: TypePointer Private 79(ivec3)
438(u_i3): 437(ptr) Variable Private
439: TypePointer Private 92(ivec4)
440(u_i4): 439(ptr) Variable Private
441(i_b): 427(ptr) Variable Private
442(i_b2): 429(ptr) Variable Private
443(i_b3): 431(ptr) Variable Private
444(i_b4): 433(ptr) Variable Private
445: TypePointer Input 66(ivec2)
446(i_i2): 445(ptr) Variable Input
447: TypePointer Input 79(ivec3)
448(i_i3): 447(ptr) Variable Input
449: TypePointer Input 69(fvec2)
450(i_f2): 449(ptr) Variable Input
451: TypePointer Input 82(fvec3)
452(i_f3): 451(ptr) Variable Input
453: TypePointer Input 95(fvec4)
454(i_f4): 453(ptr) Variable Input
4(main): 2 Function None 3
5: Label
8(b): 7(ptr) Variable Function
25(b2): 24(ptr) Variable Function
33(b3): 32(ptr) Variable Function
45(b4): 44(ptr) Variable Function
58(i): 57(ptr) Variable Function
68(i2): 67(ptr) Variable Function
81(i3): 80(ptr) Variable Function
94(i4): 93(ptr) Variable Function
106(f): 105(ptr) Variable Function
110(f2): 109(ptr) Variable Function
114(f3): 113(ptr) Variable Function
118(f4): 117(ptr) Variable Function
298: 105(ptr) Variable Function
309: 105(ptr) Variable Function
353: 117(ptr) Variable Function
417(cv2): 93(ptr) Variable Function
418(cv5): 44(ptr) Variable Function
12: 9(int) Load 11(u_i)
15: 6(bool) INotEqual 12 14
19: 16(float) Load 18(u_f)
21: 6(bool) FOrdNotEqual 19 20
22: 6(bool) LogicalNotEqual 15 21
Store 8(b) 22
26: 9(int) Load 11(u_i)
27: 6(bool) INotEqual 26 14
28: 16(float) Load 18(u_f)
29: 6(bool) FOrdNotEqual 28 20
30: 23(bvec2) CompositeConstruct 27 29
Store 25(b2) 30
34: 9(int) Load 11(u_i)
35: 6(bool) INotEqual 34 14
36: 16(float) Load 18(u_f)
37: 6(bool) FOrdNotEqual 36 20
40: 9(int) Load 39(i_i)
41: 6(bool) INotEqual 40 14
42: 31(bvec3) CompositeConstruct 35 37 41
Store 33(b3) 42
46: 9(int) Load 11(u_i)
47: 6(bool) INotEqual 46 14
48: 16(float) Load 18(u_f)
49: 6(bool) FOrdNotEqual 48 20
50: 9(int) Load 39(i_i)
51: 6(bool) INotEqual 50 14
54: 16(float) Load 53(i_f)
55: 6(bool) FOrdNotEqual 54 20
56: 43(bvec4) CompositeConstruct 47 49 51 55
Store 45(b4) 56
59: 16(float) Load 18(u_f)
60: 9(int) ConvertFToS 59
61: 6(bool) Load 8(b)
64: 9(int) Select 61 63 62
65: 9(int) IAdd 60 64
Store 58(i) 65
72: 69(fvec2) Load 71(u_f2)
73: 66(ivec2) ConvertFToS 72
74: 23(bvec2) Load 25(b2)
77: 66(ivec2) Select 74 76 75
78: 66(ivec2) IAdd 73 77
Store 68(i2) 78
85: 82(fvec3) Load 84(u_f3)
86: 79(ivec3) ConvertFToS 85
87: 31(bvec3) Load 33(b3)
90: 79(ivec3) Select 87 89 88
91: 79(ivec3) IAdd 86 90
Store 81(i3) 91
98: 95(fvec4) Load 97(u_f4)
99: 92(ivec4) ConvertFToS 98
100: 43(bvec4) Load 45(b4)
103: 92(ivec4) Select 100 102 101
104: 92(ivec4) IAdd 99 103
Store 94(i4) 104
107: 9(int) Load 58(i)
108: 16(float) ConvertSToF 107
Store 106(f) 108
111: 66(ivec2) Load 68(i2)
112: 69(fvec2) ConvertSToF 111
Store 110(f2) 112
115: 79(ivec3) Load 81(i3)
116: 82(fvec3) ConvertSToF 115
Store 114(f3) 116
119: 92(ivec4) Load 94(i4)
120: 95(fvec4) ConvertSToF 119
Store 118(f4) 120
121: 9(int) Load 58(i)
122: 16(float) ConvertSToF 121
123: 6(bool) Load 8(b)
125: 16(float) Select 123 124 20
126: 16(float) FAdd 122 125
127: 16(float) Load 106(f)
128: 16(float) FAdd 127 126
Store 106(f) 128
129: 66(ivec2) Load 68(i2)
130: 69(fvec2) ConvertSToF 129
131: 23(bvec2) Load 25(b2)
134: 69(fvec2) Select 131 133 132
135: 69(fvec2) FAdd 130 134
136: 69(fvec2) Load 110(f2)
137: 69(fvec2) FSub 136 135
Store 110(f2) 137
138: 79(ivec3) Load 81(i3)
139: 82(fvec3) ConvertSToF 138
140: 31(bvec3) Load 33(b3)
143: 82(fvec3) Select 140 142 141
144: 82(fvec3) FAdd 139 143
145: 82(fvec3) Load 114(f3)
146: 82(fvec3) FDiv 145 144
Store 114(f3) 146
147: 92(ivec4) Load 94(i4)
148: 95(fvec4) ConvertSToF 147
149: 43(bvec4) Load 45(b4)
152: 95(fvec4) Select 149 151 150
153: 95(fvec4) FAdd 148 152
154: 95(fvec4) Load 118(f4)
155: 95(fvec4) FAdd 154 153
Store 118(f4) 155
158: 92(ivec4) Load 157(i_i4)
161: 43(bvec4) INotEqual 158 160
162: 95(fvec4) Select 161 151 150
163: 95(fvec4) Load 118(f4)
164: 95(fvec4) FAdd 163 162
Store 118(f4) 164
165: 95(fvec4) Load 97(u_f4)
166: 43(bvec4) FOrdNotEqual 165 150
167: 95(fvec4) Select 166 151 150
168: 95(fvec4) Load 118(f4)
169: 95(fvec4) FAdd 168 167
Store 118(f4) 169
170: 16(float) Load 106(f)
171: 9(int) Load 58(i)
172: 16(float) ConvertSToF 171
173: 16(float) FSub 170 172
174: 16(float) Load 106(f)
175: 16(float) FAdd 174 173
Store 106(f) 175
176: 16(float) Load 106(f)
177: 9(int) Load 58(i)
178: 16(float) ConvertSToF 177
179: 69(fvec2) CompositeConstruct 176 178
180: 66(ivec2) Load 68(i2)
181: 69(fvec2) ConvertSToF 180
182: 69(fvec2) FAdd 179 181
183: 69(fvec2) Load 110(f2)
184: 69(fvec2) FAdd 183 182
Store 110(f2) 184
185: 79(ivec3) Load 81(i3)
186: 82(fvec3) ConvertSToF 185
187: 16(float) Load 106(f)
188: 9(int) Load 58(i)
189: 16(float) ConvertSToF 188
190: 16(float) Load 106(f)
191: 82(fvec3) CompositeConstruct 187 189 190
192: 82(fvec3) FAdd 186 191
193: 82(fvec3) Load 114(f3)
194: 82(fvec3) FAdd 193 192
Store 114(f3) 194
195: 6(bool) Load 8(b)
196: 16(float) Select 195 124 20
197: 9(int) Load 58(i)
198: 16(float) ConvertSToF 197
199: 16(float) Load 106(f)
200: 9(int) Load 58(i)
201: 16(float) ConvertSToF 200
202: 95(fvec4) CompositeConstruct 196 198 199 201
203: 92(ivec4) Load 94(i4)
204: 95(fvec4) ConvertSToF 203
205: 95(fvec4) FAdd 202 204
206: 95(fvec4) Load 118(f4)
207: 95(fvec4) FAdd 206 205
Store 118(f4) 207
208: 16(float) Load 106(f)
209: 9(int) Load 58(i)
210: 16(float) ConvertSToF 209
211: 69(fvec2) CompositeConstruct 208 210
212: 9(int) Load 58(i)
213: 16(float) ConvertSToF 212
214: 69(fvec2) VectorTimesScalar 211 213
215: 69(fvec2) Load 110(f2)
216: 69(fvec2) FAdd 215 214
Store 110(f2) 216
217: 16(float) Load 106(f)
218: 9(int) Load 58(i)
219: 16(float) ConvertSToF 218
220: 16(float) Load 106(f)
221: 82(fvec3) CompositeConstruct 217 219 220
222: 9(int) Load 58(i)
223: 16(float) ConvertSToF 222
224: 82(fvec3) CompositeConstruct 223 223 223
225: 82(fvec3) FAdd 221 224
226: 82(fvec3) Load 114(f3)
227: 82(fvec3) FAdd 226 225
Store 114(f3) 227
228: 9(int) Load 58(i)
229: 16(float) ConvertSToF 228
230: 6(bool) Load 8(b)
231: 16(float) Select 230 124 20
232: 9(int) Load 58(i)
233: 16(float) ConvertSToF 232
234: 16(float) Load 106(f)
235: 9(int) Load 58(i)
236: 16(float) ConvertSToF 235
237: 95(fvec4) CompositeConstruct 231 233 234 236
238: 95(fvec4) CompositeConstruct 229 229 229 229
239: 95(fvec4) FSub 238 237
240: 95(fvec4) Load 118(f4)
241: 95(fvec4) FAdd 240 239
Store 118(f4) 241
242: 16(float) Load 106(f)
243: 9(int) ConvertFToS 242
244: 9(int) Load 58(i)
245: 66(ivec2) CompositeConstruct 243 244
246: 66(ivec2) Load 68(i2)
247: 66(ivec2) IAdd 246 245
Store 68(i2) 247
248: 16(float) Load 106(f)
249: 9(int) ConvertFToS 248
250: 9(int) Load 58(i)
251: 16(float) Load 106(f)
252: 9(int) ConvertFToS 251
253: 79(ivec3) CompositeConstruct 249 250 252
254: 79(ivec3) Load 81(i3)
255: 79(ivec3) IAdd 254 253
Store 81(i3) 255
256: 6(bool) Load 8(b)
257: 9(int) Select 256 63 62
258: 9(int) Load 58(i)
259: 16(float) Load 106(f)
260: 9(int) ConvertFToS 259
261: 9(int) Load 58(i)
262: 92(ivec4) CompositeConstruct 257 258 260 261
263: 92(ivec4) Load 94(i4)
264: 92(ivec4) IAdd 263 262
Store 94(i4) 264
265: 16(float) Load 106(f)
266: 9(int) Load 58(i)
267: 16(float) ConvertSToF 266
268: 6(bool) FOrdLessThan 265 267
269: 6(bool) LogicalNot 268
SelectionMerge 271 None
BranchConditional 269 270 271
270: Label
272: 9(int) Load 58(i)
273: 16(float) ConvertSToF 272
274: 16(float) Load 106(f)
275: 6(bool) FOrdLessThan 273 274
Branch 271
271: Label
276: 6(bool) Phi 268 5 275 270
277: 6(bool) LogicalNot 276
SelectionMerge 279 None
BranchConditional 277 278 279
278: Label
280: 69(fvec2) Load 110(f2)
281: 66(ivec2) Load 68(i2)
282: 69(fvec2) ConvertSToF 281
283: 23(bvec2) FOrdEqual 280 282
284: 6(bool) All 283
Branch 279
279: Label
285: 6(bool) Phi 276 271 284 278
286: 6(bool) LogicalNot 285
SelectionMerge 288 None
BranchConditional 286 287 288
287: Label
289: 79(ivec3) Load 81(i3)
290: 82(fvec3) ConvertSToF 289
291: 82(fvec3) Load 114(f3)
292: 31(bvec3) FOrdNotEqual 290 291
293: 6(bool) Any 292
Branch 288
288: Label
294: 6(bool) Phi 285 279 293 287
SelectionMerge 296 None
BranchConditional 294 295 296
295: Label
297: 6(bool) Load 8(b)
SelectionMerge 300 None
BranchConditional 297 299 303
299: Label
301: 9(int) Load 58(i)
302: 16(float) ConvertSToF 301
Store 298 302
Branch 300
303: Label
304: 105(ptr) AccessChain 110(f2) 14
305: 16(float) Load 304
Store 298 305
Branch 300
300: Label
306: 16(float) Load 298
307: 7(ptr) AccessChain 25(b2) 14
308: 6(bool) Load 307
SelectionMerge 311 None
BranchConditional 308 310 314
310: Label
312: 105(ptr) AccessChain 114(f3) 14
313: 16(float) Load 312
Store 309 313
Branch 311
314: Label
316: 57(ptr) AccessChain 68(i2) 315
317: 9(int) Load 316
318: 16(float) ConvertSToF 317
Store 309 318
Branch 311
311: Label
319: 16(float) Load 309
320: 16(float) FAdd 306 319
Store 106(f) 320
Branch 296
296: Label
323: 6(bool) Load 8(b)
324: 7(ptr) AccessChain 25(b2) 14
325: 6(bool) Load 324
326: 6(bool) LogicalOr 323 325
327: 7(ptr) AccessChain 25(b2) 315
328: 6(bool) Load 327
329: 6(bool) LogicalOr 326 328
330: 7(ptr) AccessChain 33(b3) 14
331: 6(bool) Load 330
332: 6(bool) LogicalOr 329 331
333: 7(ptr) AccessChain 33(b3) 315
334: 6(bool) Load 333
335: 6(bool) LogicalOr 332 334
337: 7(ptr) AccessChain 33(b3) 336
338: 6(bool) Load 337
339: 6(bool) LogicalOr 335 338
340: 7(ptr) AccessChain 45(b4) 14
341: 6(bool) Load 340
342: 6(bool) LogicalOr 339 341
343: 7(ptr) AccessChain 45(b4) 315
344: 6(bool) Load 343
345: 6(bool) LogicalOr 342 344
346: 7(ptr) AccessChain 45(b4) 336
347: 6(bool) Load 346
348: 6(bool) LogicalOr 345 347
350: 7(ptr) AccessChain 45(b4) 349
351: 6(bool) Load 350
352: 6(bool) LogicalOr 348 351
SelectionMerge 355 None
BranchConditional 352 354 415
354: Label
356: 9(int) Load 58(i)
357: 57(ptr) AccessChain 68(i2) 14
358: 9(int) Load 357
359: 9(int) IAdd 356 358
360: 57(ptr) AccessChain 68(i2) 315
361: 9(int) Load 360
362: 9(int) IAdd 359 361
363: 57(ptr) AccessChain 81(i3) 14
364: 9(int) Load 363
365: 9(int) IAdd 362 364
366: 57(ptr) AccessChain 81(i3) 315
367: 9(int) Load 366
368: 9(int) IAdd 365 367
369: 57(ptr) AccessChain 81(i3) 336
370: 9(int) Load 369
371: 9(int) IAdd 368 370
372: 57(ptr) AccessChain 94(i4) 14
373: 9(int) Load 372
374: 9(int) IAdd 371 373
375: 57(ptr) AccessChain 94(i4) 315
376: 9(int) Load 375
377: 9(int) IAdd 374 376
378: 57(ptr) AccessChain 94(i4) 336
379: 9(int) Load 378
380: 9(int) IAdd 377 379
381: 57(ptr) AccessChain 94(i4) 349
382: 9(int) Load 381
383: 9(int) IAdd 380 382
384: 16(float) ConvertSToF 383
385: 16(float) Load 106(f)
386: 16(float) FAdd 384 385
387: 105(ptr) AccessChain 110(f2) 14
388: 16(float) Load 387
389: 16(float) FAdd 386 388
390: 105(ptr) AccessChain 110(f2) 315
391: 16(float) Load 390
392: 16(float) FAdd 389 391
393: 105(ptr) AccessChain 114(f3) 14
394: 16(float) Load 393
395: 16(float) FAdd 392 394
396: 105(ptr) AccessChain 114(f3) 315
397: 16(float) Load 396
398: 16(float) FAdd 395 397
399: 105(ptr) AccessChain 114(f3) 336
400: 16(float) Load 399
401: 16(float) FAdd 398 400
402: 105(ptr) AccessChain 118(f4) 14
403: 16(float) Load 402
404: 16(float) FAdd 401 403
405: 105(ptr) AccessChain 118(f4) 315
406: 16(float) Load 405
407: 16(float) FAdd 404 406
408: 105(ptr) AccessChain 118(f4) 336
409: 16(float) Load 408
410: 16(float) FAdd 407 409
411: 105(ptr) AccessChain 118(f4) 349
412: 16(float) Load 411
413: 16(float) FAdd 410 412
414: 95(fvec4) CompositeConstruct 413 413 413 413
Store 353 414
Branch 355
415: Label
Store 353 151
Branch 355
355: Label
416: 95(fvec4) Load 353
Store 322(gl_FragColor) 416
Store 417(cv2) 102
419: 92(ivec4) Load 417(cv2)
420: 43(bvec4) INotEqual 419 160
Store 418(cv5) 420
421: 43(bvec4) Load 418(cv5)
422: 95(fvec4) Select 421 151 150
423: 16(float) CompositeExtract 422 0
424: 95(fvec4) Load 322(gl_FragColor)
425: 95(fvec4) CompositeConstruct 423 423 423 423
426: 95(fvec4) FAdd 424 425
Store 322(gl_FragColor) 426
Return
FunctionEnd