hlsl.multiReturn.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: foo( ( temp structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:12    Function Parameters: 
0:?     Sequence
0:13      Branch: Return with expression
0:13        s: direct index for structure (layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:13          'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m} s})
0:13          Constant:
0:13            0 (const uint)
0:17  Function Definition: @main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:18      Function Call: foo( ( temp structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:17  Function Definition: main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:17      Function Call: @main( ( temp void)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m} s})


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: foo( ( temp structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:12    Function Parameters: 
0:?     Sequence
0:13      Branch: Return with expression
0:13        s: direct index for structure (layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:13          'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m} s})
0:13          Constant:
0:13            0 (const uint)
0:17  Function Definition: @main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:18      Function Call: foo( ( temp structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m})
0:17  Function Definition: main( ( temp void)
0:17    Function Parameters: 
0:?     Sequence
0:17      Function Call: @main( ( temp void)
0:?   Linker Objects
0:?     'anon@0' (layout( row_major std140) uniform block{layout( row_major std140) uniform structure{ temp float f,  temp 3-component vector of float v,  temp 3X3 matrix of float m} s})

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 9  "S"
                              MemberName 9(S) 0  "f"
                              MemberName 9(S) 1  "v"
                              MemberName 9(S) 2  "m"
                              Name 11  "foo("
                              Name 13  "@main("
                              Name 15  "S"
                              MemberName 15(S) 0  "f"
                              MemberName 15(S) 1  "v"
                              MemberName 15(S) 2  "m"
                              Name 16  "bufName"
                              MemberName 16(bufName) 0  "s"
                              Name 18  ""
                              MemberDecorate 15(S) 0 Offset 0
                              MemberDecorate 15(S) 1 Offset 4
                              MemberDecorate 15(S) 2 RowMajor
                              MemberDecorate 15(S) 2 Offset 16
                              MemberDecorate 15(S) 2 MatrixStride 16
                              MemberDecorate 16(bufName) 0 Offset 0
                              Decorate 16(bufName) Block
                              Decorate 18 DescriptorSet 0
                              Decorate 18 Binding 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 3
               8:             TypeMatrix 7(fvec3) 3
            9(S):             TypeStruct 6(float) 7(fvec3) 8
              10:             TypeFunction 9(S)
           15(S):             TypeStruct 6(float) 7(fvec3) 8
     16(bufName):             TypeStruct 15(S)
              17:             TypePointer Uniform 16(bufName)
              18:     17(ptr) Variable Uniform
              19:             TypeInt 32 1
              20:     19(int) Constant 0
              21:             TypePointer Uniform 15(S)
              24:             TypePointer Function 9(S)
              27:             TypePointer Function 6(float)
              30:     19(int) Constant 1
              31:             TypePointer Function 7(fvec3)
              34:     19(int) Constant 2
              35:             TypePointer Function 8
         4(main):           2 Function None 3
               5:             Label
              41:           2 FunctionCall 13(@main()
                              Return
                              FunctionEnd
        11(foo():        9(S) Function None 10
              12:             Label
              25:     24(ptr) Variable Function
              22:     21(ptr) AccessChain 18 20
              23:       15(S) Load 22
              26:    6(float) CompositeExtract 23 0
              28:     27(ptr) AccessChain 25 20
                              Store 28 26
              29:    7(fvec3) CompositeExtract 23 1
              32:     31(ptr) AccessChain 25 30
                              Store 32 29
              33:           8 CompositeExtract 23 2
              36:     35(ptr) AccessChain 25 34
                              Store 36 33
              37:        9(S) Load 25
                              ReturnValue 37
                              FunctionEnd
      13(@main():           2 Function None 3
              14:             Label
              40:        9(S) FunctionCall 11(foo()
                              Return
                              FunctionEnd
