1hlsl.type.identifier.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:6  Function Definition: fn(f1; ( temp float)
60:6    Function Parameters:
70:6      'float' ( in float)
80:?     Sequence
90:6      Branch: Return with expression
100:6        'float' ( in float)
110:9  Function Definition: @main( ( temp 4-component vector of float)
120:9    Function Parameters:
130:?     Sequence
140:10      Sequence
150:10        move second child to first child ( temp float)
160:10          'float' ( temp float)
170:10          Constant:
180:10            7.000000
190:11      Sequence
200:11        move second child to first child ( temp 2-element array of bool)
210:11          'bool' ( temp 2-element array of bool)
220:11          Construct bool ( temp 2-element array of bool)
230:11            Convert float to bool ( temp bool)
240:11              'float' ( temp float)
250:11            Convert float to bool ( temp bool)
260:11              'float' ( temp float)
270:12      Sequence
280:12        move second child to first child ( temp int)
290:12          'int' ( temp int)
300:12          Convert bool to int ( temp int)
310:12            direct index ( temp bool)
320:12              'bool' ( temp 2-element array of bool)
330:12              Constant:
340:12                1 (const int)
350:13      Sequence
360:13        move second child to first child ( temp uint)
370:13          'uint' ( temp uint)
380:13          Convert float to uint ( temp uint)
390:13            add ( temp float)
400:13              'float' ( temp float)
410:13              Convert int to float ( temp float)
420:13                'int' ( temp int)
430:14      Sequence
440:14        move second child to first child ( temp mediump float)
450:14          'min16float' ( temp mediump float)
460:14          Convert uint to float ( temp mediump float)
470:14            'uint' ( temp mediump uint)
480:15      Sequence
490:15        move second child to first child ( temp mediump float)
500:15          'min10float' ( temp mediump float)
510:15          'min16float' ( temp mediump float)
520:16      Sequence
530:16        move second child to first child ( temp float)
540:16          'half' ( temp float)
550:16          Constant:
560:16            0.500000
570:?       Sequence
580:20        move second child to first child ( temp float)
590:20          float: direct index for structure ( temp float)
600:20            'float' ( temp structure{ temp float float})
610:20            Constant:
620:20              0 (const int)
630:20          Constant:
640:20            42.000000
650:23      move second child to first child ( temp bool)
660:23        direct index ( temp bool)
670:23          'bool' ( temp 2-element array of bool)
680:23          Constant:
690:23            0 (const int)
700:23        direct index ( temp bool)
710:23          'bool' ( temp 2-element array of bool)
720:23          Constant:
730:23            1 (const int)
740:25      move second child to first child ( temp mediump float)
750:25        'float' ( temp mediump float)
760:25        add ( temp mediump float)
770:25          add ( temp mediump float)
780:25            add ( temp mediump float)
790:25              add ( temp mediump float)
800:25                add ( temp mediump float)
810:25                  add ( temp mediump float)
820:25                    'float' ( temp mediump float)
830:25                    Convert int to float ( temp mediump float)
840:25                      'int' ( temp mediump int)
850:25                  Convert uint to float ( temp mediump float)
860:25                    'uint' ( temp mediump uint)
870:25                'min16float' ( temp mediump float)
880:25              'min10float' ( temp mediump float)
890:25            Test condition and select ( temp mediump float): no shortcircuit
900:25              Condition
910:25              direct index ( temp bool)
920:25                'bool' ( temp 2-element array of bool)
930:25                Constant:
940:25                  0 (const int)
950:25              true case
960:25              Convert int to float ( temp mediump float)
970:25                'int' ( temp mediump int)
980:25              false case
990:25              'float' ( temp mediump float)
1000:25          Function Call: fn(f1; ( temp mediump float)
1010:25            'float' ( temp mediump float)
1020:28      move second child to first child ( temp float)
1030:28        direct index ( temp float)
1040:28          direct index ( temp 3-component vector of float)
1050:28            'half2x3' ( temp 2X3 matrix of float)
1060:28            Constant:
1070:28              0 (const int)
1080:28          Constant:
1090:28            0 (const int)
1100:28        component-wise multiply ( temp float)
1110:28          'float' ( temp float)
1120:28          'float' ( temp float)
1130:30      Branch: Return with expression
1140:30        Construct vec4 ( temp 4-component vector of float)
1150:30          add ( temp float)
1160:30            'float' ( temp float)
1170:30            direct index ( temp float)
1180:30              direct index ( temp 3-component vector of float)
1190:30                'half2x3' ( temp 2X3 matrix of float)
1200:30                Constant:
1210:30                  0 (const int)
1220:30              Constant:
1230:30                0 (const int)
1240:9  Function Definition: main( ( temp void)
1250:9    Function Parameters:
1260:?     Sequence
1270:9      move second child to first child ( temp 4-component vector of float)
1280:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1290:9        Function Call: @main( ( temp 4-component vector of float)
1300:?   Linker Objects
1310:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
132
133
134Linked fragment stage:
135
136
137Shader version: 500
138gl_FragCoord origin is upper left
1390:? Sequence
1400:6  Function Definition: fn(f1; ( temp float)
1410:6    Function Parameters:
1420:6      'float' ( in float)
1430:?     Sequence
1440:6      Branch: Return with expression
1450:6        'float' ( in float)
1460:9  Function Definition: @main( ( temp 4-component vector of float)
1470:9    Function Parameters:
1480:?     Sequence
1490:10      Sequence
1500:10        move second child to first child ( temp float)
1510:10          'float' ( temp float)
1520:10          Constant:
1530:10            7.000000
1540:11      Sequence
1550:11        move second child to first child ( temp 2-element array of bool)
1560:11          'bool' ( temp 2-element array of bool)
1570:11          Construct bool ( temp 2-element array of bool)
1580:11            Convert float to bool ( temp bool)
1590:11              'float' ( temp float)
1600:11            Convert float to bool ( temp bool)
1610:11              'float' ( temp float)
1620:12      Sequence
1630:12        move second child to first child ( temp int)
1640:12          'int' ( temp int)
1650:12          Convert bool to int ( temp int)
1660:12            direct index ( temp bool)
1670:12              'bool' ( temp 2-element array of bool)
1680:12              Constant:
1690:12                1 (const int)
1700:13      Sequence
1710:13        move second child to first child ( temp uint)
1720:13          'uint' ( temp uint)
1730:13          Convert float to uint ( temp uint)
1740:13            add ( temp float)
1750:13              'float' ( temp float)
1760:13              Convert int to float ( temp float)
1770:13                'int' ( temp int)
1780:14      Sequence
1790:14        move second child to first child ( temp mediump float)
1800:14          'min16float' ( temp mediump float)
1810:14          Convert uint to float ( temp mediump float)
1820:14            'uint' ( temp mediump uint)
1830:15      Sequence
1840:15        move second child to first child ( temp mediump float)
1850:15          'min10float' ( temp mediump float)
1860:15          'min16float' ( temp mediump float)
1870:16      Sequence
1880:16        move second child to first child ( temp float)
1890:16          'half' ( temp float)
1900:16          Constant:
1910:16            0.500000
1920:?       Sequence
1930:20        move second child to first child ( temp float)
1940:20          float: direct index for structure ( temp float)
1950:20            'float' ( temp structure{ temp float float})
1960:20            Constant:
1970:20              0 (const int)
1980:20          Constant:
1990:20            42.000000
2000:23      move second child to first child ( temp bool)
2010:23        direct index ( temp bool)
2020:23          'bool' ( temp 2-element array of bool)
2030:23          Constant:
2040:23            0 (const int)
2050:23        direct index ( temp bool)
2060:23          'bool' ( temp 2-element array of bool)
2070:23          Constant:
2080:23            1 (const int)
2090:25      move second child to first child ( temp mediump float)
2100:25        'float' ( temp mediump float)
2110:25        add ( temp mediump float)
2120:25          add ( temp mediump float)
2130:25            add ( temp mediump float)
2140:25              add ( temp mediump float)
2150:25                add ( temp mediump float)
2160:25                  add ( temp mediump float)
2170:25                    'float' ( temp mediump float)
2180:25                    Convert int to float ( temp mediump float)
2190:25                      'int' ( temp mediump int)
2200:25                  Convert uint to float ( temp mediump float)
2210:25                    'uint' ( temp mediump uint)
2220:25                'min16float' ( temp mediump float)
2230:25              'min10float' ( temp mediump float)
2240:25            Test condition and select ( temp mediump float): no shortcircuit
2250:25              Condition
2260:25              direct index ( temp bool)
2270:25                'bool' ( temp 2-element array of bool)
2280:25                Constant:
2290:25                  0 (const int)
2300:25              true case
2310:25              Convert int to float ( temp mediump float)
2320:25                'int' ( temp mediump int)
2330:25              false case
2340:25              'float' ( temp mediump float)
2350:25          Function Call: fn(f1; ( temp mediump float)
2360:25            'float' ( temp mediump float)
2370:28      move second child to first child ( temp float)
2380:28        direct index ( temp float)
2390:28          direct index ( temp 3-component vector of float)
2400:28            'half2x3' ( temp 2X3 matrix of float)
2410:28            Constant:
2420:28              0 (const int)
2430:28          Constant:
2440:28            0 (const int)
2450:28        component-wise multiply ( temp float)
2460:28          'float' ( temp float)
2470:28          'float' ( temp float)
2480:30      Branch: Return with expression
2490:30        Construct vec4 ( temp 4-component vector of float)
2500:30          add ( temp float)
2510:30            'float' ( temp float)
2520:30            direct index ( temp float)
2530:30              direct index ( temp 3-component vector of float)
2540:30                'half2x3' ( temp 2X3 matrix of float)
2550:30                Constant:
2560:30                  0 (const int)
2570:30              Constant:
2580:30                0 (const int)
2590:9  Function Definition: main( ( temp void)
2600:9    Function Parameters:
2610:?     Sequence
2620:9      move second child to first child ( temp 4-component vector of float)
2630:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
2640:9        Function Call: @main( ( temp 4-component vector of float)
2650:?   Linker Objects
2660:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
267
268// Module Version 10000
269// Generated by (magic number): 80007
270// Id's are bound by 105
271
272                              Capability Shader
273               1:             ExtInstImport  "GLSL.std.450"
274                              MemoryModel Logical GLSL450
275                              EntryPoint Fragment 4  "main" 103
276                              ExecutionMode 4 OriginUpperLeft
277                              Source HLSL 500
278                              Name 4  "main"
279                              Name 10  "fn(f1;"
280                              Name 9  "float"
281                              Name 14  "@main("
282                              Name 19  "float"
283                              Name 26  "bool"
284                              Name 35  "int"
285                              Name 43  "uint"
286                              Name 49  "min16float"
287                              Name 52  "min10float"
288                              Name 54  "half"
289                              Name 56  "foo_t"
290                              MemberName 56(foo_t) 0  "float"
291                              Name 58  "float"
292                              Name 82  "param"
293                              Name 89  "half2x3"
294                              Name 103  "@entryPointOutput"
295                              Decorate 49(min16float) RelaxedPrecision
296                              Decorate 50 RelaxedPrecision
297                              Decorate 51 RelaxedPrecision
298                              Decorate 52(min10float) RelaxedPrecision
299                              Decorate 53 RelaxedPrecision
300                              Decorate 64 RelaxedPrecision
301                              Decorate 65 RelaxedPrecision
302                              Decorate 66 RelaxedPrecision
303                              Decorate 67 RelaxedPrecision
304                              Decorate 68 RelaxedPrecision
305                              Decorate 69 RelaxedPrecision
306                              Decorate 70 RelaxedPrecision
307                              Decorate 71 RelaxedPrecision
308                              Decorate 72 RelaxedPrecision
309                              Decorate 73 RelaxedPrecision
310                              Decorate 74 RelaxedPrecision
311                              Decorate 77 RelaxedPrecision
312                              Decorate 78 RelaxedPrecision
313                              Decorate 79 RelaxedPrecision
314                              Decorate 81 RelaxedPrecision
315                              Decorate 83 RelaxedPrecision
316                              Decorate 84 RelaxedPrecision
317                              Decorate 85 RelaxedPrecision
318                              Decorate 103(@entryPointOutput) Location 0
319               2:             TypeVoid
320               3:             TypeFunction 2
321               6:             TypeFloat 32
322               7:             TypePointer Function 6(float)
323               8:             TypeFunction 6(float) 7(ptr)
324              12:             TypeVector 6(float) 4
325              13:             TypeFunction 12(fvec4)
326              20:    6(float) Constant 1088421888
327              21:             TypeBool
328              22:             TypeInt 32 0
329              23:     22(int) Constant 2
330              24:             TypeArray 21(bool) 23
331              25:             TypePointer Function 24
332              28:    6(float) Constant 0
333              33:             TypeInt 32 1
334              34:             TypePointer Function 33(int)
335              36:     33(int) Constant 1
336              37:             TypePointer Function 21(bool)
337              40:     33(int) Constant 0
338              42:             TypePointer Function 22(int)
339              55:    6(float) Constant 1056964608
340       56(foo_t):             TypeStruct 6(float)
341              57:             TypePointer Function 56(foo_t)
342              59:    6(float) Constant 1109917696
343              86:             TypeVector 6(float) 3
344              87:             TypeMatrix 86(fvec3) 2
345              88:             TypePointer Function 87
346              93:     22(int) Constant 0
347             102:             TypePointer Output 12(fvec4)
348103(@entryPointOutput):    102(ptr) Variable Output
349         4(main):           2 Function None 3
350               5:             Label
351             104:   12(fvec4) FunctionCall 14(@main()
352                              Store 103(@entryPointOutput) 104
353                              Return
354                              FunctionEnd
355      10(fn(f1;):    6(float) Function None 8
356        9(float):      7(ptr) FunctionParameter
357              11:             Label
358              16:    6(float) Load 9(float)
359                              ReturnValue 16
360                              FunctionEnd
361      14(@main():   12(fvec4) Function None 13
362              15:             Label
363       19(float):      7(ptr) Variable Function
364        26(bool):     25(ptr) Variable Function
365         35(int):     34(ptr) Variable Function
366        43(uint):     42(ptr) Variable Function
367  49(min16float):      7(ptr) Variable Function
368  52(min10float):      7(ptr) Variable Function
369        54(half):      7(ptr) Variable Function
370       58(float):     57(ptr) Variable Function
371       82(param):      7(ptr) Variable Function
372     89(half2x3):     88(ptr) Variable Function
373                              Store 19(float) 20
374              27:    6(float) Load 19(float)
375              29:    21(bool) FOrdNotEqual 27 28
376              30:    6(float) Load 19(float)
377              31:    21(bool) FOrdNotEqual 30 28
378              32:          24 CompositeConstruct 29 31
379                              Store 26(bool) 32
380              38:     37(ptr) AccessChain 26(bool) 36
381              39:    21(bool) Load 38
382              41:     33(int) Select 39 36 40
383                              Store 35(int) 41
384              44:    6(float) Load 19(float)
385              45:     33(int) Load 35(int)
386              46:    6(float) ConvertSToF 45
387              47:    6(float) FAdd 44 46
388              48:     22(int) ConvertFToU 47
389                              Store 43(uint) 48
390              50:     22(int) Load 43(uint)
391              51:    6(float) ConvertUToF 50
392                              Store 49(min16float) 51
393              53:    6(float) Load 49(min16float)
394                              Store 52(min10float) 53
395                              Store 54(half) 55
396              60:      7(ptr) AccessChain 58(float) 40
397                              Store 60 59
398              61:     37(ptr) AccessChain 26(bool) 36
399              62:    21(bool) Load 61
400              63:     37(ptr) AccessChain 26(bool) 40
401                              Store 63 62
402              64:    6(float) Load 19(float)
403              65:     33(int) Load 35(int)
404              66:    6(float) ConvertSToF 65
405              67:    6(float) FAdd 64 66
406              68:     22(int) Load 43(uint)
407              69:    6(float) ConvertUToF 68
408              70:    6(float) FAdd 67 69
409              71:    6(float) Load 49(min16float)
410              72:    6(float) FAdd 70 71
411              73:    6(float) Load 52(min10float)
412              74:    6(float) FAdd 72 73
413              75:     37(ptr) AccessChain 26(bool) 40
414              76:    21(bool) Load 75
415              77:     33(int) Load 35(int)
416              78:    6(float) ConvertSToF 77
417              79:    6(float) Load 19(float)
418              80:    6(float) Select 76 78 79
419              81:    6(float) FAdd 74 80
420              83:    6(float) Load 19(float)
421                              Store 82(param) 83
422              84:    6(float) FunctionCall 10(fn(f1;) 82(param)
423              85:    6(float) FAdd 81 84
424                              Store 19(float) 85
425              90:    6(float) Load 19(float)
426              91:    6(float) Load 19(float)
427              92:    6(float) FMul 90 91
428              94:      7(ptr) AccessChain 89(half2x3) 40 93
429                              Store 94 92
430              95:    6(float) Load 19(float)
431              96:      7(ptr) AccessChain 89(half2x3) 40 93
432              97:    6(float) Load 96
433              98:    6(float) FAdd 95 97
434              99:   12(fvec4) CompositeConstruct 98 98 98 98
435                              ReturnValue 99
436                              FunctionEnd
437