spv.functionControlAttributes.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 61

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 57
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 450
                              SourceExtension  "GL_EXT_function_control_attributes"
                              Name 4  "main"
                              Name 10  "inlineFn(i1;"
                              Name 9  "i"
                              Name 13  "noinlineFn(i1;"
                              Name 12  "i"
                              Name 16  "backFn(i1;"
                              Name 15  "i"
                              Name 19  "prototypeFn(i1;"
                              Name 18  "i"
                              Name 41  "value"
                              Name 42  "param"
                              Name 44  "param"
                              Name 49  "param"
                              Name 57  "color"
                              Decorate 57(color) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFunction 6(int) 7(ptr)
              22:      6(int) Constant 1
              27:      6(int) Constant 2
              32:      6(int) Constant 3
              37:      6(int) Constant 4
              54:             TypeFloat 32
              55:             TypeVector 54(float) 4
              56:             TypePointer Output 55(fvec4)
       57(color):     56(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
       41(value):      7(ptr) Variable Function
       42(param):      7(ptr) Variable Function
       44(param):      7(ptr) Variable Function
       49(param):      7(ptr) Variable Function
                              Store 42(param) 22
              43:      6(int) FunctionCall 10(inlineFn(i1;) 42(param)
                              Store 41(value) 43
              45:      6(int) Load 41(value)
                              Store 44(param) 45
              46:      6(int) FunctionCall 13(noinlineFn(i1;) 44(param)
              47:      6(int) Load 41(value)
              48:      6(int) IAdd 47 46
                              Store 41(value) 48
              50:      6(int) Load 41(value)
                              Store 49(param) 50
              51:      6(int) FunctionCall 19(prototypeFn(i1;) 49(param)
              52:      6(int) Load 41(value)
              53:      6(int) IAdd 52 51
                              Store 41(value) 53
              58:      6(int) Load 41(value)
              59:   54(float) ConvertSToF 58
              60:   55(fvec4) CompositeConstruct 59 59 59 59
                              Store 57(color) 60
                              Return
                              FunctionEnd
10(inlineFn(i1;):      6(int) Function Inline  8
            9(i):      7(ptr) FunctionParameter
              11:             Label
              21:      6(int) Load 9(i)
              23:      6(int) IAdd 21 22
                              ReturnValue 23
                              FunctionEnd
13(noinlineFn(i1;):      6(int) Function DontInline  8
           12(i):      7(ptr) FunctionParameter
              14:             Label
              26:      6(int) Load 12(i)
              28:      6(int) IAdd 26 27
                              ReturnValue 28
                              FunctionEnd
  16(backFn(i1;):      6(int) Function Inline  8
           15(i):      7(ptr) FunctionParameter
              17:             Label
              31:      6(int) Load 15(i)
              33:      6(int) IAdd 31 32
                              ReturnValue 33
                              FunctionEnd
19(prototypeFn(i1;):      6(int) Function Inline  8
           18(i):      7(ptr) FunctionParameter
              20:             Label
              36:      6(int) Load 18(i)
              38:      6(int) IAdd 36 37
                              ReturnValue 38
                              FunctionEnd
