hlsl.float1.frag
Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1  Sequence
0:1    move second child to first child (temp 1-component vector of float)
0:1      'f1' (global 1-component vector of float)
0:1      Constant:
0:1        1.000000
0:2  Sequence
0:2    move second child to first child (temp float)
0:2      'scalar' (global float)
0:2      Constant:
0:2        2.000000
0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
0:5    Function Parameters: 
0:5      'inFloat1' (in 1-component vector of float)
0:5      'inScalar' (in float)
0:?     Sequence
0:6      Branch: Return with expression
0:6        add (temp 1-component vector of float)
0:6          vector-scale (temp 1-component vector of float)
0:6            'f1' (global 1-component vector of float)
0:6            'scalar' (global float)
0:6          vector-scale (temp 1-component vector of float)
0:6            'inFloat1' (in 1-component vector of float)
0:6            'inScalar' (in float)
0:?   Linker Objects
0:?     'f1' (global 1-component vector of float)
0:?     'scalar' (global float)


Linked fragment stage:


Shader version: 450
gl_FragCoord origin is upper left
0:? Sequence
0:1  Sequence
0:1    move second child to first child (temp 1-component vector of float)
0:1      'f1' (global 1-component vector of float)
0:1      Constant:
0:1        1.000000
0:2  Sequence
0:2    move second child to first child (temp float)
0:2      'scalar' (global float)
0:2      Constant:
0:2        2.000000
0:8  Function Definition: ShaderFunction(vf1;f1; (global 1-component vector of float)
0:5    Function Parameters: 
0:5      'inFloat1' (in 1-component vector of float)
0:5      'inScalar' (in float)
0:?     Sequence
0:6      Branch: Return with expression
0:6        add (temp 1-component vector of float)
0:6          vector-scale (temp 1-component vector of float)
0:6            'f1' (global 1-component vector of float)
0:6            'scalar' (global float)
0:6          vector-scale (temp 1-component vector of float)
0:6            'inFloat1' (in 1-component vector of float)
0:6            'inScalar' (in float)
0:?   Linker Objects
0:?     'f1' (global 1-component vector of float)
0:?     'scalar' (global float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "PixelShaderFunction"
                              ExecutionMode 4 OriginUpperLeft
                              Name 4  "PixelShaderFunction"
                              Name 11  "ShaderFunction(vf1;f1;"
                              Name 9  "inFloat1"
                              Name 10  "inScalar"
                              Name 14  "f1"
                              Name 16  "scalar"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 6(float) 7(ptr) 7(ptr)
              13:             TypePointer Private 6(float)
          14(f1):     13(ptr) Variable Private
              15:    6(float) Constant 1065353216
      16(scalar):     13(ptr) Variable Private
              17:    6(float) Constant 1073741824
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              Store 14(f1) 15
                              Store 16(scalar) 17
                              FunctionEnd
11(ShaderFunction(vf1;f1;):    6(float) Function None 8
     9(inFloat1):      7(ptr) FunctionParameter
    10(inScalar):      7(ptr) FunctionParameter
              12:             Label
              18:    6(float) Load 14(f1)
              19:    6(float) Load 16(scalar)
              20:    6(float) IMul 18 19
              21:    6(float) Load 9(inFloat1)
              22:    6(float) Load 10(inScalar)
              23:    6(float) IMul 21 22
              24:    6(float) FAdd 20 23
                              ReturnValue 24
                              FunctionEnd
