hlsl.structStructName.frag
Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: @main( ( temp int)
0:4    Function Parameters: 
0:?     Sequence
0:6      Branch: Return with expression
0:6        s: direct index for structure ( temp int)
0:6          't' ( temp structure{ temp int s})
0:6          Constant:
0:6            0 (const int)
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      move second child to first child ( temp int)
0:?         '@entryPointOutput' (layout( location=0) out int)
0:4        Function Call: @main( ( temp int)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out int)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
0:? Sequence
0:4  Function Definition: @main( ( temp int)
0:4    Function Parameters: 
0:?     Sequence
0:6      Branch: Return with expression
0:6        s: direct index for structure ( temp int)
0:6          't' ( temp structure{ temp int s})
0:6          Constant:
0:6            0 (const int)
0:4  Function Definition: main( ( temp void)
0:4    Function Parameters: 
0:?     Sequence
0:4      move second child to first child ( temp int)
0:?         '@entryPointOutput' (layout( location=0) out int)
0:4        Function Call: @main( ( temp int)
0:?   Linker Objects
0:?     '@entryPointOutput' (layout( location=0) out int)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 20
                              ExecutionMode 4 OriginUpperLeft
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "@main("
                              Name 10  "S"
                              MemberName 10(S) 0  "s"
                              Name 12  "t"
                              Name 20  "@entryPointOutput"
                              Decorate 20(@entryPointOutput) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypeFunction 6(int)
           10(S):             TypeStruct 6(int)
              11:             TypePointer Function 10(S)
              13:      6(int) Constant 0
              14:             TypePointer Function 6(int)
              19:             TypePointer Output 6(int)
20(@entryPointOutput):     19(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
              21:      6(int) FunctionCall 8(@main()
                              Store 20(@entryPointOutput) 21
                              Return
                              FunctionEnd
       8(@main():      6(int) Function None 7
               9:             Label
           12(t):     11(ptr) Variable Function
              15:     14(ptr) AccessChain 12(t) 13
              16:      6(int) Load 15
                              ReturnValue 16
                              FunctionEnd
