spv.functionCall.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release
WARNING: 0:4: varying deprecated in version 130; may be removed in future release
WARNING: 0:5: varying deprecated in version 130; may be removed in future release

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

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