hlsl.typedef.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: ShaderFunction(vf4;i1; (global 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 (global 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:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: ShaderFunction(vf4;i1; (global 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 (global 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): 80001
// Id's are bound by 34

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              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
                              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
