spv.dead-after-loop-break.vert
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 36

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 8 25
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "o"
                              Name 11  "i"
                              Name 25  "c"
                              Decorate 8(o) Location 0
                              Decorate 25(c) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Output 6(int)
            8(o):      7(ptr) Variable Output
               9:      6(int) Constant 1
              10:             TypePointer Function 6(int)
              12:      6(int) Constant 0
              19:      6(int) Constant 5
              20:             TypeBool
              22:      6(int) Constant 2
              24:             TypePointer Input 6(int)
           25(c):     24(ptr) Variable Input
              30:      6(int) Constant 3
              32:      6(int) Constant 4
              35:      6(int) Constant 6
         4(main):           2 Function None 3
               5:             Label
           11(i):     10(ptr) Variable Function
                              Store 8(o) 9
                              Store 11(i) 12
                              Branch 13
              13:             Label
                              LoopMerge 15 16 None
                              Branch 17
              17:             Label
              18:      6(int) Load 11(i)
              21:    20(bool) SLessThan 18 19
                              BranchConditional 21 14 15
              14:               Label
                                Store 8(o) 22
              23:      6(int)   Load 11(i)
              26:      6(int)   Load 25(c)
              27:    20(bool)   IEqual 23 26
                                SelectionMerge 29 None
                                BranchConditional 27 28 29
              28:                 Label
                                  Store 8(o) 30
                                  Branch 15
              29:               Label
                                Store 8(o) 19
                                Branch 16
              16:               Label
              33:      6(int)   Load 11(i)
              34:      6(int)   IAdd 33 9
                                Store 11(i) 34
                                Branch 13
              15:             Label
                              Store 8(o) 35
                              Return
                              FunctionEnd
