hlsl.promote.binary.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:14    Function Parameters: 
0:?     Sequence
0:15      mod (temp float)
0:15        Convert int to float (temp float)
0:15          ival: direct index for structure (layout(offset=32 ) uniform int)
0:15            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:15            Constant:
0:15              2 (const uint)
0:15        fval: direct index for structure (layout(offset=64 ) uniform float)
0:15          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:15          Constant:
0:15            4 (const uint)
0:16      mod (temp 4-component vector of float)
0:16        Convert int to float (temp 4-component vector of float)
0:16          ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int)
0:16            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:16            Constant:
0:16              3 (const uint)
0:16        fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
0:16          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:16          Constant:
0:16            5 (const uint)
0:18      mod (temp float)
0:18        Convert bool to float (temp float)
0:18          bval: direct index for structure (layout(offset=0 ) uniform bool)
0:18            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:18            Constant:
0:18              0 (const uint)
0:18        fval: direct index for structure (layout(offset=64 ) uniform float)
0:18          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:18          Constant:
0:18            4 (const uint)
0:19      mod (temp 4-component vector of float)
0:19        Convert bool to float (temp 4-component vector of float)
0:19          bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:19            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:19            Constant:
0:19              1 (const uint)
0:19        fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
0:19          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:19          Constant:
0:19            5 (const uint)
0:21      Sequence
0:21        move second child to first child (temp int)
0:21          'l_int' (temp int)
0:21          Constant:
0:21            1 (const int)
0:22      mod second child into first child (temp int)
0:22        'l_int' (temp int)
0:22        Convert float to int (temp int)
0:22          fval: direct index for structure (layout(offset=64 ) uniform float)
0:22            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:22            Constant:
0:22              4 (const uint)
0:25      move second child to first child (temp 4-component vector of float)
0:25        Color: direct index for structure (temp 4-component vector of float)
0:25          'psout' (temp structure{temp 4-component vector of float Color})
0:25          Constant:
0:25            0 (const int)
0:25        Constant:
0:25          0.000000
0:25          0.000000
0:25          0.000000
0:25          0.000000
0:26      Sequence
0:26        Sequence
0:26          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:26            Color: direct index for structure (temp 4-component vector of float)
0:26              'psout' (temp structure{temp 4-component vector of float Color})
0:26              Constant:
0:26                0 (const int)
0:26        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:14  Function Definition: main( (temp structure{temp 4-component vector of float Color})
0:14    Function Parameters: 
0:?     Sequence
0:15      mod (temp float)
0:15        Convert int to float (temp float)
0:15          ival: direct index for structure (layout(offset=32 ) uniform int)
0:15            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:15            Constant:
0:15              2 (const uint)
0:15        fval: direct index for structure (layout(offset=64 ) uniform float)
0:15          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:15          Constant:
0:15            4 (const uint)
0:16      mod (temp 4-component vector of float)
0:16        Convert int to float (temp 4-component vector of float)
0:16          ival4: direct index for structure (layout(offset=48 ) uniform 4-component vector of int)
0:16            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:16            Constant:
0:16              3 (const uint)
0:16        fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
0:16          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:16          Constant:
0:16            5 (const uint)
0:18      mod (temp float)
0:18        Convert bool to float (temp float)
0:18          bval: direct index for structure (layout(offset=0 ) uniform bool)
0:18            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:18            Constant:
0:18              0 (const uint)
0:18        fval: direct index for structure (layout(offset=64 ) uniform float)
0:18          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:18          Constant:
0:18            4 (const uint)
0:19      mod (temp 4-component vector of float)
0:19        Convert bool to float (temp 4-component vector of float)
0:19          bval4: direct index for structure (layout(offset=16 ) uniform 4-component vector of bool)
0:19            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:19            Constant:
0:19              1 (const uint)
0:19        fval4: direct index for structure (layout(offset=80 ) uniform 4-component vector of float)
0:19          'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:19          Constant:
0:19            5 (const uint)
0:21      Sequence
0:21        move second child to first child (temp int)
0:21          'l_int' (temp int)
0:21          Constant:
0:21            1 (const int)
0:22      mod second child into first child (temp int)
0:22        'l_int' (temp int)
0:22        Convert float to int (temp int)
0:22          fval: direct index for structure (layout(offset=64 ) uniform float)
0:22            'anon@0' (layout(row_major std140 ) uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})
0:22            Constant:
0:22              4 (const uint)
0:25      move second child to first child (temp 4-component vector of float)
0:25        Color: direct index for structure (temp 4-component vector of float)
0:25          'psout' (temp structure{temp 4-component vector of float Color})
0:25          Constant:
0:25            0 (const int)
0:25        Constant:
0:25          0.000000
0:25          0.000000
0:25          0.000000
0:25          0.000000
0:26      Sequence
0:26        Sequence
0:26          move second child to first child (temp 4-component vector of float)
0:?             'Color' (layout(location=0 ) out 4-component vector of float)
0:26            Color: direct index for structure (temp 4-component vector of float)
0:26              'psout' (temp structure{temp 4-component vector of float Color})
0:26              Constant:
0:26                0 (const int)
0:26        Branch: Return
0:?   Linker Objects
0:?     'Color' (layout(location=0 ) out 4-component vector of float)
0:?     'anon@0' (uniform block{layout(offset=0 ) uniform bool bval, layout(offset=16 ) uniform 4-component vector of bool bval4, layout(offset=32 ) uniform int ival, layout(offset=48 ) uniform 4-component vector of int ival4, layout(offset=64 ) uniform float fval, layout(offset=80 ) uniform 4-component vector of float fval4})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 74
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "main"
                              Name 12  "$Global"
                              MemberName 12($Global) 0  "bval"
                              MemberName 12($Global) 1  "bval4"
                              MemberName 12($Global) 2  "ival"
                              MemberName 12($Global) 3  "ival4"
                              MemberName 12($Global) 4  "fval"
                              MemberName 12($Global) 5  "fval4"
                              Name 14  ""
                              Name 62  "l_int"
                              Name 68  "PS_OUTPUT"
                              MemberName 68(PS_OUTPUT) 0  "Color"
                              Name 70  "psout"
                              Name 74  "Color"
                              MemberDecorate 12($Global) 0 Offset 0
                              MemberDecorate 12($Global) 1 Offset 16
                              MemberDecorate 12($Global) 2 Offset 32
                              MemberDecorate 12($Global) 3 Offset 48
                              MemberDecorate 12($Global) 4 Offset 64
                              MemberDecorate 12($Global) 5 Offset 80
                              Decorate 12($Global) Block
                              Decorate 14 DescriptorSet 0
                              Decorate 74(Color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 0
               7:             TypeVector 6(int) 4
               8:             TypeInt 32 1
               9:             TypeVector 8(int) 4
              10:             TypeFloat 32
              11:             TypeVector 10(float) 4
     12($Global):             TypeStruct 6(int) 7(ivec4) 8(int) 9(ivec4) 10(float) 11(fvec4)
              13:             TypePointer Uniform 12($Global)
              14:     13(ptr) Variable Uniform
              15:      8(int) Constant 2
              16:             TypePointer Uniform 8(int)
              20:      8(int) Constant 4
              21:             TypePointer Uniform 10(float)
              25:      8(int) Constant 3
              26:             TypePointer Uniform 9(ivec4)
              30:      8(int) Constant 5
              31:             TypePointer Uniform 11(fvec4)
              35:      8(int) Constant 0
              36:             TypePointer Uniform 6(int)
              39:             TypeBool
              40:      6(int) Constant 0
              42:   10(float) Constant 0
              43:   10(float) Constant 1065353216
              48:      8(int) Constant 1
              49:             TypePointer Uniform 7(ivec4)
              52:             TypeVector 39(bool) 4
              53:    7(ivec4) ConstantComposite 40 40 40 40
              55:   11(fvec4) ConstantComposite 42 42 42 42
              56:   11(fvec4) ConstantComposite 43 43 43 43
              61:             TypePointer Function 8(int)
   68(PS_OUTPUT):             TypeStruct 11(fvec4)
              69:             TypePointer Function 68(PS_OUTPUT)
              71:             TypePointer Function 11(fvec4)
              73:             TypePointer Output 11(fvec4)
       74(Color):     73(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       62(l_int):     61(ptr) Variable Function
       70(psout):     69(ptr) Variable Function
              17:     16(ptr) AccessChain 14 15
              18:      8(int) Load 17
              19:   10(float) ConvertSToF 18
              22:     21(ptr) AccessChain 14 20
              23:   10(float) Load 22
              24:   10(float) FMod 19 23
              27:     26(ptr) AccessChain 14 25
              28:    9(ivec4) Load 27
              29:   11(fvec4) ConvertSToF 28
              32:     31(ptr) AccessChain 14 30
              33:   11(fvec4) Load 32
              34:   11(fvec4) FMod 29 33
              37:     36(ptr) AccessChain 14 35
              38:      6(int) Load 37
              41:    39(bool) INotEqual 38 40
              44:   10(float) Select 41 43 42
              45:     21(ptr) AccessChain 14 20
              46:   10(float) Load 45
              47:   10(float) FMod 44 46
              50:     49(ptr) AccessChain 14 48
              51:    7(ivec4) Load 50
              54:   52(bvec4) INotEqual 51 53
              57:   11(fvec4) Select 54 56 55
              58:     31(ptr) AccessChain 14 30
              59:   11(fvec4) Load 58
              60:   11(fvec4) FMod 57 59
                              Store 62(l_int) 48
              63:     21(ptr) AccessChain 14 20
              64:   10(float) Load 63
              65:      8(int) ConvertFToS 64
              66:      8(int) Load 62(l_int)
              67:      8(int) SMod 66 65
                              Store 62(l_int) 67
              72:     71(ptr) AccessChain 70(psout) 35
                              Store 72 55
              75:     71(ptr) AccessChain 70(psout) 35
              76:   11(fvec4) Load 75
                              Store 74(Color) 76
                              Return
                              FunctionEnd
