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): 8000a
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 18 Binding 0
364                              Decorate 137(@entryPointOutput) Location 0
365               2:             TypeVoid
366               3:             TypeFunction 2
367               6:             TypeFloat 32
368               7:             TypeVector 6(float) 4
369               8:             TypeFunction 7(fvec4)
370              11:             TypePointer Function 7(fvec4)
371              13:    6(float) Constant 1073741824
372              14:    7(fvec4) ConstantComposite 13 13 13 13
373              15:             TypeInt 32 1
374     16($Global):             TypeStruct 6(float) 15(int) 6(float) 15(int)
375              17:             TypePointer Uniform 16($Global)
376              18:     17(ptr) Variable Uniform
377              19:     15(int) Constant 1
378              20:             TypePointer Uniform 15(int)
379              23:             TypeBool
380              24:             TypeInt 32 0
381              25:     24(int) Constant 0
382              30:    6(float) Constant 1065353216
383              34:     15(int) Constant 0
384              35:             TypePointer Uniform 6(float)
385              38:    6(float) Constant 0
386              46:     15(int) Constant 2
387              53:    6(float) Constant 1077936128
388              57:     15(int) Constant 3
389              64:    6(float) Constant 1082130432
390              82:    6(float) Constant 1084227584
391              86:             TypePointer Function 6(float)
392              99:             TypePointer Function 15(int)
393             124:    6(float) Constant 1088421888
394             125:    6(float) Constant 1090519040
395             136:             TypePointer Output 7(fvec4)
396137(@entryPointOutput):    136(ptr) Variable Output
397         4(main):           2 Function None 3
398               5:             Label
399             138:    7(fvec4) FunctionCall 9(@main()
400                              Store 137(@entryPointOutput) 138
401                              Return
402                              FunctionEnd
403       9(@main():    7(fvec4) Function None 8
404              10:             Label
405           12(a):     11(ptr) Variable Function
406           87(f):     86(ptr) Variable Function
407          100(i):     99(ptr) Variable Function
408          120(g):     86(ptr) Variable Function
409                              Store 12(a) 14
410              21:     20(ptr) AccessChain 18 19
411              22:     15(int) Load 21
412              26:    23(bool) INotEqual 22 25
413                              SelectionMerge 28 None
414                              BranchConditional 26 27 28
415              27:               Label
416              29:    7(fvec4)   Load 12(a)
417              31:    7(fvec4)   CompositeConstruct 30 30 30 30
418              32:    7(fvec4)   FAdd 29 31
419                                ReturnValue 32
420              28:             Label
421              36:     35(ptr) AccessChain 18 34
422              37:    6(float) Load 36
423              39:    23(bool) FUnordNotEqual 37 38
424                              SelectionMerge 41 None
425                              BranchConditional 39 40 41
426              40:               Label
427              42:    7(fvec4)   Load 12(a)
428              43:    7(fvec4)   CompositeConstruct 13 13 13 13
429              44:    7(fvec4)   FAdd 42 43
430                                ReturnValue 44
431              41:             Label
432              47:     35(ptr) AccessChain 18 46
433              48:    6(float) Load 47
434              49:    23(bool) FUnordNotEqual 48 38
435                              SelectionMerge 51 None
436                              BranchConditional 49 50 51
437              50:               Label
438              52:    7(fvec4)   Load 12(a)
439              54:    7(fvec4)   CompositeConstruct 53 53 53 53
440              55:    7(fvec4)   FAdd 52 54
441                                ReturnValue 55
442              51:             Label
443              58:     20(ptr) AccessChain 18 57
444              59:     15(int) Load 58
445              60:    23(bool) INotEqual 59 25
446                              SelectionMerge 62 None
447                              BranchConditional 60 61 62
448              61:               Label
449              63:    7(fvec4)   Load 12(a)
450              65:    7(fvec4)   CompositeConstruct 64 64 64 64
451              66:    7(fvec4)   FAdd 63 65
452                                ReturnValue 66
453              62:             Label
454              68:     20(ptr) AccessChain 18 19
455              69:     15(int) Load 68
456              70:    23(bool) INotEqual 69 25
457              71:     35(ptr) AccessChain 18 34
458              72:    6(float) Load 71
459              73:    23(bool) FUnordNotEqual 72 38
460              74:    23(bool) LogicalAnd 70 73
461              75:     35(ptr) AccessChain 18 46
462              76:    6(float) Load 75
463              77:    23(bool) FUnordNotEqual 76 38
464              78:    23(bool) LogicalOr 74 77
465                              SelectionMerge 80 None
466                              BranchConditional 78 79 80
467              79:               Label
468              81:    7(fvec4)   Load 12(a)
469              83:    7(fvec4)   CompositeConstruct 82 82 82 82
470              84:    7(fvec4)   FAdd 81 83
471                                ReturnValue 84
472              80:             Label
473              88:     35(ptr) AccessChain 18 34
474              89:    6(float) Load 88
475                              Store 87(f) 89
476                              Branch 90
477              90:             Label
478                              LoopMerge 92 93 None
479                              Branch 94
480              94:             Label
481              95:    6(float) Load 87(f)
482              96:    23(bool) FUnordNotEqual 95 38
483                              BranchConditional 96 91 92
484              91:               Label
485              97:    6(float)   Load 87(f)
486              98:    6(float)   FSub 97 30
487                                Store 87(f) 98
488                                Branch 93
489              93:               Label
490                                Branch 90
491              92:             Label
492             101:     20(ptr) AccessChain 18 19
493             102:     15(int) Load 101
494                              Store 100(i) 102
495                              Branch 103
496             103:             Label
497                              LoopMerge 105 106 None
498                              Branch 104
499             104:             Label
500             107:     15(int) Load 100(i)
501             108:     15(int) ISub 107 19
502                              Store 100(i) 108
503                              Branch 106
504             106:             Label
505             109:     15(int) Load 100(i)
506             110:    23(bool) INotEqual 109 25
507                              BranchConditional 110 103 105
508             105:             Label
509                              Branch 111
510             111:             Label
511                              LoopMerge 113 114 None
512                              Branch 115
513             115:             Label
514             116:     15(int) Load 100(i)
515             117:    23(bool) INotEqual 116 25
516                              BranchConditional 117 112 113
517             112:               Label
518             118:     15(int)   Load 100(i)
519             119:     15(int)   ISub 118 19
520                                Store 100(i) 119
521                                Branch 114
522             114:               Label
523                                Branch 111
524             113:             Label
525             121:     35(ptr) AccessChain 18 34
526             122:    6(float) Load 121
527             123:    23(bool) FUnordNotEqual 122 38
528             126:    6(float) Select 123 124 125
529                              Store 120(g) 126
530             127:    6(float) Load 120(g)
531             128:    7(fvec4) Load 12(a)
532             129:    7(fvec4) CompositeConstruct 127 127 127 127
533             130:    7(fvec4) FAdd 128 129
534                              Store 12(a) 130
535             131:    7(fvec4) Load 12(a)
536             132:    7(fvec4) CompositeConstruct 30 30 30 30
537             133:    7(fvec4) FSub 131 132
538                              ReturnValue 133
539                              FunctionEnd
540