spv.forwardFun.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 64

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 20 30 36 63
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 6  "bar("
                              Name 10  "unreachableReturn("
                              Name 16  "foo(vf4;"
                              Name 15  "bar"
                              Name 18  "color"
                              Name 20  "BaseColor"
                              Name 21  "param"
                              Name 27  "f"
                              Name 30  "gl_FragColor"
                              Name 36  "d"
                              Name 63  "bigColor"
                              Decorate 10(unreachableReturn() RelaxedPrecision
                              Decorate 16(foo(vf4;) RelaxedPrecision
                              Decorate 15(bar) RelaxedPrecision
                              Decorate 18(color) RelaxedPrecision
                              Decorate 20(BaseColor) RelaxedPrecision
                              Decorate 21(param) RelaxedPrecision
                              Decorate 22 RelaxedPrecision
                              Decorate 23 RelaxedPrecision
                              Decorate 24 RelaxedPrecision
                              Decorate 27(f) RelaxedPrecision
                              Decorate 28 RelaxedPrecision
                              Decorate 30(gl_FragColor) RelaxedPrecision
                              Decorate 30(gl_FragColor) Location 0
                              Decorate 31 RelaxedPrecision
                              Decorate 32 RelaxedPrecision
                              Decorate 33 RelaxedPrecision
                              Decorate 36(d) RelaxedPrecision
                              Decorate 37 RelaxedPrecision
                              Decorate 44 RelaxedPrecision
                              Decorate 45 RelaxedPrecision
                              Decorate 49 RelaxedPrecision
                              Decorate 50 RelaxedPrecision
                              Decorate 56 RelaxedPrecision
                              Decorate 59 RelaxedPrecision
                              Decorate 60 RelaxedPrecision
                              Decorate 63(bigColor) RelaxedPrecision
               2:             TypeVoid
               3:             TypeFunction 2
               8:             TypeFloat 32
               9:             TypeFunction 8(float)
              12:             TypeVector 8(float) 4
              13:             TypePointer Function 12(fvec4)
              14:             TypeFunction 8(float) 13(ptr)
              19:             TypePointer Input 12(fvec4)
   20(BaseColor):     19(ptr) Variable Input
              26:             TypePointer Function 8(float)
              29:             TypePointer Output 12(fvec4)
30(gl_FragColor):     29(ptr) Variable Output
              35:             TypePointer Input 8(float)
           36(d):     35(ptr) Variable Input
              38:    8(float) Constant 1082549862
              39:             TypeBool
              43:    8(float) Constant 1067030938
              48:    8(float) Constant 1083179008
              53:             TypeInt 32 0
              54:     53(int) Constant 0
              57:     53(int) Constant 1
    63(bigColor):     19(ptr) Variable Input
         4(main):           2 Function None 3
               5:             Label
       18(color):     13(ptr) Variable Function
       21(param):     13(ptr) Variable Function
           27(f):     26(ptr) Variable Function
              22:   12(fvec4) Load 20(BaseColor)
                              Store 21(param) 22
              23:    8(float) FunctionCall 16(foo(vf4;) 21(param)
              24:   12(fvec4) CompositeConstruct 23 23 23 23
                              Store 18(color) 24
              25:           2 FunctionCall 6(bar()
              28:    8(float) FunctionCall 10(unreachableReturn()
                              Store 27(f) 28
              31:   12(fvec4) Load 18(color)
              32:    8(float) Load 27(f)
              33:   12(fvec4) VectorTimesScalar 31 32
                              Store 30(gl_FragColor) 33
                              Return
                              FunctionEnd
         6(bar():           2 Function None 3
               7:             Label
                              Return
                              FunctionEnd
10(unreachableReturn():    8(float) Function None 9
              11:             Label
              44:     26(ptr) Variable Function
              49:     26(ptr) Variable Function
              34:           2 FunctionCall 6(bar()
              37:    8(float) Load 36(d)
              40:    39(bool) FOrdLessThan 37 38
                              SelectionMerge 42 None
                              BranchConditional 40 41 47
              41:               Label
                                Store 44 43
              45:    8(float)   Load 44
                                ReturnValue 45
              47:               Label
                                Store 49 48
              50:    8(float)   Load 49
                                ReturnValue 50
              42:             Label
                              Unreachable
                              FunctionEnd
    16(foo(vf4;):    8(float) Function None 14
         15(bar):     13(ptr) FunctionParameter
              17:             Label
              55:     26(ptr) AccessChain 15(bar) 54
              56:    8(float) Load 55
              58:     26(ptr) AccessChain 15(bar) 57
              59:    8(float) Load 58
              60:    8(float) FAdd 56 59
                              ReturnValue 60
                              FunctionEnd
