spv.flowControl.frag
// Module Version 10000
// Generated by (magic number): 80008
// Id's are bound by 39

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 11 14 17 19 25 30 35
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "color"
                              Name 11  "BaseColor"
                              Name 13  "color2"
                              Name 14  "otherColor"
                              Name 17  "c"
                              Name 19  "d"
                              Name 25  "bigColor"
                              Name 30  "smallColor"
                              Name 35  "gl_FragColor"
                              Decorate 11(BaseColor) Location 5
                              Decorate 14(otherColor) Location 3
                              Decorate 17(c) Location 4
                              Decorate 19(d) Location 0
                              Decorate 25(bigColor) Location 1
                              Decorate 30(smallColor) Location 2
                              Decorate 35(gl_FragColor) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
              10:             TypePointer Input 7(fvec4)
   11(BaseColor):     10(ptr) Variable Input
  14(otherColor):     10(ptr) Variable Input
              16:             TypePointer Input 6(float)
           17(c):     16(ptr) Variable Input
           19(d):     16(ptr) Variable Input
              21:             TypeBool
    25(bigColor):     10(ptr) Variable Input
  30(smallColor):     10(ptr) Variable Input
              34:             TypePointer Output 7(fvec4)
35(gl_FragColor):     34(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        9(color):      8(ptr) Variable Function
      13(color2):      8(ptr) Variable Function
              12:    7(fvec4) Load 11(BaseColor)
                              Store 9(color) 12
              15:    7(fvec4) Load 14(otherColor)
                              Store 13(color2) 15
              18:    6(float) Load 17(c)
              20:    6(float) Load 19(d)
              22:    21(bool) FOrdGreaterThan 18 20
                              SelectionMerge 24 None
                              BranchConditional 22 23 29
              23:               Label
              26:    7(fvec4)   Load 25(bigColor)
              27:    7(fvec4)   Load 9(color)
              28:    7(fvec4)   FAdd 27 26
                                Store 9(color) 28
                                Branch 24
              29:               Label
              31:    7(fvec4)   Load 30(smallColor)
              32:    7(fvec4)   Load 9(color)
              33:    7(fvec4)   FAdd 32 31
                                Store 9(color) 33
                                Branch 24
              24:             Label
              36:    7(fvec4) Load 9(color)
              37:    7(fvec4) Load 13(color2)
              38:    7(fvec4) FMul 36 37
                              Store 35(gl_FragColor) 38
                              Return
                              FunctionEnd
