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): 80006
// 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
               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
