hlsl.intrinsics.f3216.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunctionS(f1; ( temp uint)
0:2    Function Parameters: 
0:2      'inF0' ( in float)
0:?     Sequence
0:3      Branch: Return with expression
0:3        packHalf2x16 ( temp uint)
0:3          Construct vec2 ( temp 2-component vector of float)
0:3            'inF0' ( in float)
0:3            Constant:
0:3              0.000000
0:7  Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint)
0:7    Function Parameters: 
0:7      'inF0' ( in 1-component vector of float)
0:?     Sequence
0:8      Branch: Return with expression
0:8        Construct uint ( temp 1-component vector of uint)
0:8          packHalf2x16 ( temp uint)
0:8            Construct vec2 ( temp 2-component vector of float)
0:8              Construct float ( in float)
0:8                'inF0' ( in 1-component vector of float)
0:8              Constant:
0:8                0.000000
0:12  Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint)
0:12    Function Parameters: 
0:12      'inF0' ( in 2-component vector of float)
0:?     Sequence
0:13      Branch: Return with expression
0:13        Construct uvec2 ( temp 2-component vector of uint)
0:13          packHalf2x16 ( temp uint)
0:13            Construct vec2 ( temp 2-component vector of float)
0:13              direct index ( temp float)
0:13                'inF0' ( in 2-component vector of float)
0:13                Constant:
0:13                  0 (const int)
0:13              Constant:
0:13                0.000000
0:13          packHalf2x16 ( temp uint)
0:13            Construct vec2 ( temp 2-component vector of float)
0:13              direct index ( temp float)
0:13                'inF0' ( in 2-component vector of float)
0:13                Constant:
0:13                  1 (const int)
0:13              Constant:
0:13                0.000000
0:17  Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint)
0:17    Function Parameters: 
0:17      'inF0' ( in 3-component vector of float)
0:?     Sequence
0:18      Branch: Return with expression
0:18        Construct uvec3 ( temp 3-component vector of uint)
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  0 (const int)
0:18              Constant:
0:18                0.000000
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  1 (const int)
0:18              Constant:
0:18                0.000000
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  2 (const int)
0:18              Constant:
0:18                0.000000
0:22  Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint)
0:22    Function Parameters: 
0:22      'inF0' ( in 4-component vector of float)
0:?     Sequence
0:23      Branch: Return with expression
0:23        Construct uvec4 ( temp 4-component vector of uint)
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  0 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  1 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  2 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  3 (const int)
0:23              Constant:
0:23                0.000000
0:27  Function Definition: @main( ( temp 4-component vector of float)
0:27    Function Parameters: 
0:?     Sequence
0:28      Branch: Return with expression
0:28        Constant:
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:27  Function Definition: main( ( temp void)
0:27    Function Parameters: 
0:?     Sequence
0:27      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:27        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:2  Function Definition: PixelShaderFunctionS(f1; ( temp uint)
0:2    Function Parameters: 
0:2      'inF0' ( in float)
0:?     Sequence
0:3      Branch: Return with expression
0:3        packHalf2x16 ( temp uint)
0:3          Construct vec2 ( temp 2-component vector of float)
0:3            'inF0' ( in float)
0:3            Constant:
0:3              0.000000
0:7  Function Definition: PixelShaderFunction1(vf1; ( temp 1-component vector of uint)
0:7    Function Parameters: 
0:7      'inF0' ( in 1-component vector of float)
0:?     Sequence
0:8      Branch: Return with expression
0:8        Construct uint ( temp 1-component vector of uint)
0:8          packHalf2x16 ( temp uint)
0:8            Construct vec2 ( temp 2-component vector of float)
0:8              Construct float ( in float)
0:8                'inF0' ( in 1-component vector of float)
0:8              Constant:
0:8                0.000000
0:12  Function Definition: PixelShaderFunction2(vf2; ( temp 2-component vector of uint)
0:12    Function Parameters: 
0:12      'inF0' ( in 2-component vector of float)
0:?     Sequence
0:13      Branch: Return with expression
0:13        Construct uvec2 ( temp 2-component vector of uint)
0:13          packHalf2x16 ( temp uint)
0:13            Construct vec2 ( temp 2-component vector of float)
0:13              direct index ( temp float)
0:13                'inF0' ( in 2-component vector of float)
0:13                Constant:
0:13                  0 (const int)
0:13              Constant:
0:13                0.000000
0:13          packHalf2x16 ( temp uint)
0:13            Construct vec2 ( temp 2-component vector of float)
0:13              direct index ( temp float)
0:13                'inF0' ( in 2-component vector of float)
0:13                Constant:
0:13                  1 (const int)
0:13              Constant:
0:13                0.000000
0:17  Function Definition: PixelShaderFunction3(vf3; ( temp 3-component vector of uint)
0:17    Function Parameters: 
0:17      'inF0' ( in 3-component vector of float)
0:?     Sequence
0:18      Branch: Return with expression
0:18        Construct uvec3 ( temp 3-component vector of uint)
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  0 (const int)
0:18              Constant:
0:18                0.000000
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  1 (const int)
0:18              Constant:
0:18                0.000000
0:18          packHalf2x16 ( temp uint)
0:18            Construct vec2 ( temp 2-component vector of float)
0:18              direct index ( temp float)
0:18                'inF0' ( in 3-component vector of float)
0:18                Constant:
0:18                  2 (const int)
0:18              Constant:
0:18                0.000000
0:22  Function Definition: PixelShaderFunction(vf4; ( temp 4-component vector of uint)
0:22    Function Parameters: 
0:22      'inF0' ( in 4-component vector of float)
0:?     Sequence
0:23      Branch: Return with expression
0:23        Construct uvec4 ( temp 4-component vector of uint)
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  0 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  1 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  2 (const int)
0:23              Constant:
0:23                0.000000
0:23          packHalf2x16 ( temp uint)
0:23            Construct vec2 ( temp 2-component vector of float)
0:23              direct index ( temp float)
0:23                'inF0' ( in 4-component vector of float)
0:23                Constant:
0:23                  3 (const int)
0:23              Constant:
0:23                0.000000
0:27  Function Definition: @main( ( temp 4-component vector of float)
0:27    Function Parameters: 
0:?     Sequence
0:28      Branch: Return with expression
0:28        Constant:
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:28          0.000000
0:27  Function Definition: main( ( temp void)
0:27    Function Parameters: 
0:?     Sequence
0:27      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:27        Function Call: @main( ( temp 4-component vector of float)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 104
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "PixelShaderFunctionS(f1;"
                              Name 10  "inF0"
                              Name 14  "PixelShaderFunction1(vf1;"
                              Name 13  "inF0"
                              Name 21  "PixelShaderFunction2(vf2;"
                              Name 20  "inF0"
                              Name 28  "PixelShaderFunction3(vf3;"
                              Name 27  "inF0"
                              Name 35  "PixelShaderFunction(vf4;"
                              Name 34  "inF0"
                              Name 38  "@main("
                              Name 104  "@entryPointOutput"
                              Decorate 104(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeInt 32 0
               9:             TypeFunction 8(int) 7(ptr)
              16:             TypeVector 6(float) 2
              17:             TypePointer Function 16(fvec2)
              18:             TypeVector 8(int) 2
              19:             TypeFunction 18(ivec2) 17(ptr)
              23:             TypeVector 6(float) 3
              24:             TypePointer Function 23(fvec3)
              25:             TypeVector 8(int) 3
              26:             TypeFunction 25(ivec3) 24(ptr)
              30:             TypeVector 6(float) 4
              31:             TypePointer Function 30(fvec4)
              32:             TypeVector 8(int) 4
              33:             TypeFunction 32(ivec4) 31(ptr)
              37:             TypeFunction 30(fvec4)
              41:    6(float) Constant 0
              51:      8(int) Constant 0
              56:      8(int) Constant 1
              72:      8(int) Constant 2
              92:      8(int) Constant 3
             100:   30(fvec4) ConstantComposite 41 41 41 41
             103:             TypePointer Output 30(fvec4)
104(@entryPointOutput):    103(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
             105:   30(fvec4) FunctionCall 38(@main()
                              Store 104(@entryPointOutput) 105
                              Return
                              FunctionEnd
11(PixelShaderFunctionS(f1;):      8(int) Function None 9
        10(inF0):      7(ptr) FunctionParameter
              12:             Label
              40:    6(float) Load 10(inF0)
              42:   16(fvec2) CompositeConstruct 40 41
              43:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 42
                              ReturnValue 43
                              FunctionEnd
14(PixelShaderFunction1(vf1;):      8(int) Function None 9
        13(inF0):      7(ptr) FunctionParameter
              15:             Label
              46:    6(float) Load 13(inF0)
              47:   16(fvec2) CompositeConstruct 46 41
              48:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 47
                              ReturnValue 48
                              FunctionEnd
21(PixelShaderFunction2(vf2;):   18(ivec2) Function None 19
        20(inF0):     17(ptr) FunctionParameter
              22:             Label
              52:      7(ptr) AccessChain 20(inF0) 51
              53:    6(float) Load 52
              54:   16(fvec2) CompositeConstruct 53 41
              55:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 54
              57:      7(ptr) AccessChain 20(inF0) 56
              58:    6(float) Load 57
              59:   16(fvec2) CompositeConstruct 58 41
              60:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 59
              61:   18(ivec2) CompositeConstruct 55 60
                              ReturnValue 61
                              FunctionEnd
28(PixelShaderFunction3(vf3;):   25(ivec3) Function None 26
        27(inF0):     24(ptr) FunctionParameter
              29:             Label
              64:      7(ptr) AccessChain 27(inF0) 51
              65:    6(float) Load 64
              66:   16(fvec2) CompositeConstruct 65 41
              67:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 66
              68:      7(ptr) AccessChain 27(inF0) 56
              69:    6(float) Load 68
              70:   16(fvec2) CompositeConstruct 69 41
              71:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 70
              73:      7(ptr) AccessChain 27(inF0) 72
              74:    6(float) Load 73
              75:   16(fvec2) CompositeConstruct 74 41
              76:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 75
              77:   25(ivec3) CompositeConstruct 67 71 76
                              ReturnValue 77
                              FunctionEnd
35(PixelShaderFunction(vf4;):   32(ivec4) Function None 33
        34(inF0):     31(ptr) FunctionParameter
              36:             Label
              80:      7(ptr) AccessChain 34(inF0) 51
              81:    6(float) Load 80
              82:   16(fvec2) CompositeConstruct 81 41
              83:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 82
              84:      7(ptr) AccessChain 34(inF0) 56
              85:    6(float) Load 84
              86:   16(fvec2) CompositeConstruct 85 41
              87:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 86
              88:      7(ptr) AccessChain 34(inF0) 72
              89:    6(float) Load 88
              90:   16(fvec2) CompositeConstruct 89 41
              91:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 90
              93:      7(ptr) AccessChain 34(inF0) 92
              94:    6(float) Load 93
              95:   16(fvec2) CompositeConstruct 94 41
              96:      8(int) ExtInst 1(GLSL.std.450) 58(PackHalf2x16) 95
              97:   32(ivec4) CompositeConstruct 83 87 91 96
                              ReturnValue 97
                              FunctionEnd
      38(@main():   30(fvec4) Function None 37
              39:             Label
                              ReturnValue 100
                              FunctionEnd
