spv.for-notest.vert
// Module Version 10000
// Generated by (magic number): 80007
// Id's are bound by 20

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 15
                              Source GLSL 450
                              Name 4  "main"
                              Name 8  "i"
                              Name 15  "r"
                              Decorate 15(r) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 0
              14:             TypePointer Output 6(int)
           15(r):     14(ptr) Variable Output
              18:      6(int) Constant 1
         4(main):           2 Function None 3
               5:             Label
            8(i):      7(ptr) Variable Function
                              Store 8(i) 9
                              Branch 10
              10:             Label
                              LoopMerge 12 13 None
                              Branch 11
              11:             Label
              16:      6(int) Load 8(i)
                              Store 15(r) 16
                              Branch 13
              13:             Label
              17:      6(int) Load 8(i)
              19:      6(int) IAdd 17 18
                              Store 8(i) 19
                              Branch 10
              12:             Label
                              Return
                              FunctionEnd
