spv.functionSemantics.frag
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 156

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 76 152
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 400
                              Name 4  "main"
                              Name 15  "foo(i1;i1;i1;i1;i1;i1;"
                              Name 9  "a"
                              Name 10  "b"
                              Name 11  "c"
                              Name 12  "d"
                              Name 13  "e"
                              Name 14  "f"
                              Name 25  "foo2(f1;vf3;i1;"
                              Name 22  "a"
                              Name 23  "b"
                              Name 24  "r"
                              Name 28  "foo3("
                              Name 30  "sum"
                              Name 76  "u"
                              Name 89  "t"
                              Name 92  "s"
                              MemberName 92(s) 0  "t"
                              Name 94  "f"
                              Name 98  "color"
                              Name 104  "e"
                              Name 105  "param"
                              Name 106  "param"
                              Name 107  "param"
                              Name 108  "param"
                              Name 123  "ret"
                              Name 125  "tempReturn"
                              Name 130  "tempArg"
                              Name 131  "param"
                              Name 132  "param"
                              Name 133  "param"
                              Name 136  "arg"
                              Name 152  "gl_FragColor"
                              Decorate 152(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               8:             TypeFunction 6(int) 7(ptr) 6(int) 7(ptr) 6(int) 7(ptr) 7(ptr)
              17:             TypeFloat 32
              18:             TypePointer Function 17(float)
              19:             TypeVector 17(float) 3
              20:             TypePointer Function 19(fvec3)
              21:             TypeFunction 6(int) 18(ptr) 20(ptr) 7(ptr)
              27:             TypeFunction 6(int)
              38:      6(int) Constant 64
              43:      6(int) Constant 1024
              62:   17(float) Constant 1077936128
              66:   17(float) Constant 1084227584
              67:             TypeInt 32 0
              68:     67(int) Constant 1
              75:             TypePointer Input 17(float)
           76(u):     75(ptr) Variable Input
              78:   17(float) Constant 1078774989
              79:             TypeBool
              84:      6(int) Constant 1000000
              86:      6(int) Constant 2000000
              90:      6(int) Constant 2
              91:             TypeVector 6(int) 4
           92(s):             TypeStruct 91(ivec4)
              93:             TypePointer Function 92(s)
              95:      6(int) Constant 0
              96:      6(int) Constant 32
              99:      6(int) Constant 1
             103:      6(int) Constant 8
             115:      6(int) Constant 128
             124:             TypePointer Private 6(int)
 125(tempReturn):    124(ptr) Variable Private
             126:   17(float) Constant 1082130432
             127:   17(float) Constant 1065353216
             128:   17(float) Constant 1073741824
             129:   19(fvec3) ConstantComposite 127 128 62
             150:             TypeVector 17(float) 4
             151:             TypePointer Output 150(fvec4)
152(gl_FragColor):    151(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
           89(t):      7(ptr) Variable Function
           94(f):     93(ptr) Variable Function
       98(color):      7(ptr) Variable Function
          104(e):      7(ptr) Variable Function
      105(param):      7(ptr) Variable Function
      106(param):      7(ptr) Variable Function
      107(param):      7(ptr) Variable Function
      108(param):      7(ptr) Variable Function
        123(ret):     18(ptr) Variable Function
    130(tempArg):      7(ptr) Variable Function
      131(param):     18(ptr) Variable Function
      132(param):     20(ptr) Variable Function
      133(param):      7(ptr) Variable Function
        136(arg):     18(ptr) Variable Function
                              Store 89(t) 90
              97:      7(ptr) AccessChain 94(f) 95 68
                              Store 97 96
             100:      6(int) Load 89(t)
             101:      6(int) Load 89(t)
             102:      6(int) IAdd 100 101
                              Store 105(param) 99
                              Store 106(param) 102
             109:      7(ptr) AccessChain 94(f) 95 68
             110:      6(int) Load 109
                              Store 108(param) 110
             111:      6(int) FunctionCall 15(foo(i1;i1;i1;i1;i1;i1;) 105(param) 90 106(param) 103 107(param) 108(param)
             112:      6(int) Load 107(param)
                              Store 104(e) 112
             113:      6(int) Load 108(param)
             114:      7(ptr) AccessChain 94(f) 95 68
                              Store 114 113
                              Store 98(color) 111
             116:      6(int) Load 104(e)
             117:      7(ptr) AccessChain 94(f) 95 68
             118:      6(int) Load 117
             119:      6(int) IAdd 116 118
             120:      6(int) IMul 115 119
             121:      6(int) Load 98(color)
             122:      6(int) IAdd 121 120
                              Store 98(color) 122
                              Store 131(param) 126
                              Store 132(param) 129
             134:      6(int) FunctionCall 25(foo2(f1;vf3;i1;) 131(param) 132(param) 133(param)
             135:      6(int) Load 133(param)
                              Store 130(tempArg) 135
                              Store 125(tempReturn) 134
             137:      6(int) Load 130(tempArg)
             138:   17(float) ConvertSToF 137
                              Store 136(arg) 138
             139:      6(int) Load 125(tempReturn)
             140:   17(float) ConvertSToF 139
                              Store 123(ret) 140
             141:   17(float) Load 123(ret)
             142:   17(float) Load 136(arg)
             143:   17(float) FAdd 141 142
             144:      6(int) ConvertFToS 143
             145:      6(int) Load 98(color)
             146:      6(int) IAdd 145 144
                              Store 98(color) 146
             147:      6(int) FunctionCall 28(foo3()
             148:      6(int) Load 98(color)
             149:      6(int) IAdd 148 147
                              Store 98(color) 149
             153:      6(int) Load 98(color)
             154:   17(float) ConvertSToF 153
             155:  150(fvec4) CompositeConstruct 154 154 154 154
                              Store 152(gl_FragColor) 155
                              Return
                              FunctionEnd
15(foo(i1;i1;i1;i1;i1;i1;):      6(int) Function None 8
            9(a):      7(ptr) FunctionParameter
           10(b):      6(int) FunctionParameter
           11(c):      7(ptr) FunctionParameter
           12(d):      6(int) FunctionParameter
           13(e):      7(ptr) FunctionParameter
           14(f):      7(ptr) FunctionParameter
              16:             Label
         30(sum):      7(ptr) Variable Function
              31:      6(int) Load 9(a)
              32:      6(int) IAdd 31 10(b)
              33:      6(int) Load 11(c)
              34:      6(int) IAdd 32 33
              35:      6(int) IAdd 34 12(d)
              36:      6(int) Load 14(f)
              37:      6(int) IAdd 35 36
                              Store 30(sum) 37
              39:      6(int) Load 9(a)
              40:      6(int) IMul 39 38
                              Store 9(a) 40
              41:      6(int) Load 11(c)
              42:      6(int) IMul 41 38
                              Store 11(c) 42
                              Store 13(e) 43
              44:      6(int) Load 14(f)
              45:      6(int) IMul 44 38
                              Store 14(f) 45
              46:      6(int) Load 9(a)
              47:      6(int) IMul 38 10(b)
              48:      6(int) IAdd 46 47
              49:      6(int) Load 11(c)
              50:      6(int) IAdd 48 49
              51:      6(int) IMul 38 12(d)
              52:      6(int) IAdd 50 51
              53:      6(int) Load 13(e)
              54:      6(int) IAdd 52 53
              55:      6(int) Load 14(f)
              56:      6(int) IAdd 54 55
              57:      6(int) Load 30(sum)
              58:      6(int) IAdd 57 56
                              Store 30(sum) 58
              59:      6(int) Load 30(sum)
                              ReturnValue 59
                              FunctionEnd
25(foo2(f1;vf3;i1;):      6(int) Function None 21
           22(a):     18(ptr) FunctionParameter
           23(b):     20(ptr) FunctionParameter
           24(r):      7(ptr) FunctionParameter
              26:             Label
              63:   17(float) Load 22(a)
              64:   17(float) FMul 62 63
              65:      6(int) ConvertFToS 64
                              Store 24(r) 65
              69:     18(ptr) AccessChain 23(b) 68
              70:   17(float) Load 69
              71:   17(float) FMul 66 70
              72:      6(int) ConvertFToS 71
                              ReturnValue 72
                              FunctionEnd
       28(foo3():      6(int) Function None 27
              29:             Label
              77:   17(float) Load 76(u)
              80:    79(bool) FOrdGreaterThan 77 78
                              SelectionMerge 82 None
                              BranchConditional 80 81 82
              81:               Label
                                Kill
              82:             Label
                              ReturnValue 86
                              FunctionEnd
