1hlsl.implicitBool.frag
2Shader version: 500
3gl_FragCoord origin is upper left
40:? Sequence
50:7  Function Definition: @main( ( temp 4-component vector of float)
60:7    Function Parameters:
70:?     Sequence
80:8      Sequence
90:8        move second child to first child ( temp 4-component vector of float)
100:8          'a' ( temp 4-component vector of float)
110:?           Constant:
120:?             2.000000
130:?             2.000000
140:?             2.000000
150:?             2.000000
160:9      Test condition and select ( temp void)
170:9        Condition
180:9        Convert int to bool ( temp bool)
190:9          condi: direct index for structure ( uniform int)
200:9            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
210:9            Constant:
220:9              1 (const uint)
230:9        true case
240:10        Branch: Return with expression
250:10          add ( temp 4-component vector of float)
260:10            'a' ( temp 4-component vector of float)
270:10            Constant:
280:10              1.000000
290:11      Test condition and select ( temp void)
300:11        Condition
310:11        Convert float to bool ( temp bool)
320:11          condf: direct index for structure ( uniform float)
330:11            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
340:11            Constant:
350:11              0 (const uint)
360:11        true case
370:12        Branch: Return with expression
380:12          add ( temp 4-component vector of float)
390:12            'a' ( temp 4-component vector of float)
400:12            Constant:
410:12              2.000000
420:13      Test condition and select ( temp void)
430:13        Condition
440:13        Convert float to bool ( temp bool)
450:13          condf1: direct index for structure ( uniform 1-component vector of float)
460:13            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
470:13            Constant:
480:13              2 (const uint)
490:13        true case
500:14        Branch: Return with expression
510:14          add ( temp 4-component vector of float)
520:14            'a' ( temp 4-component vector of float)
530:14            Constant:
540:14              3.000000
550:15      Test condition and select ( temp void)
560:15        Condition
570:15        Convert int to bool ( temp bool)
580:15          condi1: direct index for structure ( uniform 1-component vector of int)
590:15            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
600:15            Constant:
610:15              3 (const uint)
620:15        true case
630:16        Branch: Return with expression
640:16          add ( temp 4-component vector of float)
650:16            'a' ( temp 4-component vector of float)
660:16            Constant:
670:16              4.000000
680:17      Test condition and select ( temp void)
690:17        Condition
700:17        logical-or ( temp bool)
710:17          logical-and ( temp bool)
720:17            Convert int to bool ( temp bool)
730:17              condi: direct index for structure ( uniform int)
740:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
750:17                Constant:
760:17                  1 (const uint)
770:17            Convert float to bool ( temp bool)
780:17              condf: direct index for structure ( uniform float)
790:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
800:17                Constant:
810:17                  0 (const uint)
820:17          Convert float to bool ( temp bool)
830:17            condf1: direct index for structure ( uniform 1-component vector of float)
840:17              'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
850:17              Constant:
860:17                2 (const uint)
870:17        true case
880:18        Branch: Return with expression
890:18          add ( temp 4-component vector of float)
900:18            'a' ( temp 4-component vector of float)
910:18            Constant:
920:18              5.000000
930:20      Sequence
940:20        move second child to first child ( temp float)
950:20          'f' ( temp float)
960:20          condf: direct index for structure ( uniform float)
970:20            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
980:20            Constant:
990:20              0 (const uint)
1000:21      Loop with condition tested first
1010:21        Loop Condition
1020:21        Convert float to bool ( temp bool)
1030:21          'f' ( temp float)
1040:21        Loop Body
1050:?         Sequence
1060:21          Pre-Decrement ( temp float)
1070:21            'f' ( temp float)
1080:23      Sequence
1090:23        move second child to first child ( temp int)
1100:23          'i' ( temp int)
1110:23          condi: direct index for structure ( uniform int)
1120:23            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
1130:23            Constant:
1140:23              1 (const uint)
1150:24      Loop with condition not tested first
1160:24        Loop Condition
1170:24        Convert int to bool ( temp bool)
1180:24          'i' ( temp int)
1190:24        Loop Body
1200:?         Sequence
1210:24          Pre-Decrement ( temp int)
1220:24            'i' ( temp int)
1230:?       Sequence
1240:26        Loop with condition tested first
1250:26          Loop Condition
1260:26          Convert int to bool ( temp bool)
1270:26            'i' ( temp int)
1280:26          Loop Body
1290:?           Sequence
1300:26            Pre-Decrement ( temp int)
1310:26              'i' ( temp int)
1320:28      Sequence
1330:28        move second child to first child ( temp float)
1340:28          'g' ( temp float)
1350:28          Test condition and select ( temp float): no shortcircuit
1360:28            Condition
1370:28            Convert float to bool ( temp bool)
1380:28              condf: direct index for structure ( uniform float)
1390:28                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
1400:28                Constant:
1410:28                  0 (const uint)
1420:28            true case
1430:28            Constant:
1440:28              7.000000
1450:28            false case
1460:28            Constant:
1470:28              8.000000
1480:29      add second child into first child ( temp 4-component vector of float)
1490:29        'a' ( temp 4-component vector of float)
1500:29        'g' ( temp float)
1510:31      Branch: Return with expression
1520:31        subtract ( temp 4-component vector of float)
1530:31          'a' ( temp 4-component vector of float)
1540:31          Constant:
1550:31            1.000000
1560:7  Function Definition: main( ( temp void)
1570:7    Function Parameters:
1580:?     Sequence
1590:7      move second child to first child ( temp 4-component vector of float)
1600:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
1610:7        Function Call: @main( ( temp 4-component vector of float)
1620:?   Linker Objects
1630:?     'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
1640:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
165
166
167Linked fragment stage:
168
169
170Shader version: 500
171gl_FragCoord origin is upper left
1720:? Sequence
1730:7  Function Definition: @main( ( temp 4-component vector of float)
1740:7    Function Parameters:
1750:?     Sequence
1760:8      Sequence
1770:8        move second child to first child ( temp 4-component vector of float)
1780:8          'a' ( temp 4-component vector of float)
1790:?           Constant:
1800:?             2.000000
1810:?             2.000000
1820:?             2.000000
1830:?             2.000000
1840:9      Test condition and select ( temp void)
1850:9        Condition
1860:9        Convert int to bool ( temp bool)
1870:9          condi: direct index for structure ( uniform int)
1880:9            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
1890:9            Constant:
1900:9              1 (const uint)
1910:9        true case
1920:10        Branch: Return with expression
1930:10          add ( temp 4-component vector of float)
1940:10            'a' ( temp 4-component vector of float)
1950:10            Constant:
1960:10              1.000000
1970:11      Test condition and select ( temp void)
1980:11        Condition
1990:11        Convert float to bool ( temp bool)
2000:11          condf: direct index for structure ( uniform float)
2010:11            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2020:11            Constant:
2030:11              0 (const uint)
2040:11        true case
2050:12        Branch: Return with expression
2060:12          add ( temp 4-component vector of float)
2070:12            'a' ( temp 4-component vector of float)
2080:12            Constant:
2090:12              2.000000
2100:13      Test condition and select ( temp void)
2110:13        Condition
2120:13        Convert float to bool ( temp bool)
2130:13          condf1: direct index for structure ( uniform 1-component vector of float)
2140:13            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2150:13            Constant:
2160:13              2 (const uint)
2170:13        true case
2180:14        Branch: Return with expression
2190:14          add ( temp 4-component vector of float)
2200:14            'a' ( temp 4-component vector of float)
2210:14            Constant:
2220:14              3.000000
2230:15      Test condition and select ( temp void)
2240:15        Condition
2250:15        Convert int to bool ( temp bool)
2260:15          condi1: direct index for structure ( uniform 1-component vector of int)
2270:15            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2280:15            Constant:
2290:15              3 (const uint)
2300:15        true case
2310:16        Branch: Return with expression
2320:16          add ( temp 4-component vector of float)
2330:16            'a' ( temp 4-component vector of float)
2340:16            Constant:
2350:16              4.000000
2360:17      Test condition and select ( temp void)
2370:17        Condition
2380:17        logical-or ( temp bool)
2390:17          logical-and ( temp bool)
2400:17            Convert int to bool ( temp bool)
2410:17              condi: direct index for structure ( uniform int)
2420:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2430:17                Constant:
2440:17                  1 (const uint)
2450:17            Convert float to bool ( temp bool)
2460:17              condf: direct index for structure ( uniform float)
2470:17                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2480:17                Constant:
2490:17                  0 (const uint)
2500:17          Convert float to bool ( temp bool)
2510:17            condf1: direct index for structure ( uniform 1-component vector of float)
2520:17              'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2530:17              Constant:
2540:17                2 (const uint)
2550:17        true case
2560:18        Branch: Return with expression
2570:18          add ( temp 4-component vector of float)
2580:18            'a' ( temp 4-component vector of float)
2590:18            Constant:
2600:18              5.000000
2610:20      Sequence
2620:20        move second child to first child ( temp float)
2630:20          'f' ( temp float)
2640:20          condf: direct index for structure ( uniform float)
2650:20            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2660:20            Constant:
2670:20              0 (const uint)
2680:21      Loop with condition tested first
2690:21        Loop Condition
2700:21        Convert float to bool ( temp bool)
2710:21          'f' ( temp float)
2720:21        Loop Body
2730:?         Sequence
2740:21          Pre-Decrement ( temp float)
2750:21            'f' ( temp float)
2760:23      Sequence
2770:23        move second child to first child ( temp int)
2780:23          'i' ( temp int)
2790:23          condi: direct index for structure ( uniform int)
2800:23            'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
2810:23            Constant:
2820:23              1 (const uint)
2830:24      Loop with condition not tested first
2840:24        Loop Condition
2850:24        Convert int to bool ( temp bool)
2860:24          'i' ( temp int)
2870:24        Loop Body
2880:?         Sequence
2890:24          Pre-Decrement ( temp int)
2900:24            'i' ( temp int)
2910:?       Sequence
2920:26        Loop with condition tested first
2930:26          Loop Condition
2940:26          Convert int to bool ( temp bool)
2950:26            'i' ( temp int)
2960:26          Loop Body
2970:?           Sequence
2980:26            Pre-Decrement ( temp int)
2990:26              'i' ( temp int)
3000:28      Sequence
3010:28        move second child to first child ( temp float)
3020:28          'g' ( temp float)
3030:28          Test condition and select ( temp float): no shortcircuit
3040:28            Condition
3050:28            Convert float to bool ( temp bool)
3060:28              condf: direct index for structure ( uniform float)
3070:28                'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
3080:28                Constant:
3090:28                  0 (const uint)
3100:28            true case
3110:28            Constant:
3120:28              7.000000
3130:28            false case
3140:28            Constant:
3150:28              8.000000
3160:29      add second child into first child ( temp 4-component vector of float)
3170:29        'a' ( temp 4-component vector of float)
3180:29        'g' ( temp float)
3190:31      Branch: Return with expression
3200:31        subtract ( temp 4-component vector of float)
3210:31          'a' ( temp 4-component vector of float)
3220:31          Constant:
3230:31            1.000000
3240:7  Function Definition: main( ( temp void)
3250:7    Function Parameters:
3260:?     Sequence
3270:7      move second child to first child ( temp 4-component vector of float)
3280:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
3290:7        Function Call: @main( ( temp 4-component vector of float)
3300:?   Linker Objects
3310:?     'anon@0' (layout( row_major std140) uniform block{ uniform float condf,  uniform int condi,  uniform 1-component vector of float condf1,  uniform 1-component vector of int condi1})
3320:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)
333
334// Module Version 10000
335// Generated by (magic number): 80007
336// Id's are bound by 139
337
338                              Capability Shader
339               1:             ExtInstImport  "GLSL.std.450"
340                              MemoryModel Logical GLSL450
341                              EntryPoint Fragment 4  "main" 137
342                              ExecutionMode 4 OriginUpperLeft
343                              Source HLSL 500
344                              Name 4  "main"
345                              Name 9  "@main("
346                              Name 12  "a"
347                              Name 16  "$Global"
348                              MemberName 16($Global) 0  "condf"
349                              MemberName 16($Global) 1  "condi"
350                              MemberName 16($Global) 2  "condf1"
351                              MemberName 16($Global) 3  "condi1"
352                              Name 18  ""
353                              Name 87  "f"
354                              Name 100  "i"
355                              Name 120  "g"
356                              Name 137  "@entryPointOutput"
357                              MemberDecorate 16($Global) 0 Offset 0
358                              MemberDecorate 16($Global) 1 Offset 4
359                              MemberDecorate 16($Global) 2 Offset 8
360                              MemberDecorate 16($Global) 3 Offset 12
361                              Decorate 16($Global) Block
362                              Decorate 18 DescriptorSet 0
363                              Decorate 137(@entryPointOutput) Location 0
364               2:             TypeVoid
365               3:             TypeFunction 2
366               6:             TypeFloat 32
367               7:             TypeVector 6(float) 4
368               8:             TypeFunction 7(fvec4)
369              11:             TypePointer Function 7(fvec4)
370              13:    6(float) Constant 1073741824
371              14:    7(fvec4) ConstantComposite 13 13 13 13
372              15:             TypeInt 32 1
373     16($Global):             TypeStruct 6(float) 15(int) 6(float) 15(int)
374              17:             TypePointer Uniform 16($Global)
375              18:     17(ptr) Variable Uniform
376              19:     15(int) Constant 1
377              20:             TypePointer Uniform 15(int)
378              23:             TypeBool
379              24:             TypeInt 32 0
380              25:     24(int) Constant 0
381              30:    6(float) Constant 1065353216
382              34:     15(int) Constant 0
383              35:             TypePointer Uniform 6(float)
384              38:    6(float) Constant 0
385              46:     15(int) Constant 2
386              53:    6(float) Constant 1077936128
387              57:     15(int) Constant 3
388              64:    6(float) Constant 1082130432
389              82:    6(float) Constant 1084227584
390              86:             TypePointer Function 6(float)
391              99:             TypePointer Function 15(int)
392             124:    6(float) Constant 1088421888
393             125:    6(float) Constant 1090519040
394             136:             TypePointer Output 7(fvec4)
395137(@entryPointOutput):    136(ptr) Variable Output
396         4(main):           2 Function None 3
397               5:             Label
398             138:    7(fvec4) FunctionCall 9(@main()
399                              Store 137(@entryPointOutput) 138
400                              Return
401                              FunctionEnd
402       9(@main():    7(fvec4) Function None 8
403              10:             Label
404           12(a):     11(ptr) Variable Function
405           87(f):     86(ptr) Variable Function
406          100(i):     99(ptr) Variable Function
407          120(g):     86(ptr) Variable Function
408                              Store 12(a) 14
409              21:     20(ptr) AccessChain 18 19
410              22:     15(int) Load 21
411              26:    23(bool) INotEqual 22 25
412                              SelectionMerge 28 None
413                              BranchConditional 26 27 28
414              27:               Label
415              29:    7(fvec4)   Load 12(a)
416              31:    7(fvec4)   CompositeConstruct 30 30 30 30
417              32:    7(fvec4)   FAdd 29 31
418                                ReturnValue 32
419              28:             Label
420              36:     35(ptr) AccessChain 18 34
421              37:    6(float) Load 36
422              39:    23(bool) FOrdNotEqual 37 38
423                              SelectionMerge 41 None
424                              BranchConditional 39 40 41
425              40:               Label
426              42:    7(fvec4)   Load 12(a)
427              43:    7(fvec4)   CompositeConstruct 13 13 13 13
428              44:    7(fvec4)   FAdd 42 43
429                                ReturnValue 44
430              41:             Label
431              47:     35(ptr) AccessChain 18 46
432              48:    6(float) Load 47
433              49:    23(bool) FOrdNotEqual 48 38
434                              SelectionMerge 51 None
435                              BranchConditional 49 50 51
436              50:               Label
437              52:    7(fvec4)   Load 12(a)
438              54:    7(fvec4)   CompositeConstruct 53 53 53 53
439              55:    7(fvec4)   FAdd 52 54
440                                ReturnValue 55
441              51:             Label
442              58:     20(ptr) AccessChain 18 57
443              59:     15(int) Load 58
444              60:    23(bool) INotEqual 59 25
445                              SelectionMerge 62 None
446                              BranchConditional 60 61 62
447              61:               Label
448              63:    7(fvec4)   Load 12(a)
449              65:    7(fvec4)   CompositeConstruct 64 64 64 64
450              66:    7(fvec4)   FAdd 63 65
451                                ReturnValue 66
452              62:             Label
453              68:     20(ptr) AccessChain 18 19
454              69:     15(int) Load 68
455              70:    23(bool) INotEqual 69 25
456              71:     35(ptr) AccessChain 18 34
457              72:    6(float) Load 71
458              73:    23(bool) FOrdNotEqual 72 38
459              74:    23(bool) LogicalAnd 70 73
460              75:     35(ptr) AccessChain 18 46
461              76:    6(float) Load 75
462              77:    23(bool) FOrdNotEqual 76 38
463              78:    23(bool) LogicalOr 74 77
464                              SelectionMerge 80 None
465                              BranchConditional 78 79 80
466              79:               Label
467              81:    7(fvec4)   Load 12(a)
468              83:    7(fvec4)   CompositeConstruct 82 82 82 82
469              84:    7(fvec4)   FAdd 81 83
470                                ReturnValue 84
471              80:             Label
472              88:     35(ptr) AccessChain 18 34
473              89:    6(float) Load 88
474                              Store 87(f) 89
475                              Branch 90
476              90:             Label
477                              LoopMerge 92 93 None
478                              Branch 94
479              94:             Label
480              95:    6(float) Load 87(f)
481              96:    23(bool) FOrdNotEqual 95 38
482                              BranchConditional 96 91 92
483              91:               Label
484              97:    6(float)   Load 87(f)
485              98:    6(float)   FSub 97 30
486                                Store 87(f) 98
487                                Branch 93
488              93:               Label
489                                Branch 90
490              92:             Label
491             101:     20(ptr) AccessChain 18 19
492             102:     15(int) Load 101
493                              Store 100(i) 102
494                              Branch 103
495             103:             Label
496                              LoopMerge 105 106 None
497                              Branch 104
498             104:             Label
499             107:     15(int) Load 100(i)
500             108:     15(int) ISub 107 19
501                              Store 100(i) 108
502                              Branch 106
503             106:             Label
504             109:     15(int) Load 100(i)
505             110:    23(bool) INotEqual 109 25
506                              BranchConditional 110 103 105
507             105:             Label
508                              Branch 111
509             111:             Label
510                              LoopMerge 113 114 None
511                              Branch 115
512             115:             Label
513             116:     15(int) Load 100(i)
514             117:    23(bool) INotEqual 116 25
515                              BranchConditional 117 112 113
516             112:               Label
517             118:     15(int)   Load 100(i)
518             119:     15(int)   ISub 118 19
519                                Store 100(i) 119
520                                Branch 114
521             114:               Label
522                                Branch 111
523             113:             Label
524             121:     35(ptr) AccessChain 18 34
525             122:    6(float) Load 121
526             123:    23(bool) FOrdNotEqual 122 38
527             126:    6(float) Select 123 124 125
528                              Store 120(g) 126
529             127:    6(float) Load 120(g)
530             128:    7(fvec4) Load 12(a)
531             129:    7(fvec4) CompositeConstruct 127 127 127 127
532             130:    7(fvec4) FAdd 128 129
533                              Store 12(a) 130
534             131:    7(fvec4) Load 12(a)
535             132:    7(fvec4) CompositeConstruct 30 30 30 30
536             133:    7(fvec4) FSub 131 132
537                              ReturnValue 133
538                              FunctionEnd
539