spv.unit1.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: main( ( global void)
0:10    Function Parameters: 
0:12    Sequence
0:12      move second child to first child ( temp highp float)
0:12        'f' ( global highp float)
0:12        Constant:
0:12          10.000000
0:13      Sequence
0:13        move second child to first child ( temp highp float)
0:13          'g' ( temp highp float)
0:13          Function Call: foo( ( global highp float)
0:14      add second child into first child ( temp highp float)
0:14        'f' ( global highp float)
0:14        'g' ( temp highp float)
0:15      add second child into first child ( temp highp float)
0:15        'f' ( global highp float)
0:15        direct index ( temp highp float)
0:15          'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:15          Constant:
0:15            1 (const int)
0:?   Linker Objects
0:?     'f' ( global highp float)
0:?     'a1' ( global highp float)
0:?     'cout' ( out highp float)

spv.unit2.frag
Shader version: 410
gl_FragCoord origin is upper left
0:? Sequence
0:12  Function Definition: foo( ( global highp float)
0:12    Function Parameters: 
0:14    Sequence
0:14      Sequence
0:14        move second child to first child ( temp highp float)
0:14          'h2' ( temp highp float)
0:14          add ( temp highp float)
0:14            component-wise multiply ( temp highp float)
0:14              Constant:
0:14                2.000000
0:14              'f' ( global highp float)
0:14            'cin' ( smooth in highp float)
0:15      Sequence
0:15        move second child to first child ( temp highp float)
0:15          'g2' ( temp highp float)
0:15          Function Call: bar( ( global highp float)
0:16      Branch: Return with expression
0:16        add ( temp highp float)
0:16          add ( temp highp float)
0:16            'h2' ( temp highp float)
0:16            'g2' ( temp highp float)
0:16          direct index ( temp highp float)
0:16            'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:16            Constant:
0:16              1 (const int)
0:?   Linker Objects
0:?     'a2' ( global highp float)
0:?     'f' ( global highp float)
0:?     'cout' ( out highp float)
0:?     'cin' ( smooth in highp float)

spv.unit3.frag
Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:4  Sequence
0:4    move second child to first child ( temp highp float)
0:4      'h3' ( global highp float)
0:4      Constant:
0:4        3.000000
0:9  Function Definition: bar( ( global highp float)
0:9    Function Parameters: 
0:11    Sequence
0:11      multiply second child into first child ( temp highp float)
0:11        'h3' ( global highp float)
0:11        'f' ( global highp float)
0:12      Sequence
0:12        move second child to first child ( temp highp float)
0:12          'g3' ( temp highp float)
0:12          component-wise multiply ( temp highp float)
0:12            Constant:
0:12              2.000000
0:12            'h3' ( global highp float)
0:13      move second child to first child ( temp highp float)
0:13        'cout' ( out highp float)
0:13        'g3' ( temp highp float)
0:14      Branch: Return with expression
0:14        add ( temp highp float)
0:14          add ( temp highp float)
0:14            'h3' ( global highp float)
0:14            'g3' ( temp highp float)
0:14          direct index ( temp highp float)
0:14            'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:14            Constant:
0:14              1 (const int)
0:?   Linker Objects
0:?     'f' ( global highp float)
0:?     'h3' ( global highp float)
0:?     'cout' ( out highp float)
0:?     'cin' ( smooth in highp float)


Linked fragment stage:


Shader version: 460
gl_FragCoord origin is upper left
0:? Sequence
0:10  Function Definition: main( ( global void)
0:10    Function Parameters: 
0:12    Sequence
0:12      move second child to first child ( temp highp float)
0:12        'f' ( global highp float)
0:12        Constant:
0:12          10.000000
0:13      Sequence
0:13        move second child to first child ( temp highp float)
0:13          'g' ( temp highp float)
0:13          Function Call: foo( ( global highp float)
0:14      add second child into first child ( temp highp float)
0:14        'f' ( global highp float)
0:14        'g' ( temp highp float)
0:15      add second child into first child ( temp highp float)
0:15        'f' ( global highp float)
0:15        direct index ( temp highp float)
0:15          'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:15          Constant:
0:15            1 (const int)
0:12  Function Definition: foo( ( global highp float)
0:12    Function Parameters: 
0:14    Sequence
0:14      Sequence
0:14        move second child to first child ( temp highp float)
0:14          'h2' ( temp highp float)
0:14          add ( temp highp float)
0:14            component-wise multiply ( temp highp float)
0:14              Constant:
0:14                2.000000
0:14              'f' ( global highp float)
0:14            'cin' ( smooth in highp float)
0:15      Sequence
0:15        move second child to first child ( temp highp float)
0:15          'g2' ( temp highp float)
0:15          Function Call: bar( ( global highp float)
0:16      Branch: Return with expression
0:16        add ( temp highp float)
0:16          add ( temp highp float)
0:16            'h2' ( temp highp float)
0:16            'g2' ( temp highp float)
0:16          direct index ( temp highp float)
0:16            'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:16            Constant:
0:16              1 (const int)
0:4  Sequence
0:4    move second child to first child ( temp highp float)
0:4      'h3' ( global highp float)
0:4      Constant:
0:4        3.000000
0:9  Function Definition: bar( ( global highp float)
0:9    Function Parameters: 
0:11    Sequence
0:11      multiply second child into first child ( temp highp float)
0:11        'h3' ( global highp float)
0:11        'f' ( global highp float)
0:12      Sequence
0:12        move second child to first child ( temp highp float)
0:12          'g3' ( temp highp float)
0:12          component-wise multiply ( temp highp float)
0:12            Constant:
0:12              2.000000
0:12            'h3' ( global highp float)
0:13      move second child to first child ( temp highp float)
0:13        'cout' ( out highp float)
0:13        'g3' ( temp highp float)
0:14      Branch: Return with expression
0:14        add ( temp highp float)
0:14          add ( temp highp float)
0:14            'h3' ( global highp float)
0:14            'g3' ( temp highp float)
0:14          direct index ( temp highp float)
0:14            'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:14            Constant:
0:14              1 (const int)
0:?   Linker Objects
0:?     'f' ( global highp float)
0:?     'a1' ( global highp float)
0:?     'cout' ( out highp float)
0:?     'a2' ( global highp float)
0:?     'cin' ( smooth in highp float)
0:?     'h3' ( global highp float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 25 37 57
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 460
                              Name 4  "main"
                              Name 8  "foo("
                              Name 10  "bar("
                              Name 13  "h3"
                              Name 15  "f"
                              Name 18  "g"
                              Name 25  "gl_FragCoord"
                              Name 33  "h2"
                              Name 37  "cin"
                              Name 40  "g2"
                              Name 53  "g3"
                              Name 57  "cout"
                              Name 67  "a1"
                              Name 68  "a2"
                              Decorate 25(gl_FragCoord) BuiltIn FragCoord
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeFunction 6(float)
              12:             TypePointer Private 6(float)
          13(h3):     12(ptr) Variable Private
              14:    6(float) Constant 1077936128
           15(f):     12(ptr) Variable Private
              16:    6(float) Constant 1092616192
              17:             TypePointer Function 6(float)
              23:             TypeVector 6(float) 4
              24:             TypePointer Input 23(fvec4)
25(gl_FragCoord):     24(ptr) Variable Input
              26:             TypeInt 32 0
              27:     26(int) Constant 1
              28:             TypePointer Input 6(float)
              34:    6(float) Constant 1073741824
         37(cin):     28(ptr) Variable Input
              56:             TypePointer Output 6(float)
        57(cout):     56(ptr) Variable Output
          67(a1):     12(ptr) Variable Private
          68(a2):     12(ptr) Variable Private
         4(main):           2 Function None 3
               5:             Label
           18(g):     17(ptr) Variable Function
                              Store 13(h3) 14
                              Store 15(f) 16
              19:    6(float) FunctionCall 8(foo()
                              Store 18(g) 19
              20:    6(float) Load 18(g)
              21:    6(float) Load 15(f)
              22:    6(float) FAdd 21 20
                              Store 15(f) 22
              29:     28(ptr) AccessChain 25(gl_FragCoord) 27
              30:    6(float) Load 29
              31:    6(float) Load 15(f)
              32:    6(float) FAdd 31 30
                              Store 15(f) 32
                              Return
                              FunctionEnd
         8(foo():    6(float) Function None 7
               9:             Label
          33(h2):     17(ptr) Variable Function
          40(g2):     17(ptr) Variable Function
              35:    6(float) Load 15(f)
              36:    6(float) FMul 34 35
              38:    6(float) Load 37(cin)
              39:    6(float) FAdd 36 38
                              Store 33(h2) 39
              41:    6(float) FunctionCall 10(bar()
                              Store 40(g2) 41
              42:    6(float) Load 33(h2)
              43:    6(float) Load 40(g2)
              44:    6(float) FAdd 42 43
              45:     28(ptr) AccessChain 25(gl_FragCoord) 27
              46:    6(float) Load 45
              47:    6(float) FAdd 44 46
                              ReturnValue 47
                              FunctionEnd
        10(bar():    6(float) Function None 7
              11:             Label
          53(g3):     17(ptr) Variable Function
              50:    6(float) Load 15(f)
              51:    6(float) Load 13(h3)
              52:    6(float) FMul 51 50
                              Store 13(h3) 52
              54:    6(float) Load 13(h3)
              55:    6(float) FMul 34 54
                              Store 53(g3) 55
              58:    6(float) Load 53(g3)
                              Store 57(cout) 58
              59:    6(float) Load 13(h3)
              60:    6(float) Load 53(g3)
              61:    6(float) FAdd 59 60
              62:     28(ptr) AccessChain 25(gl_FragCoord) 27
              63:    6(float) Load 62
              64:    6(float) FAdd 61 63
                              ReturnValue 64
                              FunctionEnd
