hlsl.multiReturn.frag
Shader version: 450
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:?   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: 450
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:?   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): 80001
// Id's are bound by 39

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main"
                              ExecutionMode 4 OriginUpperLeft
                              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  "S"
                              MemberName 13(S) 0  "f"
                              MemberName 13(S) 1  "v"
                              MemberName 13(S) 2  "m"
                              Name 14  "bufName"
                              MemberName 14(bufName) 0  "s"
                              Name 16  ""
                              MemberDecorate 13(S) 0 Offset 0
                              MemberDecorate 13(S) 1 Offset 16
                              MemberDecorate 13(S) 2 RowMajor
                              MemberDecorate 13(S) 2 Offset 32
                              MemberDecorate 13(S) 2 MatrixStride 16
                              MemberDecorate 14(bufName) 0 Offset 0
                              Decorate 14(bufName) Block
                              Decorate 16 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)
           13(S):             TypeStruct 6(float) 7(fvec3) 8
     14(bufName):             TypeStruct 13(S)
              15:             TypePointer Uniform 14(bufName)
              16:     15(ptr) Variable Uniform
              17:             TypeInt 32 1
              18:     17(int) Constant 0
              19:             TypePointer Uniform 13(S)
              22:             TypePointer Function 9(S)
              25:             TypePointer Function 6(float)
              28:     17(int) Constant 1
              29:             TypePointer Function 7(fvec3)
              32:     17(int) Constant 2
              33:             TypePointer Function 8
         4(main):           2 Function None 3
               5:             Label
              38:        9(S) FunctionCall 11(foo()
                              Return
                              FunctionEnd
        11(foo():        9(S) Function None 10
              12:             Label
              23:     22(ptr) Variable Function
              20:     19(ptr) AccessChain 16 18
              21:       13(S) Load 20
              24:    6(float) CompositeExtract 21 0
              26:     25(ptr) AccessChain 23 18
                              Store 26 24
              27:    7(fvec3) CompositeExtract 21 1
              30:     29(ptr) AccessChain 23 28
                              Store 30 27
              31:           8 CompositeExtract 21 2
              34:     33(ptr) AccessChain 23 32
                              Store 34 31
              35:        9(S) Load 23
                              ReturnValue 35
                              FunctionEnd
