hlsl.partialFlattenLocal.vert
WARNING: AST will form illegal SPIR-V; need to transform to legalize
Shader version: 500
0:? Sequence
0:12  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:12    Function Parameters: 
0:12      'pos' ( in 4-component vector of float)
0:?     Sequence
0:14      move second child to first child ( temp texture2D)
0:14        tex: direct index for structure ( temp texture2D)
0:14          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:14          Constant:
0:14            0 (const int)
0:14        'tex' ( uniform texture2D)
0:15      move second child to first child ( temp 3-component vector of float)
0:15        direct index ( temp 3-component vector of float)
0:15          pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:15            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:15            Constant:
0:15              1 (const int)
0:15          Constant:
0:15            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:16      move second child to first child ( temp 2-component vector of float)
0:16        direct index ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:16            Constant:
0:16              2 (const int)
0:16          Constant:
0:16            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           1.000000
0:17      move second child to first child ( temp float)
0:17        x: direct index for structure ( temp float)
0:17          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:17          Constant:
0:17            3 (const int)
0:17        Constant:
0:17          1.000000
0:18      move second child to first child ( temp int)
0:18        n: direct index for structure ( temp int)
0:18          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:18          Constant:
0:18            4 (const int)
0:18        Constant:
0:18          3 (const int)
0:20      Sequence
0:20        move second child to first child ( temp int)
0:20          'i' ( temp int)
0:20          Constant:
0:20            0 (const int)
0:20        Loop with condition tested first
0:20          Loop Condition
0:20          Compare Less Than ( temp bool)
0:20            'i' ( temp int)
0:20            Constant:
0:20              1 (const int)
0:20          Loop Body
0:?           Sequence
0:21            add second child into first child ( temp 2-component vector of float)
0:21              vector swizzle ( temp 2-component vector of float)
0:21                indirect index ( temp 3-component vector of float)
0:21                  pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:21                    'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:21                    Constant:
0:21                      1 (const int)
0:21                  'i' ( temp int)
0:21                Sequence
0:21                  Constant:
0:21                    0 (const int)
0:21                  Constant:
0:21                    1 (const int)
0:21              indirect index ( temp 2-component vector of float)
0:21                uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:21                  'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:21                  Constant:
0:21                    2 (const int)
0:21                'i' ( temp int)
0:20          Loop Terminal Expression
0:20          Pre-Increment ( temp int)
0:20            'i' ( temp int)
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:24          'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:24          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:26      Branch: Return with expression
0:26        add ( temp 4-component vector of float)
0:26          'pos' ( in 4-component vector of float)
0:?           Construct vec4 ( temp 4-component vector of float)
0:26            direct index ( temp 3-component vector of float)
0:26              pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:26                'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:26                Constant:
0:26                  1 (const int)
0:26              Constant:
0:26                0 (const int)
0:26            Constant:
0:26              0.000000
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         'pos' ( temp 4-component vector of float)
0:?         'pos' (layout( location=0) in 4-component vector of float)
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' ( out 4-component vector of float Position)
0:12        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'pos' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'tex' ( uniform texture2D)
0:?     '@entryPointOutput' ( out 4-component vector of float Position)
0:?     'pos' (layout( location=0) in 4-component vector of float)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:12  Function Definition: @main(vf4; ( temp 4-component vector of float)
0:12    Function Parameters: 
0:12      'pos' ( in 4-component vector of float)
0:?     Sequence
0:14      move second child to first child ( temp texture2D)
0:14        tex: direct index for structure ( temp texture2D)
0:14          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:14          Constant:
0:14            0 (const int)
0:14        'tex' ( uniform texture2D)
0:15      move second child to first child ( temp 3-component vector of float)
0:15        direct index ( temp 3-component vector of float)
0:15          pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:15            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:15            Constant:
0:15              1 (const int)
0:15          Constant:
0:15            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           0.000000
0:?           0.000000
0:16      move second child to first child ( temp 2-component vector of float)
0:16        direct index ( temp 2-component vector of float)
0:16          uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:16            'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:16            Constant:
0:16              2 (const int)
0:16          Constant:
0:16            0 (const int)
0:?         Constant:
0:?           0.000000
0:?           1.000000
0:17      move second child to first child ( temp float)
0:17        x: direct index for structure ( temp float)
0:17          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:17          Constant:
0:17            3 (const int)
0:17        Constant:
0:17          1.000000
0:18      move second child to first child ( temp int)
0:18        n: direct index for structure ( temp int)
0:18          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:18          Constant:
0:18            4 (const int)
0:18        Constant:
0:18          3 (const int)
0:20      Sequence
0:20        move second child to first child ( temp int)
0:20          'i' ( temp int)
0:20          Constant:
0:20            0 (const int)
0:20        Loop with condition tested first
0:20          Loop Condition
0:20          Compare Less Than ( temp bool)
0:20            'i' ( temp int)
0:20            Constant:
0:20              1 (const int)
0:20          Loop Body
0:?           Sequence
0:21            add second child into first child ( temp 2-component vector of float)
0:21              vector swizzle ( temp 2-component vector of float)
0:21                indirect index ( temp 3-component vector of float)
0:21                  pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:21                    'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:21                    Constant:
0:21                      1 (const int)
0:21                  'i' ( temp int)
0:21                Sequence
0:21                  Constant:
0:21                    0 (const int)
0:21                  Constant:
0:21                    1 (const int)
0:21              indirect index ( temp 2-component vector of float)
0:21                uv: direct index for structure ( temp 2-element array of 2-component vector of float)
0:21                  'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:21                  Constant:
0:21                    2 (const int)
0:21                'i' ( temp int)
0:20          Loop Terminal Expression
0:20          Pre-Increment ( temp int)
0:20            'i' ( temp int)
0:24      Sequence
0:24        move second child to first child ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:24          'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:24          'packed' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:26      Branch: Return with expression
0:26        add ( temp 4-component vector of float)
0:26          'pos' ( in 4-component vector of float)
0:?           Construct vec4 ( temp 4-component vector of float)
0:26            direct index ( temp 3-component vector of float)
0:26              pos: direct index for structure ( temp 3-element array of 3-component vector of float)
0:26                'packed2' ( temp structure{ temp texture2D tex,  temp 3-element array of 3-component vector of float pos,  temp 2-element array of 2-component vector of float uv,  temp float x,  temp int n})
0:26                Constant:
0:26                  1 (const int)
0:26              Constant:
0:26                0 (const int)
0:26            Constant:
0:26              0.000000
0:12  Function Definition: main( ( temp void)
0:12    Function Parameters: 
0:?     Sequence
0:12      move second child to first child ( temp 4-component vector of float)
0:?         'pos' ( temp 4-component vector of float)
0:?         'pos' (layout( location=0) in 4-component vector of float)
0:12      move second child to first child ( temp 4-component vector of float)
0:?         '@entryPointOutput' ( out 4-component vector of float Position)
0:12        Function Call: @main(vf4; ( temp 4-component vector of float)
0:?           'pos' ( temp 4-component vector of float)
0:?   Linker Objects
0:?     'tex' ( uniform texture2D)
0:?     '@entryPointOutput' ( out 4-component vector of float Position)
0:?     'pos' (layout( location=0) in 4-component vector of float)

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

                              Capability Shader
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 83 86
                              Source HLSL 500
                              Name 4  "main"
                              Name 11  "@main(vf4;"
                              Name 10  "pos"
                              Name 22  "Packed"
                              MemberName 22(Packed) 0  "tex"
                              MemberName 22(Packed) 1  "pos"
                              MemberName 22(Packed) 2  "uv"
                              MemberName 22(Packed) 3  "x"
                              MemberName 22(Packed) 4  "n"
                              Name 24  "packed"
                              Name 27  "tex"
                              Name 47  "i"
                              Name 69  "packed2"
                              Name 81  "pos"
                              Name 83  "pos"
                              Name 86  "@entryPointOutput"
                              Name 87  "param"
                              Decorate 27(tex) DescriptorSet 0
                              Decorate 83(pos) Location 0
                              Decorate 86(@entryPointOutput) BuiltIn Position
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
               8:             TypePointer Function 7(fvec4)
               9:             TypeFunction 7(fvec4) 8(ptr)
              13:             TypeImage 6(float) 2D sampled format:Unknown
              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
      22(Packed):             TypeStruct 13 17 20 6(float) 21(int)
              23:             TypePointer Function 22(Packed)
              25:     21(int) Constant 0
              26:             TypePointer UniformConstant 13
         27(tex):     26(ptr) Variable UniformConstant
              29:             TypePointer Function 13
              31:     21(int) Constant 1
              32:    6(float) Constant 0
              33:   14(fvec3) ConstantComposite 32 32 32
              34:             TypePointer Function 14(fvec3)
              36:     21(int) Constant 2
              37:    6(float) Constant 1065353216
              38:   18(fvec2) ConstantComposite 32 37
              39:             TypePointer Function 18(fvec2)
              41:     21(int) Constant 3
              42:             TypePointer Function 6(float)
              44:     21(int) Constant 4
              45:             TypePointer Function 21(int)
              54:             TypeBool
              82:             TypePointer Input 7(fvec4)
         83(pos):     82(ptr) Variable Input
              85:             TypePointer Output 7(fvec4)
86(@entryPointOutput):     85(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         81(pos):      8(ptr) Variable Function
       87(param):      8(ptr) Variable Function
              84:    7(fvec4) Load 83(pos)
                              Store 81(pos) 84
              88:    7(fvec4) Load 81(pos)
                              Store 87(param) 88
              89:    7(fvec4) FunctionCall 11(@main(vf4;) 87(param)
                              Store 86(@entryPointOutput) 89
                              Return
                              FunctionEnd
  11(@main(vf4;):    7(fvec4) Function None 9
         10(pos):      8(ptr) FunctionParameter
              12:             Label
      24(packed):     23(ptr) Variable Function
           47(i):     45(ptr) Variable Function
     69(packed2):     23(ptr) Variable Function
              28:          13 Load 27(tex)
              30:     29(ptr) AccessChain 24(packed) 25
                              Store 30 28
              35:     34(ptr) AccessChain 24(packed) 31 25
                              Store 35 33
              40:     39(ptr) AccessChain 24(packed) 36 25
                              Store 40 38
              43:     42(ptr) AccessChain 24(packed) 41
                              Store 43 37
              46:     45(ptr) AccessChain 24(packed) 44
                              Store 46 41
                              Store 47(i) 25
                              Branch 48
              48:             Label
                              LoopMerge 50 51 None
                              Branch 52
              52:             Label
              53:     21(int) Load 47(i)
              55:    54(bool) SLessThan 53 31
                              BranchConditional 55 49 50
              49:               Label
              56:     21(int)   Load 47(i)
              57:     21(int)   Load 47(i)
              58:     39(ptr)   AccessChain 24(packed) 36 57
              59:   18(fvec2)   Load 58
              60:     34(ptr)   AccessChain 24(packed) 31 56
              61:   14(fvec3)   Load 60
              62:   18(fvec2)   VectorShuffle 61 61 0 1
              63:   18(fvec2)   FAdd 62 59
              64:     34(ptr)   AccessChain 24(packed) 31 56
              65:   14(fvec3)   Load 64
              66:   14(fvec3)   VectorShuffle 65 63 3 4 2
                                Store 64 66
                                Branch 51
              51:               Label
              67:     21(int)   Load 47(i)
              68:     21(int)   IAdd 67 31
                                Store 47(i) 68
                                Branch 48
              50:             Label
              70:  22(Packed) Load 24(packed)
                              Store 69(packed2) 70
              71:    7(fvec4) Load 10(pos)
              72:     34(ptr) AccessChain 69(packed2) 31 25
              73:   14(fvec3) Load 72
              74:    6(float) CompositeExtract 73 0
              75:    6(float) CompositeExtract 73 1
              76:    6(float) CompositeExtract 73 2
              77:    7(fvec4) CompositeConstruct 74 75 76 32
              78:    7(fvec4) FAdd 71 77
                              ReturnValue 78
                              FunctionEnd
