hlsl.clipdistance-6.vert
Shader version: 500
0:? Sequence
0:8  Function Definition: @main( ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8    Function Parameters: 
0:?     Sequence
0:10      move second child to first child ( temp 4-component vector of float)
0:10        Position: direct index for structure ( temp 4-component vector of float)
0:10          'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:10          Constant:
0:10            0 (const int)
0:10        Constant:
0:10          0.000000
0:10          0.000000
0:10          0.000000
0:10          0.000000
0:12      move second child to first child ( temp float)
0:12        direct index ( temp float)
0:12          clip0: direct index for structure ( temp 4-component vector of float)
0:12            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:12            Constant:
0:12              1 (const int)
0:12          Constant:
0:12            0 (const int)
0:12        Constant:
0:12          0.000000
0:13      move second child to first child ( temp float)
0:13        direct index ( temp float)
0:13          clip0: direct index for structure ( temp 4-component vector of float)
0:13            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:13            Constant:
0:13              1 (const int)
0:13          Constant:
0:13            1 (const int)
0:13        Constant:
0:13          1.000000
0:14      move second child to first child ( temp float)
0:14        direct index ( temp float)
0:14          clip0: direct index for structure ( temp 4-component vector of float)
0:14            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:14            Constant:
0:14              1 (const int)
0:14          Constant:
0:14            2 (const int)
0:14        Constant:
0:14          2.000000
0:15      move second child to first child ( temp float)
0:15        direct index ( temp float)
0:15          clip0: direct index for structure ( temp 4-component vector of float)
0:15            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:15            Constant:
0:15              1 (const int)
0:15          Constant:
0:15            3 (const int)
0:15        Constant:
0:15          3.000000
0:17      move second child to first child ( temp float)
0:17        direct index ( temp float)
0:17          clip1: direct index for structure ( temp 4-component vector of float)
0:17            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:17            Constant:
0:17              2 (const int)
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          4.000000
0:18      move second child to first child ( temp float)
0:18        direct index ( temp float)
0:18          clip1: direct index for structure ( temp 4-component vector of float)
0:18            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:18            Constant:
0:18              2 (const int)
0:18          Constant:
0:18            1 (const int)
0:18        Constant:
0:18          5.000000
0:19      move second child to first child ( temp float)
0:19        direct index ( temp float)
0:19          clip1: direct index for structure ( temp 4-component vector of float)
0:19            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:19            Constant:
0:19              2 (const int)
0:19          Constant:
0:19            2 (const int)
0:19        Constant:
0:19          6.000000
0:20      move second child to first child ( temp float)
0:20        direct index ( temp float)
0:20          clip1: direct index for structure ( temp 4-component vector of float)
0:20            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:20            Constant:
0:20              2 (const int)
0:20          Constant:
0:20            3 (const int)
0:20        Constant:
0:20          7.000000
0:22      Branch: Return with expression
0:22        'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8          Function Call: @main( ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:8          Position: direct index for structure ( temp 4-component vector of float)
0:8            'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8            Constant:
0:8              0 (const int)
0:?         Sequence
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                0 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                0 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                1 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                1 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                2 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                2 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                3 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                3 (const int)
0:?         Sequence
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                4 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                0 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                5 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                1 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                6 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                2 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                7 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                3 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:8  Function Definition: @main( ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8    Function Parameters: 
0:?     Sequence
0:10      move second child to first child ( temp 4-component vector of float)
0:10        Position: direct index for structure ( temp 4-component vector of float)
0:10          'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:10          Constant:
0:10            0 (const int)
0:10        Constant:
0:10          0.000000
0:10          0.000000
0:10          0.000000
0:10          0.000000
0:12      move second child to first child ( temp float)
0:12        direct index ( temp float)
0:12          clip0: direct index for structure ( temp 4-component vector of float)
0:12            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:12            Constant:
0:12              1 (const int)
0:12          Constant:
0:12            0 (const int)
0:12        Constant:
0:12          0.000000
0:13      move second child to first child ( temp float)
0:13        direct index ( temp float)
0:13          clip0: direct index for structure ( temp 4-component vector of float)
0:13            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:13            Constant:
0:13              1 (const int)
0:13          Constant:
0:13            1 (const int)
0:13        Constant:
0:13          1.000000
0:14      move second child to first child ( temp float)
0:14        direct index ( temp float)
0:14          clip0: direct index for structure ( temp 4-component vector of float)
0:14            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:14            Constant:
0:14              1 (const int)
0:14          Constant:
0:14            2 (const int)
0:14        Constant:
0:14          2.000000
0:15      move second child to first child ( temp float)
0:15        direct index ( temp float)
0:15          clip0: direct index for structure ( temp 4-component vector of float)
0:15            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:15            Constant:
0:15              1 (const int)
0:15          Constant:
0:15            3 (const int)
0:15        Constant:
0:15          3.000000
0:17      move second child to first child ( temp float)
0:17        direct index ( temp float)
0:17          clip1: direct index for structure ( temp 4-component vector of float)
0:17            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:17            Constant:
0:17              2 (const int)
0:17          Constant:
0:17            0 (const int)
0:17        Constant:
0:17          4.000000
0:18      move second child to first child ( temp float)
0:18        direct index ( temp float)
0:18          clip1: direct index for structure ( temp 4-component vector of float)
0:18            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:18            Constant:
0:18              2 (const int)
0:18          Constant:
0:18            1 (const int)
0:18        Constant:
0:18          5.000000
0:19      move second child to first child ( temp float)
0:19        direct index ( temp float)
0:19          clip1: direct index for structure ( temp 4-component vector of float)
0:19            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:19            Constant:
0:19              2 (const int)
0:19          Constant:
0:19            2 (const int)
0:19        Constant:
0:19          6.000000
0:20      move second child to first child ( temp float)
0:20        direct index ( temp float)
0:20          clip1: direct index for structure ( temp 4-component vector of float)
0:20            'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:20            Constant:
0:20              2 (const int)
0:20          Constant:
0:20            3 (const int)
0:20        Constant:
0:20          7.000000
0:22      Branch: Return with expression
0:22        'Output' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8  Function Definition: main( ( temp void)
0:8    Function Parameters: 
0:?     Sequence
0:8      Sequence
0:8        move second child to first child ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8          'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8          Function Call: @main( ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:8          Position: direct index for structure ( temp 4-component vector of float)
0:8            'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8            Constant:
0:8              0 (const int)
0:?         Sequence
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                0 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                0 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                1 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                1 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                2 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                2 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                3 (const int)
0:8            direct index ( temp float)
0:8              clip0: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  1 (const int)
0:8              Constant:
0:8                3 (const int)
0:?         Sequence
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                4 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                0 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                5 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                1 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                6 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                2 (const int)
0:8          move second child to first child ( temp float)
0:8            direct index ( out float ClipDistance)
0:?               '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)
0:8              Constant:
0:8                7 (const int)
0:8            direct index ( temp float)
0:8              clip1: direct index for structure ( temp 4-component vector of float)
0:8                'flattenTemp' ( temp structure{ temp 4-component vector of float Position,  temp 4-component vector of float clip0,  temp 4-component vector of float clip1})
0:8                Constant:
0:8                  2 (const int)
0:8              Constant:
0:8                3 (const int)
0:?   Linker Objects
0:?     '@entryPointOutput.Position' ( out 4-component vector of float Position)
0:?     '@entryPointOutput.clip1' ( out 8-element array of float ClipDistance)

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

                              Capability Shader
                              Capability ClipDistance
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 49 55
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_OUTPUT"
                              MemberName 8(VS_OUTPUT) 0  "Position"
                              MemberName 8(VS_OUTPUT) 1  "clip0"
                              MemberName 8(VS_OUTPUT) 2  "clip1"
                              Name 10  "@main("
                              Name 13  "Output"
                              Name 46  "flattenTemp"
                              Name 49  "@entryPointOutput.Position"
                              Name 55  "@entryPointOutput.clip1"
                              Decorate 49(@entryPointOutput.Position) BuiltIn Position
                              Decorate 55(@entryPointOutput.clip1) BuiltIn ClipDistance
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(VS_OUTPUT):             TypeStruct 7(fvec4) 7(fvec4) 7(fvec4)
               9:             TypeFunction 8(VS_OUTPUT)
              12:             TypePointer Function 8(VS_OUTPUT)
              14:             TypeInt 32 1
              15:     14(int) Constant 0
              16:    6(float) Constant 0
              17:    7(fvec4) ConstantComposite 16 16 16 16
              18:             TypePointer Function 7(fvec4)
              20:     14(int) Constant 1
              21:             TypeInt 32 0
              22:     21(int) Constant 0
              23:             TypePointer Function 6(float)
              25:    6(float) Constant 1065353216
              26:     21(int) Constant 1
              28:    6(float) Constant 1073741824
              29:     21(int) Constant 2
              31:    6(float) Constant 1077936128
              32:     21(int) Constant 3
              34:     14(int) Constant 2
              35:    6(float) Constant 1082130432
              37:    6(float) Constant 1084227584
              39:    6(float) Constant 1086324736
              41:    6(float) Constant 1088421888
              48:             TypePointer Output 7(fvec4)
49(@entryPointOutput.Position):     48(ptr) Variable Output
              52:     21(int) Constant 8
              53:             TypeArray 6(float) 52
              54:             TypePointer Output 53
55(@entryPointOutput.clip1):     54(ptr) Variable Output
              58:             TypePointer Output 6(float)
              66:     14(int) Constant 3
              70:     14(int) Constant 4
              74:     14(int) Constant 5
              78:     14(int) Constant 6
              82:     14(int) Constant 7
         4(main):           2 Function None 3
               5:             Label
 46(flattenTemp):     12(ptr) Variable Function
              47:8(VS_OUTPUT) FunctionCall 10(@main()
                              Store 46(flattenTemp) 47
              50:     18(ptr) AccessChain 46(flattenTemp) 15
              51:    7(fvec4) Load 50
                              Store 49(@entryPointOutput.Position) 51
              56:     23(ptr) AccessChain 46(flattenTemp) 20 22
              57:    6(float) Load 56
              59:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 15
                              Store 59 57
              60:     23(ptr) AccessChain 46(flattenTemp) 20 26
              61:    6(float) Load 60
              62:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 20
                              Store 62 61
              63:     23(ptr) AccessChain 46(flattenTemp) 20 29
              64:    6(float) Load 63
              65:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 34
                              Store 65 64
              67:     23(ptr) AccessChain 46(flattenTemp) 20 32
              68:    6(float) Load 67
              69:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 66
                              Store 69 68
              71:     23(ptr) AccessChain 46(flattenTemp) 34 22
              72:    6(float) Load 71
              73:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 70
                              Store 73 72
              75:     23(ptr) AccessChain 46(flattenTemp) 34 26
              76:    6(float) Load 75
              77:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 74
                              Store 77 76
              79:     23(ptr) AccessChain 46(flattenTemp) 34 29
              80:    6(float) Load 79
              81:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 78
                              Store 81 80
              83:     23(ptr) AccessChain 46(flattenTemp) 34 32
              84:    6(float) Load 83
              85:     58(ptr) AccessChain 55(@entryPointOutput.clip1) 82
                              Store 85 84
                              Return
                              FunctionEnd
      10(@main():8(VS_OUTPUT) Function None 9
              11:             Label
      13(Output):     12(ptr) Variable Function
              19:     18(ptr) AccessChain 13(Output) 15
                              Store 19 17
              24:     23(ptr) AccessChain 13(Output) 20 22
                              Store 24 16
              27:     23(ptr) AccessChain 13(Output) 20 26
                              Store 27 25
              30:     23(ptr) AccessChain 13(Output) 20 29
                              Store 30 28
              33:     23(ptr) AccessChain 13(Output) 20 32
                              Store 33 31
              36:     23(ptr) AccessChain 13(Output) 34 22
                              Store 36 35
              38:     23(ptr) AccessChain 13(Output) 34 26
                              Store 38 37
              40:     23(ptr) AccessChain 13(Output) 34 29
                              Store 40 39
              42:     23(ptr) AccessChain 13(Output) 34 32
                              Store 42 41
              43:8(VS_OUTPUT) Load 13(Output)
                              ReturnValue 43
                              FunctionEnd
