hlsl.sample.dx9.frag
Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15    Function Parameters: 
0:?     Sequence
0:18      Sequence
0:18        move second child to first child ( temp 4-component vector of float)
0:18          'ColorOut' ( temp 4-component vector of float)
0:18          Constant:
0:18            0.000000
0:18            0.000000
0:18            0.000000
0:18            0.000000
0:20      add second child into first child ( temp 4-component vector of float)
0:20        'ColorOut' ( temp 4-component vector of float)
0:20        texture ( temp 4-component vector of float)
0:20          'g_sam' (layout( binding=0) uniform sampler2D)
0:20          Constant:
0:20            0.400000
0:20            0.300000
0:21      add second child into first child ( temp 4-component vector of float)
0:21        'ColorOut' ( temp 4-component vector of float)
0:21        texture ( temp 4-component vector of float)
0:21          'g_sam1D' (layout( binding=1) uniform sampler1D)
0:21          Constant:
0:21            0.500000
0:22      add second child into first child ( temp 4-component vector of float)
0:22        'ColorOut' ( temp 4-component vector of float)
0:22        texture ( temp 4-component vector of float)
0:22          'g_sam2D' (layout( binding=2) uniform sampler2D)
0:22          Constant:
0:22            0.500000
0:22            0.600000
0:23      add second child into first child ( temp 4-component vector of float)
0:23        'ColorOut' ( temp 4-component vector of float)
0:23        texture ( temp 4-component vector of float)
0:23          'g_sam3D' (layout( binding=3) uniform sampler3D)
0:23          Constant:
0:23            0.500000
0:23            0.600000
0:23            0.400000
0:24      add second child into first child ( temp 4-component vector of float)
0:24        'ColorOut' ( temp 4-component vector of float)
0:24        texture ( temp 4-component vector of float)
0:24          'g_samCube' (layout( binding=4) uniform samplerCube)
0:24          Constant:
0:24            0.500000
0:24            0.600000
0:24            0.400000
0:26      add second child into first child ( temp 4-component vector of float)
0:26        'ColorOut' ( temp 4-component vector of float)
0:26        textureLod ( temp 4-component vector of float)
0:26          'g_sam' (layout( binding=0) uniform sampler2D)
0:26          Construct vec2 ( temp 2-component vector of float)
0:26            Constant:
0:26              0.400000
0:26              0.300000
0:26              0.000000
0:26              0.000000
0:26          direct index ( temp float)
0:26            Constant:
0:26              0.400000
0:26              0.300000
0:26              0.000000
0:26              0.000000
0:26            Constant:
0:26              3 (const int)
0:27      add second child into first child ( temp 4-component vector of float)
0:27        'ColorOut' ( temp 4-component vector of float)
0:27        textureLod ( temp 4-component vector of float)
0:27          'g_sam1D' (layout( binding=1) uniform sampler1D)
0:27          Construct float ( temp float)
0:27            Constant:
0:27              0.500000
0:27              0.000000
0:27              0.000000
0:27              0.000000
0:27          direct index ( temp float)
0:27            Constant:
0:27              0.500000
0:27              0.000000
0:27              0.000000
0:27              0.000000
0:27            Constant:
0:27              3 (const int)
0:28      add second child into first child ( temp 4-component vector of float)
0:28        'ColorOut' ( temp 4-component vector of float)
0:28        textureLod ( temp 4-component vector of float)
0:28          'g_sam2D' (layout( binding=2) uniform sampler2D)
0:28          Construct vec2 ( temp 2-component vector of float)
0:28            Constant:
0:28              0.500000
0:28              0.600000
0:28              0.000000
0:28              0.000000
0:28          direct index ( temp float)
0:28            Constant:
0:28              0.500000
0:28              0.600000
0:28              0.000000
0:28              0.000000
0:28            Constant:
0:28              3 (const int)
0:29      add second child into first child ( temp 4-component vector of float)
0:29        'ColorOut' ( temp 4-component vector of float)
0:29        textureLod ( temp 4-component vector of float)
0:29          'g_sam3D' (layout( binding=3) uniform sampler3D)
0:29          Construct vec3 ( temp 3-component vector of float)
0:29            Constant:
0:29              0.500000
0:29              0.600000
0:29              0.400000
0:29              0.000000
0:29          direct index ( temp float)
0:29            Constant:
0:29              0.500000
0:29              0.600000
0:29              0.400000
0:29              0.000000
0:29            Constant:
0:29              3 (const int)
0:30      add second child into first child ( temp 4-component vector of float)
0:30        'ColorOut' ( temp 4-component vector of float)
0:30        textureLod ( temp 4-component vector of float)
0:30          'g_samCube' (layout( binding=4) uniform samplerCube)
0:30          Construct vec3 ( temp 3-component vector of float)
0:30            Constant:
0:30              0.500000
0:30              0.600000
0:30              0.400000
0:30              0.000000
0:30          direct index ( temp float)
0:30            Constant:
0:30              0.500000
0:30              0.600000
0:30              0.400000
0:30              0.000000
0:30            Constant:
0:30              3 (const int)
0:32      move second child to first child ( temp 4-component vector of float)
0:32        Color: direct index for structure ( temp 4-component vector of float)
0:32          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:32          Constant:
0:32            0 (const int)
0:32        divide ( temp 4-component vector of float)
0:32          'ColorOut' ( temp 4-component vector of float)
0:32          Constant:
0:32            10.000000
0:33      move second child to first child ( temp float)
0:33        Depth: direct index for structure ( temp float)
0:33          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Constant:
0:33            1 (const int)
0:33        Constant:
0:33          1.000000
0:35      Branch: Return with expression
0:35        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:15          Color: direct index for structure ( temp 4-component vector of float)
0:15            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15            Constant:
0:15              0 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:15          Depth: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15            Constant:
0:15              1 (const int)
0:?   Linker Objects
0:?     'g_sam' (layout( binding=0) uniform sampler2D)
0:?     'g_sam1D' (layout( binding=1) uniform sampler1D)
0:?     'g_sam2D' (layout( binding=2) uniform sampler2D)
0:?     'g_sam3D' (layout( binding=3) uniform sampler3D)
0:?     'g_samCube' (layout( binding=4) uniform samplerCube)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)


Linked fragment stage:


Shader version: 500
gl_FragCoord origin is upper left
using depth_any
0:? Sequence
0:15  Function Definition: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15    Function Parameters: 
0:?     Sequence
0:18      Sequence
0:18        move second child to first child ( temp 4-component vector of float)
0:18          'ColorOut' ( temp 4-component vector of float)
0:18          Constant:
0:18            0.000000
0:18            0.000000
0:18            0.000000
0:18            0.000000
0:20      add second child into first child ( temp 4-component vector of float)
0:20        'ColorOut' ( temp 4-component vector of float)
0:20        texture ( temp 4-component vector of float)
0:20          'g_sam' (layout( binding=0) uniform sampler2D)
0:20          Constant:
0:20            0.400000
0:20            0.300000
0:21      add second child into first child ( temp 4-component vector of float)
0:21        'ColorOut' ( temp 4-component vector of float)
0:21        texture ( temp 4-component vector of float)
0:21          'g_sam1D' (layout( binding=1) uniform sampler1D)
0:21          Constant:
0:21            0.500000
0:22      add second child into first child ( temp 4-component vector of float)
0:22        'ColorOut' ( temp 4-component vector of float)
0:22        texture ( temp 4-component vector of float)
0:22          'g_sam2D' (layout( binding=2) uniform sampler2D)
0:22          Constant:
0:22            0.500000
0:22            0.600000
0:23      add second child into first child ( temp 4-component vector of float)
0:23        'ColorOut' ( temp 4-component vector of float)
0:23        texture ( temp 4-component vector of float)
0:23          'g_sam3D' (layout( binding=3) uniform sampler3D)
0:23          Constant:
0:23            0.500000
0:23            0.600000
0:23            0.400000
0:24      add second child into first child ( temp 4-component vector of float)
0:24        'ColorOut' ( temp 4-component vector of float)
0:24        texture ( temp 4-component vector of float)
0:24          'g_samCube' (layout( binding=4) uniform samplerCube)
0:24          Constant:
0:24            0.500000
0:24            0.600000
0:24            0.400000
0:26      add second child into first child ( temp 4-component vector of float)
0:26        'ColorOut' ( temp 4-component vector of float)
0:26        textureLod ( temp 4-component vector of float)
0:26          'g_sam' (layout( binding=0) uniform sampler2D)
0:26          Construct vec2 ( temp 2-component vector of float)
0:26            Constant:
0:26              0.400000
0:26              0.300000
0:26              0.000000
0:26              0.000000
0:26          direct index ( temp float)
0:26            Constant:
0:26              0.400000
0:26              0.300000
0:26              0.000000
0:26              0.000000
0:26            Constant:
0:26              3 (const int)
0:27      add second child into first child ( temp 4-component vector of float)
0:27        'ColorOut' ( temp 4-component vector of float)
0:27        textureLod ( temp 4-component vector of float)
0:27          'g_sam1D' (layout( binding=1) uniform sampler1D)
0:27          Construct float ( temp float)
0:27            Constant:
0:27              0.500000
0:27              0.000000
0:27              0.000000
0:27              0.000000
0:27          direct index ( temp float)
0:27            Constant:
0:27              0.500000
0:27              0.000000
0:27              0.000000
0:27              0.000000
0:27            Constant:
0:27              3 (const int)
0:28      add second child into first child ( temp 4-component vector of float)
0:28        'ColorOut' ( temp 4-component vector of float)
0:28        textureLod ( temp 4-component vector of float)
0:28          'g_sam2D' (layout( binding=2) uniform sampler2D)
0:28          Construct vec2 ( temp 2-component vector of float)
0:28            Constant:
0:28              0.500000
0:28              0.600000
0:28              0.000000
0:28              0.000000
0:28          direct index ( temp float)
0:28            Constant:
0:28              0.500000
0:28              0.600000
0:28              0.000000
0:28              0.000000
0:28            Constant:
0:28              3 (const int)
0:29      add second child into first child ( temp 4-component vector of float)
0:29        'ColorOut' ( temp 4-component vector of float)
0:29        textureLod ( temp 4-component vector of float)
0:29          'g_sam3D' (layout( binding=3) uniform sampler3D)
0:29          Construct vec3 ( temp 3-component vector of float)
0:29            Constant:
0:29              0.500000
0:29              0.600000
0:29              0.400000
0:29              0.000000
0:29          direct index ( temp float)
0:29            Constant:
0:29              0.500000
0:29              0.600000
0:29              0.400000
0:29              0.000000
0:29            Constant:
0:29              3 (const int)
0:30      add second child into first child ( temp 4-component vector of float)
0:30        'ColorOut' ( temp 4-component vector of float)
0:30        textureLod ( temp 4-component vector of float)
0:30          'g_samCube' (layout( binding=4) uniform samplerCube)
0:30          Construct vec3 ( temp 3-component vector of float)
0:30            Constant:
0:30              0.500000
0:30              0.600000
0:30              0.400000
0:30              0.000000
0:30          direct index ( temp float)
0:30            Constant:
0:30              0.500000
0:30              0.600000
0:30              0.400000
0:30              0.000000
0:30            Constant:
0:30              3 (const int)
0:32      move second child to first child ( temp 4-component vector of float)
0:32        Color: direct index for structure ( temp 4-component vector of float)
0:32          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:32          Constant:
0:32            0 (const int)
0:32        divide ( temp 4-component vector of float)
0:32          'ColorOut' ( temp 4-component vector of float)
0:32          Constant:
0:32            10.000000
0:33      move second child to first child ( temp float)
0:33        Depth: direct index for structure ( temp float)
0:33          'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:33          Constant:
0:33            1 (const int)
0:33        Constant:
0:33          1.000000
0:35      Branch: Return with expression
0:35        'psout' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15  Function Definition: main( ( temp void)
0:15    Function Parameters: 
0:?     Sequence
0:15      Sequence
0:15        move second child to first child ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15          'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15          Function Call: @main( ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)
0:15          Color: direct index for structure ( temp 4-component vector of float)
0:15            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15            Constant:
0:15              0 (const int)
0:15        move second child to first child ( temp float)
0:?           '@entryPointOutput.Depth' ( out float FragDepth)
0:15          Depth: direct index for structure ( temp float)
0:15            'flattenTemp' ( temp structure{ temp 4-component vector of float Color,  temp float Depth})
0:15            Constant:
0:15              1 (const int)
0:?   Linker Objects
0:?     'g_sam' (layout( binding=0) uniform sampler2D)
0:?     'g_sam1D' (layout( binding=1) uniform sampler1D)
0:?     'g_sam2D' (layout( binding=2) uniform sampler2D)
0:?     'g_sam3D' (layout( binding=3) uniform sampler3D)
0:?     'g_samCube' (layout( binding=4) uniform samplerCube)
0:?     '@entryPointOutput.Depth' ( out float FragDepth)
0:?     '@entryPointOutput.Color' (layout( location=0) out 4-component vector of float)

// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 135

                              Capability Shader
                              Capability Sampled1D
               2:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Fragment 5  "main" 128 132
                              ExecutionMode 5 OriginUpperLeft
                              ExecutionMode 5 DepthReplacing
               1:             String  ""
                              Source HLSL 500 1  "// OpModuleProcessed auto-map-locations
// OpModuleProcessed auto-map-bindings
// OpModuleProcessed entry-point main
// OpModuleProcessed client vulkan100
// OpModuleProcessed target-env vulkan1.0
// OpModuleProcessed keep-uncalled
// OpModuleProcessed hlsl-offsets
#line 1
"
                              Name 5  "main"
                              Name 9  "PS_OUTPUT"
                              MemberName 9(PS_OUTPUT) 0  "Color"
                              MemberName 9(PS_OUTPUT) 1  "Depth"
                              Name 11  "@main("
                              Name 14  "ColorOut"
                              Name 20  "g_sam"
                              Name 32  "g_sam1D"
                              Name 38  "g_sam2D"
                              Name 48  "g_sam3D"
                              Name 58  "g_samCube"
                              Name 110  "psout"
                              Name 125  "flattenTemp"
                              Name 128  "@entryPointOutput.Color"
                              Name 132  "@entryPointOutput.Depth"
                              Decorate 20(g_sam) DescriptorSet 0
                              Decorate 20(g_sam) Binding 0
                              Decorate 32(g_sam1D) DescriptorSet 0
                              Decorate 32(g_sam1D) Binding 1
                              Decorate 38(g_sam2D) DescriptorSet 0
                              Decorate 38(g_sam2D) Binding 2
                              Decorate 48(g_sam3D) DescriptorSet 0
                              Decorate 48(g_sam3D) Binding 3
                              Decorate 58(g_samCube) DescriptorSet 0
                              Decorate 58(g_samCube) Binding 4
                              Decorate 128(@entryPointOutput.Color) Location 0
                              Decorate 132(@entryPointOutput.Depth) BuiltIn FragDepth
               3:             TypeVoid
               4:             TypeFunction 3
               7:             TypeFloat 32
               8:             TypeVector 7(float) 4
    9(PS_OUTPUT):             TypeStruct 8(fvec4) 7(float)
              10:             TypeFunction 9(PS_OUTPUT)
              13:             TypePointer Function 8(fvec4)
              15:    7(float) Constant 0
              16:    8(fvec4) ConstantComposite 15 15 15 15
              17:             TypeImage 7(float) 2D sampled format:Unknown
              18:             TypeSampledImage 17
              19:             TypePointer UniformConstant 18
       20(g_sam):     19(ptr) Variable UniformConstant
              22:             TypeVector 7(float) 2
              23:    7(float) Constant 1053609165
              24:    7(float) Constant 1050253722
              25:   22(fvec2) ConstantComposite 23 24
              29:             TypeImage 7(float) 1D sampled format:Unknown
              30:             TypeSampledImage 29
              31:             TypePointer UniformConstant 30
     32(g_sam1D):     31(ptr) Variable UniformConstant
              34:    7(float) Constant 1056964608
     38(g_sam2D):     19(ptr) Variable UniformConstant
              40:    7(float) Constant 1058642330
              41:   22(fvec2) ConstantComposite 34 40
              45:             TypeImage 7(float) 3D sampled format:Unknown
              46:             TypeSampledImage 45
              47:             TypePointer UniformConstant 46
     48(g_sam3D):     47(ptr) Variable UniformConstant
              50:             TypeVector 7(float) 3
              51:   50(fvec3) ConstantComposite 34 40 23
              55:             TypeImage 7(float) Cube sampled format:Unknown
              56:             TypeSampledImage 55
              57:             TypePointer UniformConstant 56
   58(g_samCube):     57(ptr) Variable UniformConstant
              64:    8(fvec4) ConstantComposite 23 24 15 15
              68:             TypeInt 32 0
              69:     68(int) Constant 3
              75:    8(fvec4) ConstantComposite 34 15 15 15
              82:    8(fvec4) ConstantComposite 34 40 15 15
              91:    8(fvec4) ConstantComposite 34 40 23 15
             109:             TypePointer Function 9(PS_OUTPUT)
             111:             TypeInt 32 1
             112:    111(int) Constant 0
             114:    7(float) Constant 1092616192
             118:    111(int) Constant 1
             119:    7(float) Constant 1065353216
             120:             TypePointer Function 7(float)
             127:             TypePointer Output 8(fvec4)
128(@entryPointOutput.Color):    127(ptr) Variable Output
             131:             TypePointer Output 7(float)
132(@entryPointOutput.Depth):    131(ptr) Variable Output
         5(main):           3 Function None 4
               6:             Label
125(flattenTemp):    109(ptr) Variable Function
                              Line 1 15 0
             126:9(PS_OUTPUT) FunctionCall 11(@main()
                              Store 125(flattenTemp) 126
             129:     13(ptr) AccessChain 125(flattenTemp) 112
             130:    8(fvec4) Load 129
                              Store 128(@entryPointOutput.Color) 130
             133:    120(ptr) AccessChain 125(flattenTemp) 118
             134:    7(float) Load 133
                              Store 132(@entryPointOutput.Depth) 134
                              Return
                              FunctionEnd
      11(@main():9(PS_OUTPUT) Function None 10
              12:             Label
    14(ColorOut):     13(ptr) Variable Function
      110(psout):    109(ptr) Variable Function
                              Line 1 18 0
                              Store 14(ColorOut) 16
                              Line 1 20 0
              21:          18 Load 20(g_sam)
              26:    8(fvec4) ImageSampleImplicitLod 21 25
              27:    8(fvec4) Load 14(ColorOut)
              28:    8(fvec4) FAdd 27 26
                              Store 14(ColorOut) 28
                              Line 1 21 0
              33:          30 Load 32(g_sam1D)
              35:    8(fvec4) ImageSampleImplicitLod 33 34
              36:    8(fvec4) Load 14(ColorOut)
              37:    8(fvec4) FAdd 36 35
                              Store 14(ColorOut) 37
                              Line 1 22 0
              39:          18 Load 38(g_sam2D)
              42:    8(fvec4) ImageSampleImplicitLod 39 41
              43:    8(fvec4) Load 14(ColorOut)
              44:    8(fvec4) FAdd 43 42
                              Store 14(ColorOut) 44
                              Line 1 23 0
              49:          46 Load 48(g_sam3D)
              52:    8(fvec4) ImageSampleImplicitLod 49 51
              53:    8(fvec4) Load 14(ColorOut)
              54:    8(fvec4) FAdd 53 52
                              Store 14(ColorOut) 54
                              Line 1 24 0
              59:          56 Load 58(g_samCube)
              60:    8(fvec4) ImageSampleImplicitLod 59 51
              61:    8(fvec4) Load 14(ColorOut)
              62:    8(fvec4) FAdd 61 60
                              Store 14(ColorOut) 62
                              Line 1 26 0
              63:          18 Load 20(g_sam)
              65:    7(float) CompositeExtract 64 0
              66:    7(float) CompositeExtract 64 1
              67:   22(fvec2) CompositeConstruct 65 66
              70:    7(float) CompositeExtract 64 3
              71:    8(fvec4) ImageSampleExplicitLod 63 67 Lod 70
              72:    8(fvec4) Load 14(ColorOut)
              73:    8(fvec4) FAdd 72 71
                              Store 14(ColorOut) 73
                              Line 1 27 0
              74:          30 Load 32(g_sam1D)
              76:    7(float) CompositeExtract 75 0
              77:    7(float) CompositeExtract 75 3
              78:    8(fvec4) ImageSampleExplicitLod 74 76 Lod 77
              79:    8(fvec4) Load 14(ColorOut)
              80:    8(fvec4) FAdd 79 78
                              Store 14(ColorOut) 80
                              Line 1 28 0
              81:          18 Load 38(g_sam2D)
              83:    7(float) CompositeExtract 82 0
              84:    7(float) CompositeExtract 82 1
              85:   22(fvec2) CompositeConstruct 83 84
              86:    7(float) CompositeExtract 82 3
              87:    8(fvec4) ImageSampleExplicitLod 81 85 Lod 86
              88:    8(fvec4) Load 14(ColorOut)
              89:    8(fvec4) FAdd 88 87
                              Store 14(ColorOut) 89
                              Line 1 29 0
              90:          46 Load 48(g_sam3D)
              92:    7(float) CompositeExtract 91 0
              93:    7(float) CompositeExtract 91 1
              94:    7(float) CompositeExtract 91 2
              95:   50(fvec3) CompositeConstruct 92 93 94
              96:    7(float) CompositeExtract 91 3
              97:    8(fvec4) ImageSampleExplicitLod 90 95 Lod 96
              98:    8(fvec4) Load 14(ColorOut)
              99:    8(fvec4) FAdd 98 97
                              Store 14(ColorOut) 99
                              Line 1 30 0
             100:          56 Load 58(g_samCube)
             101:    7(float) CompositeExtract 91 0
             102:    7(float) CompositeExtract 91 1
             103:    7(float) CompositeExtract 91 2
             104:   50(fvec3) CompositeConstruct 101 102 103
             105:    7(float) CompositeExtract 91 3
             106:    8(fvec4) ImageSampleExplicitLod 100 104 Lod 105
             107:    8(fvec4) Load 14(ColorOut)
             108:    8(fvec4) FAdd 107 106
                              Store 14(ColorOut) 108
                              Line 1 32 0
             113:    8(fvec4) Load 14(ColorOut)
             115:    8(fvec4) CompositeConstruct 114 114 114 114
             116:    8(fvec4) FDiv 113 115
             117:     13(ptr) AccessChain 110(psout) 112
                              Store 117 116
                              Line 1 33 0
             121:    120(ptr) AccessChain 110(psout) 118
                              Store 121 119
                              Line 1 35 0
             122:9(PS_OUTPUT) Load 110(psout)
                              ReturnValue 122
                              FunctionEnd
