spv.for-complex-condition.vert
Warning, version 450 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 35

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