hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
// Module Version 10000
// Generated by (magic number): 80006
// Id's are bound by 169

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 83 86
                              Source HLSL 500
                              Name 4  "main"
                              Name 83  "pos"
                              Name 86  "@entryPointOutput"
                              Decorate 83(pos) Location 0
                              Decorate 86(@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)
              54:             TypeBool
              82:             TypePointer Input 7(fvec4)
         83(pos):     82(ptr) Variable Input
              85:             TypePointer Output 7(fvec4)
86(@entryPointOutput):     85(ptr) Variable Output
             130:             TypePointer Function 17
             132:             TypePointer Function 20
         4(main):           2 Function None 3
               5:             Label
             133:    132(ptr) Variable Function
             131:    130(ptr) Variable Function
              84:    7(fvec4) Load 83(pos)
             136:     34(ptr) AccessChain 131 25
                              Store 136 33
             137:     39(ptr) AccessChain 133 25
                              Store 137 38
                              Branch 100
             100:             Label
             168:     21(int) Phi 25 5 119 106
             105:    54(bool) SLessThan 168 31
                              LoopMerge 101 106 None
                              BranchConditional 105 106 101
             106:               Label
             138:     39(ptr)   AccessChain 133 168
             110:   18(fvec2)   Load 138
             139:     34(ptr)   AccessChain 131 168
             112:   14(fvec3)   Load 139
             113:   18(fvec2)   VectorShuffle 112 112 0 1
             114:   18(fvec2)   FAdd 113 110
             140:     34(ptr)   AccessChain 131 168
             116:   14(fvec3)   Load 140
             117:   14(fvec3)   VectorShuffle 116 114 3 4 2
                                Store 140 117
             119:     21(int)   IAdd 168 31
                                Branch 100
             101:             Label
             142:          17 Load 131
             161:   14(fvec3) CompositeExtract 142 0
             124:    6(float) CompositeExtract 161 0
             125:    6(float) CompositeExtract 161 1
             126:    6(float) CompositeExtract 161 2
             127:    7(fvec4) CompositeConstruct 124 125 126 32
             128:    7(fvec4) FAdd 84 127
                              Store 86(@entryPointOutput) 128
                              Return
                              FunctionEnd
