hlsl.samplegrad.basic.dx10.vert
Shader version: 500
0:? Sequence
0:27  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
0:27    Function Parameters: 
0:?     Sequence
0:30      Sequence
0:30        move second child to first child ( temp 4-component vector of float)
0:30          'txval10' ( temp 4-component vector of float)
0:30          textureGrad ( temp 4-component vector of float)
0:30            Construct combined texture-sampler ( temp sampler1D)
0:30              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:30              'g_sSamp' (layout( binding=0) uniform sampler)
0:30            Constant:
0:30              0.100000
0:30            Constant:
0:30              1.100000
0:30            Constant:
0:30              1.200000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of int)
0:31          'txval11' ( temp 4-component vector of int)
0:31          textureGrad ( temp 4-component vector of int)
0:31            Construct combined texture-sampler ( temp isampler1D)
0:31              'g_tTex1di4' ( uniform itexture1D)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:31            Constant:
0:31              0.200000
0:31            Constant:
0:31              1.100000
0:31            Constant:
0:31              1.200000
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of uint)
0:32          'txval12' ( temp 4-component vector of uint)
0:32          textureGrad ( temp 4-component vector of uint)
0:32            Construct combined texture-sampler ( temp usampler1D)
0:32              'g_tTex1du4' ( uniform utexture1D)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:32            Constant:
0:32              0.300000
0:32            Constant:
0:32              1.100000
0:32            Constant:
0:32              1.200000
0:34      Sequence
0:34        move second child to first child ( temp 4-component vector of float)
0:34          'txval20' ( temp 4-component vector of float)
0:34          textureGrad ( temp 4-component vector of float)
0:34            Construct combined texture-sampler ( temp sampler2D)
0:34              'g_tTex2df4' ( uniform texture2D)
0:34              'g_sSamp' (layout( binding=0) uniform sampler)
0:34            Constant:
0:34              0.100000
0:34              0.200000
0:34            Constant:
0:34              1.100000
0:34              1.200000
0:34            Constant:
0:34              1.100000
0:34              1.200000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of int)
0:35          'txval21' ( temp 4-component vector of int)
0:35          textureGrad ( temp 4-component vector of int)
0:35            Construct combined texture-sampler ( temp isampler2D)
0:35              'g_tTex2di4' ( uniform itexture2D)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:35            Constant:
0:35              0.300000
0:35              0.400000
0:35            Constant:
0:35              1.100000
0:35              1.200000
0:35            Constant:
0:35              1.100000
0:35              1.200000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of uint)
0:36          'txval22' ( temp 4-component vector of uint)
0:36          textureGrad ( temp 4-component vector of uint)
0:36            Construct combined texture-sampler ( temp usampler2D)
0:36              'g_tTex2du4' ( uniform utexture2D)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:36            Constant:
0:36              0.500000
0:36              0.600000
0:36            Constant:
0:36              1.100000
0:36              1.200000
0:36            Constant:
0:36              1.100000
0:36              1.200000
0:38      Sequence
0:38        move second child to first child ( temp 4-component vector of float)
0:38          'txval30' ( temp 4-component vector of float)
0:38          textureGrad ( temp 4-component vector of float)
0:38            Construct combined texture-sampler ( temp sampler3D)
0:38              'g_tTex3df4' ( uniform texture3D)
0:38              'g_sSamp' (layout( binding=0) uniform sampler)
0:38            Constant:
0:38              0.100000
0:38              0.200000
0:38              0.300000
0:38            Constant:
0:38              1.100000
0:38              1.200000
0:38              1.300000
0:38            Constant:
0:38              1.100000
0:38              1.200000
0:38              1.300000
0:39      Sequence
0:39        move second child to first child ( temp 4-component vector of int)
0:39          'txval31' ( temp 4-component vector of int)
0:39          textureGrad ( temp 4-component vector of int)
0:39            Construct combined texture-sampler ( temp isampler3D)
0:39              'g_tTex3di4' ( uniform itexture3D)
0:39              'g_sSamp' (layout( binding=0) uniform sampler)
0:39            Constant:
0:39              0.400000
0:39              0.500000
0:39              0.600000
0:39            Constant:
0:39              1.100000
0:39              1.200000
0:39              1.300000
0:39            Constant:
0:39              1.100000
0:39              1.200000
0:39              1.300000
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of uint)
0:40          'txval32' ( temp 4-component vector of uint)
0:40          textureGrad ( temp 4-component vector of uint)
0:40            Construct combined texture-sampler ( temp usampler3D)
0:40              'g_tTex3du4' ( uniform utexture3D)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:40            Constant:
0:40              0.700000
0:40              0.800000
0:40              0.900000
0:40            Constant:
0:40              1.100000
0:40              1.200000
0:40              1.300000
0:40            Constant:
0:40              1.100000
0:40              1.200000
0:40              1.300000
0:42      Sequence
0:42        move second child to first child ( temp 4-component vector of float)
0:42          'txval40' ( temp 4-component vector of float)
0:42          textureGrad ( temp 4-component vector of float)
0:42            Construct combined texture-sampler ( temp samplerCube)
0:42              'g_tTexcdf4' ( uniform textureCube)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            Constant:
0:42              0.100000
0:42              0.200000
0:42              0.300000
0:42            Constant:
0:42              1.100000
0:42              1.200000
0:42              1.300000
0:42            Constant:
0:42              1.100000
0:42              1.200000
0:42              1.300000
0:43      Sequence
0:43        move second child to first child ( temp 4-component vector of int)
0:43          'txval41' ( temp 4-component vector of int)
0:43          textureGrad ( temp 4-component vector of int)
0:43            Construct combined texture-sampler ( temp isamplerCube)
0:43              'g_tTexcdi4' ( uniform itextureCube)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:43            Constant:
0:43              0.400000
0:43              0.500000
0:43              0.600000
0:43            Constant:
0:43              1.100000
0:43              1.200000
0:43              1.300000
0:43            Constant:
0:43              1.100000
0:43              1.200000
0:43              1.300000
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of uint)
0:44          'txval42' ( temp 4-component vector of uint)
0:44          textureGrad ( temp 4-component vector of uint)
0:44            Construct combined texture-sampler ( temp usamplerCube)
0:44              'g_tTexcdu4' ( uniform utextureCube)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            Constant:
0:44              0.700000
0:44              0.800000
0:44              0.900000
0:44            Constant:
0:44              1.100000
0:44              1.200000
0:44              1.300000
0:44            Constant:
0:44              1.100000
0:44              1.200000
0:44              1.300000
0:46      move second child to first child ( temp 4-component vector of float)
0:46        Pos: direct index for structure ( temp 4-component vector of float)
0:46          'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:46          Constant:
0:46            0 (const int)
0:46        Constant:
0:46          0.000000
0:46          0.000000
0:46          0.000000
0:46          0.000000
0:48      Branch: Return with expression
0:48        'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:27  Function Definition: main( ( temp void)
0:27    Function Parameters: 
0:?     Sequence
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:27          Pos: direct index for structure ( temp 4-component vector of float)
0:27            Function Call: @main( ( temp structure{ temp 4-component vector of float Pos})
0:27            Constant:
0:27              0 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:?     'g_tTex1di4' ( uniform itexture1D)
0:?     'g_tTex1du4' ( uniform utexture1D)
0:?     'g_tTex2df4' ( uniform texture2D)
0:?     'g_tTex2di4' ( uniform itexture2D)
0:?     'g_tTex2du4' ( uniform utexture2D)
0:?     'g_tTex3df4' ( uniform texture3D)
0:?     'g_tTex3di4' ( uniform itexture3D)
0:?     'g_tTex3du4' ( uniform utexture3D)
0:?     'g_tTexcdf4' ( uniform textureCube)
0:?     'g_tTexcdi4' ( uniform itextureCube)
0:?     'g_tTexcdu4' ( uniform utextureCube)
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)


Linked vertex stage:


Shader version: 500
0:? Sequence
0:27  Function Definition: @main( ( temp structure{ temp 4-component vector of float Pos})
0:27    Function Parameters: 
0:?     Sequence
0:30      Sequence
0:30        move second child to first child ( temp 4-component vector of float)
0:30          'txval10' ( temp 4-component vector of float)
0:30          textureGrad ( temp 4-component vector of float)
0:30            Construct combined texture-sampler ( temp sampler1D)
0:30              'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:30              'g_sSamp' (layout( binding=0) uniform sampler)
0:30            Constant:
0:30              0.100000
0:30            Constant:
0:30              1.100000
0:30            Constant:
0:30              1.200000
0:31      Sequence
0:31        move second child to first child ( temp 4-component vector of int)
0:31          'txval11' ( temp 4-component vector of int)
0:31          textureGrad ( temp 4-component vector of int)
0:31            Construct combined texture-sampler ( temp isampler1D)
0:31              'g_tTex1di4' ( uniform itexture1D)
0:31              'g_sSamp' (layout( binding=0) uniform sampler)
0:31            Constant:
0:31              0.200000
0:31            Constant:
0:31              1.100000
0:31            Constant:
0:31              1.200000
0:32      Sequence
0:32        move second child to first child ( temp 4-component vector of uint)
0:32          'txval12' ( temp 4-component vector of uint)
0:32          textureGrad ( temp 4-component vector of uint)
0:32            Construct combined texture-sampler ( temp usampler1D)
0:32              'g_tTex1du4' ( uniform utexture1D)
0:32              'g_sSamp' (layout( binding=0) uniform sampler)
0:32            Constant:
0:32              0.300000
0:32            Constant:
0:32              1.100000
0:32            Constant:
0:32              1.200000
0:34      Sequence
0:34        move second child to first child ( temp 4-component vector of float)
0:34          'txval20' ( temp 4-component vector of float)
0:34          textureGrad ( temp 4-component vector of float)
0:34            Construct combined texture-sampler ( temp sampler2D)
0:34              'g_tTex2df4' ( uniform texture2D)
0:34              'g_sSamp' (layout( binding=0) uniform sampler)
0:34            Constant:
0:34              0.100000
0:34              0.200000
0:34            Constant:
0:34              1.100000
0:34              1.200000
0:34            Constant:
0:34              1.100000
0:34              1.200000
0:35      Sequence
0:35        move second child to first child ( temp 4-component vector of int)
0:35          'txval21' ( temp 4-component vector of int)
0:35          textureGrad ( temp 4-component vector of int)
0:35            Construct combined texture-sampler ( temp isampler2D)
0:35              'g_tTex2di4' ( uniform itexture2D)
0:35              'g_sSamp' (layout( binding=0) uniform sampler)
0:35            Constant:
0:35              0.300000
0:35              0.400000
0:35            Constant:
0:35              1.100000
0:35              1.200000
0:35            Constant:
0:35              1.100000
0:35              1.200000
0:36      Sequence
0:36        move second child to first child ( temp 4-component vector of uint)
0:36          'txval22' ( temp 4-component vector of uint)
0:36          textureGrad ( temp 4-component vector of uint)
0:36            Construct combined texture-sampler ( temp usampler2D)
0:36              'g_tTex2du4' ( uniform utexture2D)
0:36              'g_sSamp' (layout( binding=0) uniform sampler)
0:36            Constant:
0:36              0.500000
0:36              0.600000
0:36            Constant:
0:36              1.100000
0:36              1.200000
0:36            Constant:
0:36              1.100000
0:36              1.200000
0:38      Sequence
0:38        move second child to first child ( temp 4-component vector of float)
0:38          'txval30' ( temp 4-component vector of float)
0:38          textureGrad ( temp 4-component vector of float)
0:38            Construct combined texture-sampler ( temp sampler3D)
0:38              'g_tTex3df4' ( uniform texture3D)
0:38              'g_sSamp' (layout( binding=0) uniform sampler)
0:38            Constant:
0:38              0.100000
0:38              0.200000
0:38              0.300000
0:38            Constant:
0:38              1.100000
0:38              1.200000
0:38              1.300000
0:38            Constant:
0:38              1.100000
0:38              1.200000
0:38              1.300000
0:39      Sequence
0:39        move second child to first child ( temp 4-component vector of int)
0:39          'txval31' ( temp 4-component vector of int)
0:39          textureGrad ( temp 4-component vector of int)
0:39            Construct combined texture-sampler ( temp isampler3D)
0:39              'g_tTex3di4' ( uniform itexture3D)
0:39              'g_sSamp' (layout( binding=0) uniform sampler)
0:39            Constant:
0:39              0.400000
0:39              0.500000
0:39              0.600000
0:39            Constant:
0:39              1.100000
0:39              1.200000
0:39              1.300000
0:39            Constant:
0:39              1.100000
0:39              1.200000
0:39              1.300000
0:40      Sequence
0:40        move second child to first child ( temp 4-component vector of uint)
0:40          'txval32' ( temp 4-component vector of uint)
0:40          textureGrad ( temp 4-component vector of uint)
0:40            Construct combined texture-sampler ( temp usampler3D)
0:40              'g_tTex3du4' ( uniform utexture3D)
0:40              'g_sSamp' (layout( binding=0) uniform sampler)
0:40            Constant:
0:40              0.700000
0:40              0.800000
0:40              0.900000
0:40            Constant:
0:40              1.100000
0:40              1.200000
0:40              1.300000
0:40            Constant:
0:40              1.100000
0:40              1.200000
0:40              1.300000
0:42      Sequence
0:42        move second child to first child ( temp 4-component vector of float)
0:42          'txval40' ( temp 4-component vector of float)
0:42          textureGrad ( temp 4-component vector of float)
0:42            Construct combined texture-sampler ( temp samplerCube)
0:42              'g_tTexcdf4' ( uniform textureCube)
0:42              'g_sSamp' (layout( binding=0) uniform sampler)
0:42            Constant:
0:42              0.100000
0:42              0.200000
0:42              0.300000
0:42            Constant:
0:42              1.100000
0:42              1.200000
0:42              1.300000
0:42            Constant:
0:42              1.100000
0:42              1.200000
0:42              1.300000
0:43      Sequence
0:43        move second child to first child ( temp 4-component vector of int)
0:43          'txval41' ( temp 4-component vector of int)
0:43          textureGrad ( temp 4-component vector of int)
0:43            Construct combined texture-sampler ( temp isamplerCube)
0:43              'g_tTexcdi4' ( uniform itextureCube)
0:43              'g_sSamp' (layout( binding=0) uniform sampler)
0:43            Constant:
0:43              0.400000
0:43              0.500000
0:43              0.600000
0:43            Constant:
0:43              1.100000
0:43              1.200000
0:43              1.300000
0:43            Constant:
0:43              1.100000
0:43              1.200000
0:43              1.300000
0:44      Sequence
0:44        move second child to first child ( temp 4-component vector of uint)
0:44          'txval42' ( temp 4-component vector of uint)
0:44          textureGrad ( temp 4-component vector of uint)
0:44            Construct combined texture-sampler ( temp usamplerCube)
0:44              'g_tTexcdu4' ( uniform utextureCube)
0:44              'g_sSamp' (layout( binding=0) uniform sampler)
0:44            Constant:
0:44              0.700000
0:44              0.800000
0:44              0.900000
0:44            Constant:
0:44              1.100000
0:44              1.200000
0:44              1.300000
0:44            Constant:
0:44              1.100000
0:44              1.200000
0:44              1.300000
0:46      move second child to first child ( temp 4-component vector of float)
0:46        Pos: direct index for structure ( temp 4-component vector of float)
0:46          'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:46          Constant:
0:46            0 (const int)
0:46        Constant:
0:46          0.000000
0:46          0.000000
0:46          0.000000
0:46          0.000000
0:48      Branch: Return with expression
0:48        'vsout' ( temp structure{ temp 4-component vector of float Pos})
0:27  Function Definition: main( ( temp void)
0:27    Function Parameters: 
0:?     Sequence
0:27      Sequence
0:27        move second child to first child ( temp 4-component vector of float)
0:?           '@entryPointOutput.Pos' ( out 4-component vector of float Position)
0:27          Pos: direct index for structure ( temp 4-component vector of float)
0:27            Function Call: @main( ( temp structure{ temp 4-component vector of float Pos})
0:27            Constant:
0:27              0 (const int)
0:?   Linker Objects
0:?     'g_sSamp' (layout( binding=0) uniform sampler)
0:?     'g_tTex1df4a' (layout( binding=1) uniform texture1D)
0:?     'g_tTex1df4' (layout( binding=0) uniform texture1D)
0:?     'g_tTex1di4' ( uniform itexture1D)
0:?     'g_tTex1du4' ( uniform utexture1D)
0:?     'g_tTex2df4' ( uniform texture2D)
0:?     'g_tTex2di4' ( uniform itexture2D)
0:?     'g_tTex2du4' ( uniform utexture2D)
0:?     'g_tTex3df4' ( uniform texture3D)
0:?     'g_tTex3di4' ( uniform itexture3D)
0:?     'g_tTex3du4' ( uniform utexture3D)
0:?     'g_tTexcdf4' ( uniform textureCube)
0:?     'g_tTexcdi4' ( uniform itextureCube)
0:?     'g_tTexcdu4' ( uniform utextureCube)
0:?     '@entryPointOutput.Pos' ( out 4-component vector of float Position)

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

                              Capability Shader
                              Capability Sampled1D
               1:             ExtInstImport  "GLSL.std.450"
                              MemoryModel Logical GLSL450
                              EntryPoint Vertex 4  "main" 162
                              Source HLSL 500
                              Name 4  "main"
                              Name 8  "VS_OUTPUT"
                              MemberName 8(VS_OUTPUT) 0  "Pos"
                              Name 10  "@main("
                              Name 13  "txval10"
                              Name 16  "g_tTex1df4"
                              Name 20  "g_sSamp"
                              Name 31  "txval11"
                              Name 34  "g_tTex1di4"
                              Name 44  "txval12"
                              Name 47  "g_tTex1du4"
                              Name 54  "txval20"
                              Name 57  "g_tTex2df4"
                              Name 66  "txval21"
                              Name 69  "g_tTex2di4"
                              Name 77  "txval22"
                              Name 80  "g_tTex2du4"
                              Name 89  "txval30"
                              Name 92  "g_tTex3df4"
                              Name 102  "txval31"
                              Name 105  "g_tTex3di4"
                              Name 112  "txval32"
                              Name 115  "g_tTex3du4"
                              Name 125  "txval40"
                              Name 128  "g_tTexcdf4"
                              Name 134  "txval41"
                              Name 137  "g_tTexcdi4"
                              Name 143  "txval42"
                              Name 146  "g_tTexcdu4"
                              Name 153  "vsout"
                              Name 162  "@entryPointOutput.Pos"
                              Name 165  "g_tTex1df4a"
                              Decorate 16(g_tTex1df4) DescriptorSet 0
                              Decorate 16(g_tTex1df4) Binding 0
                              Decorate 20(g_sSamp) DescriptorSet 0
                              Decorate 20(g_sSamp) Binding 0
                              Decorate 34(g_tTex1di4) DescriptorSet 0
                              Decorate 34(g_tTex1di4) Binding 2
                              Decorate 47(g_tTex1du4) DescriptorSet 0
                              Decorate 47(g_tTex1du4) Binding 3
                              Decorate 57(g_tTex2df4) DescriptorSet 0
                              Decorate 57(g_tTex2df4) Binding 4
                              Decorate 69(g_tTex2di4) DescriptorSet 0
                              Decorate 69(g_tTex2di4) Binding 5
                              Decorate 80(g_tTex2du4) DescriptorSet 0
                              Decorate 80(g_tTex2du4) Binding 6
                              Decorate 92(g_tTex3df4) DescriptorSet 0
                              Decorate 92(g_tTex3df4) Binding 7
                              Decorate 105(g_tTex3di4) DescriptorSet 0
                              Decorate 105(g_tTex3di4) Binding 8
                              Decorate 115(g_tTex3du4) DescriptorSet 0
                              Decorate 115(g_tTex3du4) Binding 9
                              Decorate 128(g_tTexcdf4) DescriptorSet 0
                              Decorate 128(g_tTexcdf4) Binding 10
                              Decorate 137(g_tTexcdi4) DescriptorSet 0
                              Decorate 137(g_tTexcdi4) Binding 11
                              Decorate 146(g_tTexcdu4) DescriptorSet 0
                              Decorate 146(g_tTexcdu4) Binding 12
                              Decorate 162(@entryPointOutput.Pos) BuiltIn Position
                              Decorate 165(g_tTex1df4a) DescriptorSet 0
                              Decorate 165(g_tTex1df4a) Binding 1
               2:             TypeVoid
               3:             TypeFunction 2
               6:             TypeFloat 32
               7:             TypeVector 6(float) 4
    8(VS_OUTPUT):             TypeStruct 7(fvec4)
               9:             TypeFunction 8(VS_OUTPUT)
              12:             TypePointer Function 7(fvec4)
              14:             TypeImage 6(float) 1D sampled format:Unknown
              15:             TypePointer UniformConstant 14
  16(g_tTex1df4):     15(ptr) Variable UniformConstant
              18:             TypeSampler
              19:             TypePointer UniformConstant 18
     20(g_sSamp):     19(ptr) Variable UniformConstant
              22:             TypeSampledImage 14
              24:    6(float) Constant 1036831949
              25:    6(float) Constant 1066192077
              26:    6(float) Constant 1067030938
              28:             TypeInt 32 1
              29:             TypeVector 28(int) 4
              30:             TypePointer Function 29(ivec4)
              32:             TypeImage 28(int) 1D sampled format:Unknown
              33:             TypePointer UniformConstant 32
  34(g_tTex1di4):     33(ptr) Variable UniformConstant
              37:             TypeSampledImage 32
              39:    6(float) Constant 1045220557
              41:             TypeInt 32 0
              42:             TypeVector 41(int) 4
              43:             TypePointer Function 42(ivec4)
              45:             TypeImage 41(int) 1D sampled format:Unknown
              46:             TypePointer UniformConstant 45
  47(g_tTex1du4):     46(ptr) Variable UniformConstant
              50:             TypeSampledImage 45
              52:    6(float) Constant 1050253722
              55:             TypeImage 6(float) 2D sampled format:Unknown
              56:             TypePointer UniformConstant 55
  57(g_tTex2df4):     56(ptr) Variable UniformConstant
              60:             TypeSampledImage 55
              62:             TypeVector 6(float) 2
              63:   62(fvec2) ConstantComposite 24 39
              64:   62(fvec2) ConstantComposite 25 26
              67:             TypeImage 28(int) 2D sampled format:Unknown
              68:             TypePointer UniformConstant 67
  69(g_tTex2di4):     68(ptr) Variable UniformConstant
              72:             TypeSampledImage 67
              74:    6(float) Constant 1053609165
              75:   62(fvec2) ConstantComposite 52 74
              78:             TypeImage 41(int) 2D sampled format:Unknown
              79:             TypePointer UniformConstant 78
  80(g_tTex2du4):     79(ptr) Variable UniformConstant
              83:             TypeSampledImage 78
              85:    6(float) Constant 1056964608
              86:    6(float) Constant 1058642330
              87:   62(fvec2) ConstantComposite 85 86
              90:             TypeImage 6(float) 3D sampled format:Unknown
              91:             TypePointer UniformConstant 90
  92(g_tTex3df4):     91(ptr) Variable UniformConstant
              95:             TypeSampledImage 90
              97:             TypeVector 6(float) 3
              98:   97(fvec3) ConstantComposite 24 39 52
              99:    6(float) Constant 1067869798
             100:   97(fvec3) ConstantComposite 25 26 99
             103:             TypeImage 28(int) 3D sampled format:Unknown
             104:             TypePointer UniformConstant 103
 105(g_tTex3di4):    104(ptr) Variable UniformConstant
             108:             TypeSampledImage 103
             110:   97(fvec3) ConstantComposite 74 85 86
             113:             TypeImage 41(int) 3D sampled format:Unknown
             114:             TypePointer UniformConstant 113
 115(g_tTex3du4):    114(ptr) Variable UniformConstant
             118:             TypeSampledImage 113
             120:    6(float) Constant 1060320051
             121:    6(float) Constant 1061997773
             122:    6(float) Constant 1063675494
             123:   97(fvec3) ConstantComposite 120 121 122
             126:             TypeImage 6(float) Cube sampled format:Unknown
             127:             TypePointer UniformConstant 126
 128(g_tTexcdf4):    127(ptr) Variable UniformConstant
             131:             TypeSampledImage 126
             135:             TypeImage 28(int) Cube sampled format:Unknown
             136:             TypePointer UniformConstant 135
 137(g_tTexcdi4):    136(ptr) Variable UniformConstant
             140:             TypeSampledImage 135
             144:             TypeImage 41(int) Cube sampled format:Unknown
             145:             TypePointer UniformConstant 144
 146(g_tTexcdu4):    145(ptr) Variable UniformConstant
             149:             TypeSampledImage 144
             152:             TypePointer Function 8(VS_OUTPUT)
             154:     28(int) Constant 0
             155:    6(float) Constant 0
             156:    7(fvec4) ConstantComposite 155 155 155 155
             161:             TypePointer Output 7(fvec4)
162(@entryPointOutput.Pos):    161(ptr) Variable Output
165(g_tTex1df4a):     15(ptr) Variable UniformConstant
         4(main):           2 Function None 3
               5:             Label
             163:8(VS_OUTPUT) FunctionCall 10(@main()
             164:    7(fvec4) CompositeExtract 163 0
                              Store 162(@entryPointOutput.Pos) 164
                              Return
                              FunctionEnd
      10(@main():8(VS_OUTPUT) Function None 9
              11:             Label
     13(txval10):     12(ptr) Variable Function
     31(txval11):     30(ptr) Variable Function
     44(txval12):     43(ptr) Variable Function
     54(txval20):     12(ptr) Variable Function
     66(txval21):     30(ptr) Variable Function
     77(txval22):     43(ptr) Variable Function
     89(txval30):     12(ptr) Variable Function
    102(txval31):     30(ptr) Variable Function
    112(txval32):     43(ptr) Variable Function
    125(txval40):     12(ptr) Variable Function
    134(txval41):     30(ptr) Variable Function
    143(txval42):     43(ptr) Variable Function
      153(vsout):    152(ptr) Variable Function
              17:          14 Load 16(g_tTex1df4)
              21:          18 Load 20(g_sSamp)
              23:          22 SampledImage 17 21
              27:    7(fvec4) ImageSampleExplicitLod 23 24 Grad 25 26
                              Store 13(txval10) 27
              35:          32 Load 34(g_tTex1di4)
              36:          18 Load 20(g_sSamp)
              38:          37 SampledImage 35 36
              40:   29(ivec4) ImageSampleExplicitLod 38 39 Grad 25 26
                              Store 31(txval11) 40
              48:          45 Load 47(g_tTex1du4)
              49:          18 Load 20(g_sSamp)
              51:          50 SampledImage 48 49
              53:   42(ivec4) ImageSampleExplicitLod 51 52 Grad 25 26
                              Store 44(txval12) 53
              58:          55 Load 57(g_tTex2df4)
              59:          18 Load 20(g_sSamp)
              61:          60 SampledImage 58 59
              65:    7(fvec4) ImageSampleExplicitLod 61 63 Grad 64 64
                              Store 54(txval20) 65
              70:          67 Load 69(g_tTex2di4)
              71:          18 Load 20(g_sSamp)
              73:          72 SampledImage 70 71
              76:   29(ivec4) ImageSampleExplicitLod 73 75 Grad 64 64
                              Store 66(txval21) 76
              81:          78 Load 80(g_tTex2du4)
              82:          18 Load 20(g_sSamp)
              84:          83 SampledImage 81 82
              88:   42(ivec4) ImageSampleExplicitLod 84 87 Grad 64 64
                              Store 77(txval22) 88
              93:          90 Load 92(g_tTex3df4)
              94:          18 Load 20(g_sSamp)
              96:          95 SampledImage 93 94
             101:    7(fvec4) ImageSampleExplicitLod 96 98 Grad 100 100
                              Store 89(txval30) 101
             106:         103 Load 105(g_tTex3di4)
             107:          18 Load 20(g_sSamp)
             109:         108 SampledImage 106 107
             111:   29(ivec4) ImageSampleExplicitLod 109 110 Grad 100 100
                              Store 102(txval31) 111
             116:         113 Load 115(g_tTex3du4)
             117:          18 Load 20(g_sSamp)
             119:         118 SampledImage 116 117
             124:   42(ivec4) ImageSampleExplicitLod 119 123 Grad 100 100
                              Store 112(txval32) 124
             129:         126 Load 128(g_tTexcdf4)
             130:          18 Load 20(g_sSamp)
             132:         131 SampledImage 129 130
             133:    7(fvec4) ImageSampleExplicitLod 132 98 Grad 100 100
                              Store 125(txval40) 133
             138:         135 Load 137(g_tTexcdi4)
             139:          18 Load 20(g_sSamp)
             141:         140 SampledImage 138 139
             142:   29(ivec4) ImageSampleExplicitLod 141 110 Grad 100 100
                              Store 134(txval41) 142
             147:         144 Load 146(g_tTexcdu4)
             148:          18 Load 20(g_sSamp)
             150:         149 SampledImage 147 148
             151:   42(ivec4) ImageSampleExplicitLod 150 123 Grad 100 100
                              Store 143(txval42) 151
             157:     12(ptr) AccessChain 153(vsout) 154
                              Store 157 156
             158:8(VS_OUTPUT) Load 153(vsout)
                              ReturnValue 158
                              FunctionEnd
