hlsl.matType.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float)
0:9    Function Parameters: 
0:9      'inFloat1' ( in 1-component vector of float)
0:9      'inScalar' ( in float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'inFloat1' ( in 1-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1,  uniform 1X1 matrix of float fmat11,  uniform 4X1 matrix of float fmat41,  uniform 1X2 matrix of float fmat12,  uniform 2X3 matrix of double dmat23,  uniform 4X4 matrix of int int44})


Linked fragment stage:

WARNING: Linking fragment stage: Entry point not found

Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:9  Function Definition: ShaderFunction(vf1;f1; ( temp 1-component vector of float)
0:9    Function Parameters: 
0:9      'inFloat1' ( in 1-component vector of float)
0:9      'inScalar' ( in float)
0:?     Sequence
0:10      Branch: Return with expression
0:10        'inFloat1' ( in 1-component vector of float)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{ uniform 1-component vector of float f1,  uniform 1X1 matrix of float fmat11,  uniform 4X1 matrix of float fmat41,  uniform 1X2 matrix of float fmat12,  uniform 2X3 matrix of double dmat23,  uniform 4X4 matrix of int int44})

error: SPIRV-Tools Validation Errors
error: Illegal number of components (1) for TypeVector
  %v1float = OpTypeVector %float 1

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

                              Capability Shader
                              Capability Float64
               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 27  "$Global"
                              MemberName 27($Global) 0  "f1"
                              MemberName 27($Global) 1  "fmat11"
                              MemberName 27($Global) 2  "fmat41"
                              MemberName 27($Global) 3  "fmat12"
                              MemberName 27($Global) 4  "dmat23"
                              MemberName 27($Global) 5  "int44"
                              Name 29  ""
                              MemberDecorate 27($Global) 0 Offset 0
                              MemberDecorate 27($Global) 1 RowMajor
                              MemberDecorate 27($Global) 1 Offset 16
                              MemberDecorate 27($Global) 1 MatrixStride 16
                              MemberDecorate 27($Global) 2 RowMajor
                              MemberDecorate 27($Global) 2 Offset 32
                              MemberDecorate 27($Global) 2 MatrixStride 16
                              MemberDecorate 27($Global) 3 RowMajor
                              MemberDecorate 27($Global) 3 Offset 48
                              MemberDecorate 27($Global) 3 MatrixStride 16
                              MemberDecorate 27($Global) 4 RowMajor
                              MemberDecorate 27($Global) 4 Offset 80
                              MemberDecorate 27($Global) 4 MatrixStride 16
                              MemberDecorate 27($Global) 5 RowMajor
                              MemberDecorate 27($Global) 5 Offset 128
                              MemberDecorate 27($Global) 5 MatrixStride 16
                              Decorate 27($Global) Block
                              Decorate 29 DescriptorSet 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypePointer Function 6(float)
               8:             TypeFunction 6(float) 7(ptr) 7(ptr)
              16:             TypeVector 6(float) 1
              17:             TypeMatrix 16(fvec) 1
              18:             TypeMatrix 16(fvec) 4
              19:             TypeVector 6(float) 2
              20:             TypeMatrix 19(fvec2) 1
              21:             TypeFloat 64
              22:             TypeVector 21(float64_t) 3
              23:             TypeMatrix 22(f64vec3) 2
              24:             TypeInt 32 1
              25:             TypeVector 24(int) 4
              26:             TypeMatrix 25(ivec4) 4
     27($Global):             TypeStruct 6(float) 17 18 20 23 26
              28:             TypePointer Uniform 27($Global)
              29:     28(ptr) Variable Uniform
4(PixelShaderFunction):           2 Function None 3
               5:             Label
                              Return
                              FunctionEnd
11(ShaderFunction(vf1;f1;):    6(float) Function None 8
     9(inFloat1):      7(ptr) FunctionParameter
    10(inScalar):      7(ptr) FunctionParameter
              12:             Label
              13:    6(float) Load 9(inFloat1)
                              ReturnValue 13
                              FunctionEnd
