hlsl.logical.binary.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:12    Function Parameters: 
0:?     Sequence
0:13      Test condition and select ( temp void)
0:13        Condition
0:13        logical-and ( temp bool)
0:13          Convert int to bool ( temp bool)
0:13            ival: direct index for structure ( uniform int)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:13              Constant:
0:13                0 (const uint)
0:13          Convert int to bool ( temp bool)
0:13            Convert float to int ( temp int)
0:13              fval: direct index for structure ( uniform float)
0:13                'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:13                Constant:
0:13                  2 (const uint)
0:13        true case is null
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        logical-or ( temp bool)
0:14          Convert int to bool ( temp bool)
0:14            ival: direct index for structure ( uniform int)
0:14              'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:14              Constant:
0:14                0 (const uint)
0:14          Convert int to bool ( temp bool)
0:14            Convert float to int ( temp int)
0:14              fval: direct index for structure ( uniform float)
0:14                'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:14                Constant:
0:14                  2 (const uint)
0:14        true case is null
0:17      move second child to first child ( temp 4-component vector of float)
0:17        Color: direct index for structure ( temp 4-component vector of float)
0:17          'psout' ( temp structure{ temp 4-component vector of float Color})
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:18      Branch: Return with expression
0:18        'psout' ( temp structure{ temp 4-component vector of float Color})
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:12          Color: direct index for structure ( temp 4-component vector of float)
0:12            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:12            Constant:
0:12              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color})
0:12    Function Parameters: 
0:?     Sequence
0:13      Test condition and select ( temp void)
0:13        Condition
0:13        logical-and ( temp bool)
0:13          Convert int to bool ( temp bool)
0:13            ival: direct index for structure ( uniform int)
0:13              'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:13              Constant:
0:13                0 (const uint)
0:13          Convert int to bool ( temp bool)
0:13            Convert float to int ( temp int)
0:13              fval: direct index for structure ( uniform float)
0:13                'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:13                Constant:
0:13                  2 (const uint)
0:13        true case is null
0:14      Test condition and select ( temp void)
0:14        Condition
0:14        logical-or ( temp bool)
0:14          Convert int to bool ( temp bool)
0:14            ival: direct index for structure ( uniform int)
0:14              'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:14              Constant:
0:14                0 (const uint)
0:14          Convert int to bool ( temp bool)
0:14            Convert float to int ( temp int)
0:14              fval: direct index for structure ( uniform float)
0:14                'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:14                Constant:
0:14                  2 (const uint)
0:14        true case is null
0:17      move second child to first child ( temp 4-component vector of float)
0:17        Color: direct index for structure ( temp 4-component vector of float)
0:17          'psout' ( temp structure{ temp 4-component vector of float Color})
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:17          1.000000
0:18      Branch: Return with expression
0:18        'psout' ( temp structure{ temp 4-component vector of float Color})
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      Sequence
0:12        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:12          Color: direct index for structure ( temp 4-component vector of float)
0:12            Function Call: @main( ( temp structure{ temp 4-component vector of float Color})
0:12            Constant:
0:12              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int ival,  uniform 4-component vector of int ival4,  uniform float fval,  uniform 4-component vector of float fval4})
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 57

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 54
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "Color"
                              Name 10  "@main("
                              Name 14  "$Global"
                              MemberName 14($Global) 0  "ival"
                              MemberName 14($Global) 1  "ival4"
                              MemberName 14($Global) 2  "fval"
                              MemberName 14($Global) 3  "fval4"
                              Name 16  ""
                              Name 45  "psout"
                              Name 54  "@entryPointOutput.Color"
                              MemberDecorate 14($Global) 0 Offset 0
                              MemberDecorate 14($Global) 1 Offset 16
                              MemberDecorate 14($Global) 2 Offset 32
                              MemberDecorate 14($Global) 3 Offset 48
                              Decorate 14($Global) Block
                              Decorate 16 DescriptorSet 0
                              Decorate 54(@entryPointOutput.Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(PS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(PS_OUTPUT)
              12:             TypeInt 32 1
              13:             TypeVector 12(int) 4
     14($Global):             TypeStruct 12(int) 13(ivec4) 6(float) 7(fvec4)
              15:             TypePointer Uniform 14($Global)
              16:     15(ptr) Variable Uniform
              17:     12(int) Constant 0
              18:             TypePointer Uniform 12(int)
              21:             TypeBool
              22:             TypeInt 32 0
              23:     22(int) Constant 0
              25:     12(int) Constant 2
              26:             TypePointer Uniform 6(float)
              44:             TypePointer Function 8(PS_OUTPUT)
              46:    6(float) Constant 1065353216
              47:    7(fvec4) ConstantComposite 46 46 46 46
              48:             TypePointer Function 7(fvec4)
              53:             TypePointer Output 7(fvec4)
54(@entryPointOutput.Color):     53(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              55:8(PS_OUTPUT) FunctionCall 10(@main()
              56:    7(fvec4) CompositeExtract 55 0
                              Store 54(@entryPointOutput.Color) 56
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
       45(psout):     44(ptr) Variable Function
              19:     18(ptr) AccessChain 16 17
              20:     12(int) Load 19
              24:    21(bool) INotEqual 20 23
              27:     26(ptr) AccessChain 16 25
              28:    6(float) Load 27
              29:     12(int) ConvertFToS 28
              30:    21(bool) INotEqual 29 23
              31:    21(bool) LogicalAnd 24 30
                              SelectionMerge 33 None
                              BranchConditional 31 32 33
              32:               Label
                                Branch 33
              33:             Label
              34:     18(ptr) AccessChain 16 17
              35:     12(int) Load 34
              36:    21(bool) INotEqual 35 23
              37:     26(ptr) AccessChain 16 25
              38:    6(float) Load 37
              39:     12(int) ConvertFToS 38
              40:    21(bool) INotEqual 39 23
              41:    21(bool) LogicalOr 36 40
                              SelectionMerge 43 None
                              BranchConditional 41 42 43
              42:               Label
                                Branch 43
              43:             Label
              49:     48(ptr) AccessChain 45(psout) 17
                              Store 49 47
              50:8(PS_OUTPUT) Load 45(psout)
                              ReturnValue 50
                              FunctionEnd
