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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 4  "main" 11 24 28 33
                              ExecutionMode 4 OriginUpperLeft
                              Source GLSL 140
                              Name 4  "main"
                              Name 9  "color"
                              Name 11  "BaseColor"
                              Name 24  "d"
                              Name 28  "bigColor"
                              Name 33  "gl_FragColor"
                              Decorate 33(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
              18:             TypeInt 32 0
              19:     18(int) Constant 0
              20:             TypePointer Function 6(float)
              23:             TypePointer Input 6(float)
           24(d):     23(ptr) Variable Input
              26:             TypeBool
    28(bigColor):     10(ptr) Variable Input
              32:             TypePointer Output 7(fvec4)
33(gl_FragColor):     32(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
        9(color):      8(ptr) Variable Function
              12:    7(fvec4) Load 11(BaseColor)
                              Store 9(color) 12
                              Branch 13
              13:             Label
                              LoopMerge 15 16 None
                              Branch 17
              17:             Label
              21:     20(ptr) AccessChain 9(color) 19
              22:    6(float) Load 21
              25:    6(float) Load 24(d)
              27:    26(bool) FOrdLessThan 22 25
                              BranchConditional 27 14 15
              14:               Label
              29:    7(fvec4)   Load 28(bigColor)
              30:    7(fvec4)   Load 9(color)
              31:    7(fvec4)   FAdd 30 29
                                Store 9(color) 31
                                Branch 16
              16:               Label
                                Branch 13
              15:             Label
              34:    7(fvec4) Load 9(color)
                              Store 33(gl_FragColor) 34
                              Return
                              FunctionEnd
