spv.for-continue-break.vert
Warning, version 310 is not yet complete; most version-specific features are present, but some are missing.


Linked vertex stage:


// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 45

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main"
                              Source ESSL 310
                              Name 4  "main"
                              Name 8  "i"
                              Name 19  "A"
                              Name 27  "B"
                              Name 29  "C"
                              Name 36  "D"
                              Name 38  "E"
                              Name 39  "F"
                              Name 43  "G"
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeInt 32 1
               7:             TypePointer Function 6(int)
               9:      6(int) Constant 0
              16:      6(int) Constant 10
              17:             TypeBool
              20:      6(int) Constant 1
              22:      6(int) Constant 2
              31:      6(int) Constant 3
              40:      6(int) Constant 12
              44:      6(int) Constant 99
         4(main):           2 Function None 3
               5:             Label
            8(i):      7(ptr) Variable Function
           19(A):      7(ptr) Variable Function
           27(B):      7(ptr) Variable Function
           29(C):      7(ptr) Variable Function
           36(D):      7(ptr) Variable Function
           38(E):      7(ptr) Variable Function
           39(F):      7(ptr) Variable Function
           43(G):      7(ptr) Variable Function
                              Store 8(i) 9
                              Branch 10
              10:             Label
                              LoopMerge 12 13 None
                              Branch 14
              14:             Label
              15:      6(int) Load 8(i)
              18:    17(bool) SLessThan 15 16
                              BranchConditional 18 11 12
              11:               Label
                                Store 19(A) 20
              21:      6(int)   Load 8(i)
              23:      6(int)   SMod 21 22
              24:    17(bool)   IEqual 23 9
                                SelectionMerge 26 None
                                BranchConditional 24 25 26
              25:                 Label
                                  Store 27(B) 20
                                  Branch 13
              26:               Label
              30:      6(int)   Load 8(i)
              32:      6(int)   SMod 30 31
              33:    17(bool)   IEqual 32 9
                                SelectionMerge 35 None
                                BranchConditional 33 34 35
              34:                 Label
                                  Store 36(D) 20
                                  Branch 12
              35:               Label
                                Store 39(F) 40
                                Branch 13
              13:               Label
              41:      6(int)   Load 8(i)
              42:      6(int)   IAdd 41 20
                                Store 8(i) 42
                                Branch 10
              12:             Label
                              Store 43(G) 44
                              Return
                              FunctionEnd
