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): 8000b
// 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
