hlsl.semantic.vert
Shader version: 500
0:? Sequence
0:10  Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10    Function Parameters: 
0:10      'ins' ( in structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?     Sequence
0:12      Branch: Return with expression
0:12        's' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp float)
0:10          clip0: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              0 (const int)
0:?           'ins.clip0' (layout( location=0) in float)
0:10        move second child to first child ( temp float)
0:10          clip1: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              1 (const int)
0:?           'ins.clip1' (layout( location=1) in float)
0:10        move second child to first child ( temp float)
0:10          cull0: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              2 (const int)
0:?           'ins.cull0' (layout( location=0) in float)
0:10        move second child to first child ( temp float)
0:10          cull1: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              3 (const int)
0:?           'ins.cull1' (layout( location=1) in float)
0:10        move second child to first child ( temp int)
0:10          ii: direct index for structure ( temp int)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              4 (const int)
0:?           'ins.ii' ( in int InstanceIndex)
0:10      Sequence
0:10        move second child to first child ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10          'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10          Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10              Constant:
0:10                0 (const int)
0:10            clip0: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                0 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10              Constant:
0:10                1 (const int)
0:10            clip1: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                1 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float CullDistance)
0:?               '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10              Constant:
0:10                0 (const int)
0:10            cull0: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                2 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float CullDistance)
0:?               '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10              Constant:
0:10                1 (const int)
0:10            cull1: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                3 (const int)
0:10        move second child to first child ( temp int)
0:?           '@entryPointOutput.ii' (layout( location=0) out int)
0:10          ii: direct index for structure ( temp int)
0:10            'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              4 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.ii' (layout( location=0) out int)
0:?     'ins.ii' ( in int InstanceIndex)
0:?     'ins.clip0' (layout( location=0) in float)
0:?     'ins.clip1' (layout( location=1) in float)
0:?     'ins.cull0' (layout( location=0) in float)
0:?     'ins.cull1' (layout( location=1) in float)
0:?     '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:?     '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:10  Function Definition: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10    Function Parameters: 
0:10      'ins' ( in structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?     Sequence
0:12      Branch: Return with expression
0:12        's' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10  Function Definition: main( ( temp void)
0:10    Function Parameters: 
0:?     Sequence
0:10      Sequence
0:10        move second child to first child ( temp float)
0:10          clip0: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              0 (const int)
0:?           'ins.clip0' (layout( location=0) in float)
0:10        move second child to first child ( temp float)
0:10          clip1: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              1 (const int)
0:?           'ins.clip1' (layout( location=1) in float)
0:10        move second child to first child ( temp float)
0:10          cull0: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              2 (const int)
0:?           'ins.cull0' (layout( location=0) in float)
0:10        move second child to first child ( temp float)
0:10          cull1: direct index for structure ( temp float)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              3 (const int)
0:?           'ins.cull1' (layout( location=1) in float)
0:10        move second child to first child ( temp int)
0:10          ii: direct index for structure ( temp int)
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              4 (const int)
0:?           'ins.ii' ( in int InstanceIndex)
0:10      Sequence
0:10        move second child to first child ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10          'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10          Function Call: @main(struct-S-f1-f1-f1-f1-i11; ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?             'ins' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10              Constant:
0:10                0 (const int)
0:10            clip0: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                0 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:10              Constant:
0:10                1 (const int)
0:10            clip1: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                1 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float CullDistance)
0:?               '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10              Constant:
0:10                0 (const int)
0:10            cull0: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                2 (const int)
0:?         Sequence
0:10          move second child to first child ( temp float)
0:10            direct index ( out float CullDistance)
0:?               '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)
0:10              Constant:
0:10                1 (const int)
0:10            cull1: direct index for structure ( temp float)
0:10              'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10              Constant:
0:10                3 (const int)
0:10        move second child to first child ( temp int)
0:?           '@entryPointOutput.ii' (layout( location=0) out int)
0:10          ii: direct index for structure ( temp int)
0:10            'flattenTemp' ( temp structure{ temp float clip0,  temp float clip1,  temp float cull0,  temp float cull1,  temp int ii})
0:10            Constant:
0:10              4 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.ii' (layout( location=0) out int)
0:?     'ins.ii' ( in int InstanceIndex)
0:?     'ins.clip0' (layout( location=0) in float)
0:?     'ins.clip1' (layout( location=1) in float)
0:?     'ins.cull0' (layout( location=0) in float)
0:?     'ins.cull1' (layout( location=1) in float)
0:?     '@entryPointOutput.clip1' ( out 2-element array of float ClipDistance)
0:?     '@entryPointOutput.cull1' ( out 2-element array of float CullDistance)

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

                              Capability Shader
                              Capability ClipDistance
                              Capability CullDistance
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 21 26 30 34 39 51 59 67
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "S"
                              MemberName 8(S) 0  "clip0"
                              MemberName 8(S) 1  "clip1"
                              MemberName 8(S) 2  "cull0"
                              MemberName 8(S) 3  "cull1"
                              MemberName 8(S) 4  "ii"
                              Name 12  "@main(struct-S-f1-f1-f1-f1-i11;"
                              Name 11  "ins"
                              Name 14  "s"
                              Name 18  "ins"
                              Name 21  "ins.clip0"
                              Name 26  "ins.clip1"
                              Name 30  "ins.cull0"
                              Name 34  "ins.cull1"
                              Name 39  "ins.ii"
                              Name 43  "flattenTemp"
                              Name 44  "param"
                              Name 51  "@entryPointOutput.clip1"
                              Name 59  "@entryPointOutput.cull1"
                              Name 67  "@entryPointOutput.ii"
                              Decorate 21(ins.clip0) Location 0
                              Decorate 26(ins.clip1) Location 1
                              Decorate 30(ins.cull0) Location 0
                              Decorate 34(ins.cull1) Location 1
                              Decorate 39(ins.ii) BuiltIn InstanceIndex
                              Decorate 51(@entryPointOutput.clip1) BuiltIn ClipDistance
                              Decorate 59(@entryPointOutput.cull1) BuiltIn CullDistance
                              Decorate 67(@entryPointOutput.ii) Location 0
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeInt 32 1
            8(S):             TypeStruct 6(float) 6(float) 6(float) 6(float) 7(int)
               9:             TypePointer Function 8(S)
              10:             TypeFunction 8(S) 9(ptr)
              19:      7(int) Constant 0
              20:             TypePointer Input 6(float)
   21(ins.clip0):     20(ptr) Variable Input
              23:             TypePointer Function 6(float)
              25:      7(int) Constant 1
   26(ins.clip1):     20(ptr) Variable Input
              29:      7(int) Constant 2
   30(ins.cull0):     20(ptr) Variable Input
              33:      7(int) Constant 3
   34(ins.cull1):     20(ptr) Variable Input
              37:      7(int) Constant 4
              38:             TypePointer Input 7(int)
      39(ins.ii):     38(ptr) Variable Input
              41:             TypePointer Function 7(int)
              47:             TypeInt 32 0
              48:     47(int) Constant 2
              49:             TypeArray 6(float) 48
              50:             TypePointer Output 49
51(@entryPointOutput.clip1):     50(ptr) Variable Output
              54:             TypePointer Output 6(float)
59(@entryPointOutput.cull1):     50(ptr) Variable Output
              66:             TypePointer Output 7(int)
67(@entryPointOutput.ii):     66(ptr) Variable Output
         4(main):           2 Function None 3
               5:             Label
         18(ins):      9(ptr) Variable Function
 43(flattenTemp):      9(ptr) Variable Function
       44(param):      9(ptr) Variable Function
              22:    6(float) Load 21(ins.clip0)
              24:     23(ptr) AccessChain 18(ins) 19
                              Store 24 22
              27:    6(float) Load 26(ins.clip1)
              28:     23(ptr) AccessChain 18(ins) 25
                              Store 28 27
              31:    6(float) Load 30(ins.cull0)
              32:     23(ptr) AccessChain 18(ins) 29
                              Store 32 31
              35:    6(float) Load 34(ins.cull1)
              36:     23(ptr) AccessChain 18(ins) 33
                              Store 36 35
              40:      7(int) Load 39(ins.ii)
              42:     41(ptr) AccessChain 18(ins) 37
                              Store 42 40
              45:        8(S) Load 18(ins)
                              Store 44(param) 45
              46:        8(S) FunctionCall 12(@main(struct-S-f1-f1-f1-f1-i11;) 44(param)
                              Store 43(flattenTemp) 46
              52:     23(ptr) AccessChain 43(flattenTemp) 19
              53:    6(float) Load 52
              55:     54(ptr) AccessChain 51(@entryPointOutput.clip1) 19
                              Store 55 53
              56:     23(ptr) AccessChain 43(flattenTemp) 25
              57:    6(float) Load 56
              58:     54(ptr) AccessChain 51(@entryPointOutput.clip1) 25
                              Store 58 57
              60:     23(ptr) AccessChain 43(flattenTemp) 29
              61:    6(float) Load 60
              62:     54(ptr) AccessChain 59(@entryPointOutput.cull1) 19
                              Store 62 61
              63:     23(ptr) AccessChain 43(flattenTemp) 33
              64:    6(float) Load 63
              65:     54(ptr) AccessChain 59(@entryPointOutput.cull1) 25
                              Store 65 64
              68:     41(ptr) AccessChain 43(flattenTemp) 37
              69:      7(int) Load 68
                              Store 67(@entryPointOutput.ii) 69
                              Return
                              FunctionEnd
12(@main(struct-S-f1-f1-f1-f1-i11;):        8(S) Function None 10
         11(ins):      9(ptr) FunctionParameter
              13:             Label
           14(s):      9(ptr) Variable Function
              15:        8(S) Load 14(s)
                              ReturnValue 15
                              FunctionEnd
