hlsl.float1.frag
Shader version: 500
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:5  Function Definition: ShaderFunction(vf1;f1; ( temp 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:

WARNING: Linking fragment stage: Entry point not found

Shader version: 500
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:5  Function Definition: ShaderFunction(vf1;f1; ( temp 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)

error: SPIRV-Tools Validation Errors
error: Expected int scalar or vector type as Result Type: IMul
  %20 = OpIMul %float %18 %19

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

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