hlsl.partialFlattenLocal.vert
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 164

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 86 89
                              Source HLSL 500
                              Name 4  "main"
                              Name 86  "pos"
                              Name 89  "@entryPointOutput"
                              Decorate 86(pos) Location 0
                              Decorate 89(@entryPointOutput) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
              14:             TypeVector 6(float) 3
              15:             TypeInt 32 0
              16:     15(int) Constant 3
              17:             TypeArray 14(fvec3) 16
              18:             TypeVector 6(float) 2
              19:     15(int) Constant 2
              20:             TypeArray 18(fvec2) 19
              21:             TypeInt 32 1
              25:     21(int) Constant 0
              31:     21(int) Constant 1
              32:    6(float) Constant 0
              33:   14(fvec3) ConstantComposite 32 32 32
              34:             TypePointer Function 14(fvec3)
              37:    6(float) Constant 1065353216
              38:   18(fvec2) ConstantComposite 32 37
              39:             TypePointer Function 18(fvec2)
              42:             TypePointer Function 6(float)
              54:             TypeBool
              64:     15(int) Constant 0
              67:     15(int) Constant 1
              85:             TypePointer Input 7(fvec4)
         86(pos):     85(ptr) Variable Input
              88:             TypePointer Output 7(fvec4)
89(@entryPointOutput):     88(ptr) Variable Output
             135:             TypePointer Function 17
             137:             TypePointer Function 20
         4(main):           2 Function None 3
               5:             Label
             138:    137(ptr) Variable Function
             136:    135(ptr) Variable Function
              87:    7(fvec4) Load 86(pos)
             141:     34(ptr) AccessChain 136 25
                              Store 141 33
             142:     39(ptr) AccessChain 138 25
                              Store 142 38
                              Branch 104
             104:             Label
             163:     21(int) Phi 25 5 123 108
             107:    54(bool) SLessThan 163 31
                              LoopMerge 124 108 None
                              BranchConditional 107 108 124
             108:               Label
             143:     39(ptr)   AccessChain 138 163
             112:   18(fvec2)   Load 143
             144:     34(ptr)   AccessChain 136 163
             114:   14(fvec3)   Load 144
             115:   18(fvec2)   VectorShuffle 114 114 0 1
             116:   18(fvec2)   FAdd 115 112
             145:     42(ptr)   AccessChain 136 163 64
             118:    6(float)   CompositeExtract 116 0
                                Store 145 118
             146:     42(ptr)   AccessChain 136 163 67
             120:    6(float)   CompositeExtract 116 1
                                Store 146 120
             123:     21(int)   IAdd 163 31
                                Branch 104
             124:             Label
             148:          17 Load 136
             162:   14(fvec3) CompositeExtract 148 0
             129:    6(float) CompositeExtract 162 0
             130:    6(float) CompositeExtract 162 1
             131:    6(float) CompositeExtract 162 2
             132:    7(fvec4) CompositeConstruct 129 130 131 32
             133:    7(fvec4) FAdd 87 132
                              Store 89(@entryPointOutput) 133
                              Return
                              FunctionEnd
