hlsl.intrinsics.promote.down.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:15    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp uint)
0:16          'r00' ( temp uint)
0:16          bitCount ( temp uint)
0:16            Convert float to uint ( temp uint)
0:16              f: direct index for structure ( uniform float)
0:16                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
0:16                Constant:
0:16                  2 (const uint)
0:17      Sequence
0:17        move second child to first child ( temp 2-component vector of uint)
0:17          'r01' ( temp 2-component vector of uint)
0:17          bitFieldReverse ( temp 2-component vector of uint)
0:17            Convert float to uint ( temp 2-component vector of uint)
0:17              f2: direct index for structure ( uniform 2-component vector of float)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
0:17                Constant:
0:17                  6 (const uint)
0:20      move second child to first child ( temp 4-component vector of float)
0:20        color: direct index for structure ( temp 4-component vector of float)
0:20          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:20          Constant:
0:20            0 (const int)
0:20        Constant:
0:20          0.000000
0:20          0.000000
0:20          0.000000
0:20          0.000000
0:21      Branch: Return with expression
0:21        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        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:15          color: direct index for structure ( temp 4-component vector of float)
0:15            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:15            Constant:
0:15              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
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:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float color})
0:15    Function Parameters: 
0:?     Sequence
0:16      Sequence
0:16        move second child to first child ( temp uint)
0:16          'r00' ( temp uint)
0:16          bitCount ( temp uint)
0:16            Convert float to uint ( temp uint)
0:16              f: direct index for structure ( uniform float)
0:16                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
0:16                Constant:
0:16                  2 (const uint)
0:17      Sequence
0:17        move second child to first child ( temp 2-component vector of uint)
0:17          'r01' ( temp 2-component vector of uint)
0:17          bitFieldReverse ( temp 2-component vector of uint)
0:17            Convert float to uint ( temp 2-component vector of uint)
0:17              f2: direct index for structure ( uniform 2-component vector of float)
0:17                'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
0:17                Constant:
0:17                  6 (const uint)
0:20      move second child to first child ( temp 4-component vector of float)
0:20        color: direct index for structure ( temp 4-component vector of float)
0:20          'ps_output' ( temp structure{ temp 4-component vector of float color})
0:20          Constant:
0:20            0 (const int)
0:20        Constant:
0:20          0.000000
0:20          0.000000
0:20          0.000000
0:20          0.000000
0:21      Branch: Return with expression
0:21        'ps_output' ( temp structure{ temp 4-component vector of float color})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        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:15          color: direct index for structure ( temp 4-component vector of float)
0:15            Function Call: @main( ( temp structure{ temp 4-component vector of float color})
0:15            Constant:
0:15              0 (const int)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform int i,  uniform uint u,  uniform float f,  uniform bool b,  uniform 2-component vector of int i2,  uniform 2-component vector of uint u2,  uniform 2-component vector of float f2,  uniform 2-component vector of bool b2})
0:?     '@entryPointOutput.color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 50

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 47
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "PS_OUTPUT"
                              MemberName 8(PS_OUTPUT) 0  "color"
                              Name 10  "@main("
                              Name 14  "r00"
                              Name 19  "$Global"
                              MemberName 19($Global) 0  "i"
                              MemberName 19($Global) 1  "u"
                              MemberName 19($Global) 2  "f"
                              MemberName 19($Global) 3  "b"
                              MemberName 19($Global) 4  "i2"
                              MemberName 19($Global) 5  "u2"
                              MemberName 19($Global) 6  "f2"
                              MemberName 19($Global) 7  "b2"
                              Name 21  ""
                              Name 29  "r01"
                              Name 37  "ps_output"
                              Name 47  "@entryPointOutput.color"
                              MemberDecorate 19($Global) 0 Offset 0
                              MemberDecorate 19($Global) 1 Offset 4
                              MemberDecorate 19($Global) 2 Offset 8
                              MemberDecorate 19($Global) 3 Offset 12
                              MemberDecorate 19($Global) 4 Offset 16
                              MemberDecorate 19($Global) 5 Offset 24
                              MemberDecorate 19($Global) 6 Offset 32
                              MemberDecorate 19($Global) 7 Offset 40
                              Decorate 19($Global) Block
                              Decorate 21 DescriptorSet 0
                              Decorate 21 Binding 0
                              Decorate 47(@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 0
              13:             TypePointer Function 12(int)
              15:             TypeInt 32 1
              16:             TypeVector 15(int) 2
              17:             TypeVector 12(int) 2
              18:             TypeVector 6(float) 2
     19($Global):             TypeStruct 15(int) 12(int) 6(float) 12(int) 16(ivec2) 17(ivec2) 18(fvec2) 17(ivec2)
              20:             TypePointer Uniform 19($Global)
              21:     20(ptr) Variable Uniform
              22:     15(int) Constant 2
              23:             TypePointer Uniform 6(float)
              28:             TypePointer Function 17(ivec2)
              30:     15(int) Constant 6
              31:             TypePointer Uniform 18(fvec2)
              36:             TypePointer Function 8(PS_OUTPUT)
              38:     15(int) Constant 0
              39:    6(float) Constant 0
              40:    7(fvec4) ConstantComposite 39 39 39 39
              41:             TypePointer Function 7(fvec4)
              46:             TypePointer Output 7(fvec4)
47(@entryPointOutput.color):     46(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              48:8(PS_OUTPUT) FunctionCall 10(@main()
              49:    7(fvec4) CompositeExtract 48 0
                              Store 47(@entryPointOutput.color) 49
                              Return
                              FunctionEnd
      10(@main():8(PS_OUTPUT) Function None 9
              11:             Label
         14(r00):     13(ptr) Variable Function
         29(r01):     28(ptr) Variable Function
   37(ps_output):     36(ptr) Variable Function
              24:     23(ptr) AccessChain 21 22
              25:    6(float) Load 24
              26:     12(int) ConvertFToU 25
              27:     12(int) BitCount 26
                              Store 14(r00) 27
              32:     31(ptr) AccessChain 21 30
              33:   18(fvec2) Load 32
              34:   17(ivec2) ConvertFToU 33
              35:   17(ivec2) BitReverse 34
                              Store 29(r01) 35
              42:     41(ptr) AccessChain 37(ps_output) 38
                              Store 42 40
              43:8(PS_OUTPUT) Load 37(ps_output)
                              ReturnValue 43
                              FunctionEnd
