hlsl.typedef.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float)
0:4    Function Parameters: 
0:4      'input' ( in 4-component vector of float)
0:4      'ii' ( in int)
0:?     Sequence
0:6      Sequence
0:6        move second child to first child ( temp 4-component vector of float)
0:6          'a1' ( temp 4-component vector of float)
0:6          Constant:
0:6            1.000000
0:6            1.000000
0:6            1.000000
0:6            1.000000
0:7      Sequence
0:7        move second child to first child ( temp int)
0:7          'i' ( temp int)
0:7          Constant:
0:7            2 (const int)
0:9      Sequence
0:9        move second child to first child ( temp int)
0:9          'j' ( temp int)
0:9          'ii' ( in int)
0:10      Branch: Return with expression
0:10        add ( temp 4-component vector of float)
0:10          component-wise multiply ( temp 4-component vector of float)
0:10            'input' ( in 4-component vector of float)
0:10            'a1' ( temp 4-component vector of float)
0:10          Construct vec4 ( uniform 4-component vector of float)
0:10            Convert int to float ( temp float)
0:10              add ( temp int)
0:10                'i' ( temp int)
0:10                'j' ( temp int)
0:?   Linker Objects


Linked fragment stage:

WARNING: Linking fragment stage: Entry point not found

Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: ShaderFunction(vf4;i1; ( temp 4-component vector of float)
0:4    Function Parameters: 
0:4      'input' ( in 4-component vector of float)
0:4      'ii' ( in int)
0:?     Sequence
0:6      Sequence
0:6        move second child to first child ( temp 4-component vector of float)
0:6          'a1' ( temp 4-component vector of float)
0:6          Constant:
0:6            1.000000
0:6            1.000000
0:6            1.000000
0:6            1.000000
0:7      Sequence
0:7        move second child to first child ( temp int)
0:7          'i' ( temp int)
0:7          Constant:
0:7            2 (const int)
0:9      Sequence
0:9        move second child to first child ( temp int)
0:9          'j' ( temp int)
0:9          'ii' ( in int)
0:10      Branch: Return with expression
0:10        add ( temp 4-component vector of float)
0:10          component-wise multiply ( temp 4-component vector of float)
0:10            'input' ( in 4-component vector of float)
0:10            'a1' ( temp 4-component vector of float)
0:10          Construct vec4 ( uniform 4-component vector of float)
0:10            Convert int to float ( temp float)
0:10              add ( temp int)
0:10                'i' ( temp int)
0:10                'j' ( temp int)
0:?   Linker Objects

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "PixelShaderFunction"
                              Name 14  "ShaderFunction(vf4;i1;"
                              Name 12  "input"
                              Name 13  "ii"
                              Name 16  "a1"
                              Name 19  "i"
                              Name 21  "j"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeInt 32 1
              10:             TypePointer Function 9(int)
              11:             TypeFunction 7(fvec4) 8(ptr) 10(ptr)
              17:    6(float) Constant 1065353216
              18:    7(fvec4) ConstantComposite 17 17 17 17
              20:      9(int) Constant 2
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
14(ShaderFunction(vf4;i1;):    7(fvec4) Function None 11
       12(input):      8(ptr) FunctionParameter
          13(ii):     10(ptr) FunctionParameter
              15:             Label
          16(a1):      8(ptr) Variable Function
           19(i):     10(ptr) Variable Function
           21(j):     10(ptr) Variable Function
                              Store 16(a1) 18
                              Store 19(i) 20
              22:      9(int) Load 13(ii)
                              Store 21(j) 22
              23:    7(fvec4) Load 12(input)
              24:    7(fvec4) Load 16(a1)
              25:    7(fvec4) FMul 23 24
              26:      9(int) Load 19(i)
              27:      9(int) Load 21(j)
              28:      9(int) IAdd 26 27
              29:    6(float) ConvertSToF 28
              30:    7(fvec4) CompositeConstruct 29 29 29 29
              31:    7(fvec4) FAdd 25 30
                              ReturnValue 31
                              FunctionEnd
