//
// Generated by Microsoft (R) HLSL Shader Compiler 6.3.9600.17672
//
//   using 3Dmigoto v1.2.27 on Mon Feb 08 02:07:03 2016
//
//
// Buffer Definitions: 
//
// cbuffer WorldBuffer
// {
//
//   struct WorldStruct
//   {
//       
//       row_major float4x4 ViewProject;// Offset:    0
//       
//       struct WorldStruct_PerInstanceData
//       {
//           
//           row_major float4x4 World;  // Offset:   64
//           row_major float4x4 WorldViewProject;// Offset:  128
//
//       } PerInstance[256];            // Offset:   64
//
//   } WorldParameters;                 // Offset:    0 Size: 32832
//
// }
//
// cbuffer TessellationBuffer
// {
//
//   struct TessellationStruct
//   {
//       
//       float4 TessellationSettings;   // Offset:    0
//       float4 TessellationSettings2;  // Offset:   16
//
//   } TessellationParameters[12];      // Offset:    0 Size:   384
//
// }
//
// cbuffer SceneBuffer
// {
//
//   row_major float4x4 View;           // Offset:    0 Size:    64 [unused]
//   row_major float4x4 ScreenMatrix;   // Offset:   64 Size:    64 [unused]
//   float2 DepthExportScale;           // Offset:  128 Size:     8 [unused]
//   float2 __padding0;                 // Offset:  136 Size:     8 [unused]
//   float4 FogParams;                  // Offset:  144 Size:    16 [unused]
//   float3 __CameraPosition;           // Offset:  160 Size:    12
//   float __padding12;                 // Offset:  172 Size:     4 [unused]
//   float3 CameraDirection;            // Offset:  176 Size:    12 [unused]
//   float __padding9;                  // Offset:  188 Size:     4 [unused]
//   float3 DepthFactors;               // Offset:  192 Size:    12 [unused]
//   float __padding10;                 // Offset:  204 Size:     4 [unused]
//   float3 ShadowDepthBiasAndLightType;// Offset:  208 Size:    12 [unused]
//   float __padding11;                 // Offset:  220 Size:     4 [unused]
//   float4 SubframeViewport;           // Offset:  224 Size:    16 [unused]
//   row_major float3x4 DepthToWorld;   // Offset:  240 Size:    48 [unused]
//   float4 DepthToView;                // Offset:  288 Size:    16 [unused]
//   float4 OneOverDepthToView;         // Offset:  304 Size:    16 [unused]
//   float4 DepthToW;                   // Offset:  320 Size:    16 [unused]
//   float4 ClipPlane;                  // Offset:  336 Size:    16 [unused]
//   float2 ViewportDepthScaleOffset;   // Offset:  352 Size:     8 [unused]
//   float2 __padding1;                 // Offset:  360 Size:     8 [unused]
//   float2 ColorDOFDepthScaleOffset;   // Offset:  368 Size:     8 [unused]
//   float2 __padding2;                 // Offset:  376 Size:     8 [unused]
//   float4 TimeVector;                 // Offset:  384 Size:    16 [unused]
//   float4 FogParams2;                 // Offset:  400 Size:    16 [unused]
//   float4 FogParams3;                 // Offset:  416 Size:    16 [unused]
//   float3 GlobalAmbient;              // Offset:  432 Size:    12 [unused]
//   float __padding8;                  // Offset:  444 Size:     4 [unused]
//   float4 GlobalParams[16];           // Offset:  448 Size:   256 [unused]
//   float4 ViewToFogH;                 // Offset:  704 Size:    16 [unused]
//   float4 ScreenExtents;              // Offset:  720 Size:    16 [unused]
//   float2 ScreenResolution;           // Offset:  736 Size:     8 [unused]
//   float2 __padding3;                 // Offset:  744 Size:     8 [unused]
//   float4 PSSMToMap1Lin;              // Offset:  752 Size:    16 [unused]
//   float4 PSSMToMap1Const;            // Offset:  768 Size:    16 [unused]
//   float4 PSSMToMap2Lin;              // Offset:  784 Size:    16 [unused]
//   float4 PSSMToMap2Const;            // Offset:  800 Size:    16 [unused]
//   float4 PSSMToMap3Lin;              // Offset:  816 Size:    16 [unused]
//   float4 PSSMToMap3Const;            // Offset:  832 Size:    16 [unused]
//   float4 PSSMDistances;              // Offset:  848 Size:    16 [unused]
//   row_major float4x4 WorldToPSSM0;   // Offset:  864 Size:    64 [unused]
//   row_major float4x4 PrevViewProject;// Offset:  928 Size:    64 [unused]
//   row_major float4x4 PrevWorld;      // Offset:  992 Size:    64 [unused]
//   row_major float4x4 ViewT;          // Offset: 1056 Size:    64 [unused]
//   float4 PSSMExtents;                // Offset: 1120 Size:    16 [unused]
//   float4 ShadowAtlasResolution;      // Offset: 1136 Size:    16 [unused]
//   float4 UnitRimData[3];             // Offset: 1152 Size:    48 [unused]
//   float3 __CameraPositionForCorrection;// Offset: 1200 Size:    12
//   float __padding7;                  // Offset: 1212 Size:     4 [unused]
//   row_major float4x4 CameraViewProject;// Offset: 1216 Size:    64 [unused]
//   float4 BackBufferResolution;       // Offset: 1280 Size:    16 [unused]
//   row_major float4x4 InverseProjection;// Offset: 1296 Size:    64 [unused]
//   float4 StereoOffset;               // Offset: 1360 Size:    16 [unused]
//   row_major float4x4 Projection;     // Offset: 1376 Size:    64 [unused]
//   row_major float4x4 ViewInv;        // Offset: 1440 Size:    64 [unused]
//   float4 ColorSSAO;                  // Offset: 1504 Size:    16 [unused]
//   float4 GlobalFogColor;             // Offset: 1520 Size:    16 [unused]
//   float4 VolumetricLightGlobalParams;// Offset: 1536 Size:    16 [unused]
//   float4 SnowParams01;               // Offset: 1552 Size:    16 [unused]
//   float4 SnowParams02;               // Offset: 1568 Size:    16 [unused]
//   float4 SnowParams03;               // Offset: 1584 Size:    16 [unused]
//   int SSREnabled;                    // Offset: 1600 Size:     4 [unused]
//   int __padding4;                    // Offset: 1604 Size:     4 [unused]
//   int __padding5;                    // Offset: 1608 Size:     4 [unused]
//   int __padding6;                    // Offset: 1612 Size:     4 [unused]
//
// }
//
// cbuffer MaterialBuffer
// {
//
//   float4 MaterialParams[512];        // Offset:    0 Size:  8192
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// SamplerGenericTrilinearWrap       sampler      NA          NA   11        1
// DisplacementMask_texture          texture  float4          2d    0        1
// DisplacementMap_texture           texture  float4          2d    1        1
// WorldBuffer                       cbuffer      NA          NA    0        1
// TessellationBuffer                cbuffer      NA          NA    1        1
// SceneBuffer                       cbuffer      NA          NA    2        1
// MaterialBuffer                    cbuffer      NA          NA    3        1
//
//
//
// Patch Constant signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TessFactor            0   x           0  TRIEDGE   float       
// POSITION                 3    yzw        0     NONE   float    yzw
// SV_TessFactor            1   x           1  TRIEDGE   float       
// POSITION                 4    yzw        1     NONE   float    yzw
// SV_TessFactor            2   x           2  TRIEDGE   float       
// POSITION                 5    yzw        2     NONE   float    yzw
// SV_InsideTessFactor      0   x           3   TRIINT   float       
// NORMAL                   3   xyzw        4     NONE   float   xyzw
// NORMAL                   4   xyzw        5     NONE   float   xyzw
// NORMAL                   5   xyzw        6     NONE   float   xyzw
// TEXCOORD                 3   xyzw        7     NONE   float   xyzw
// TEXCOORD                 4   xyzw        8     NONE   float   xyzw
// TEXCOORD                 5   xyzw        9     NONE   float   xyzw
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// PSIZE                    0   x           0     NONE    uint   x   
// POSITION                 0   xyz         1     NONE   float       
// TEXCOORD                 0   xyzw        2     NONE   float   xyzw
// TEXCOORD                 2   xyz         3     NONE   float   xyz 
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION              0   xyzw        0      POS   float   xyzw
// TEXCOORD                 0   xyzw        1     NONE   float   xyzw
// TEXCOORD                 2   xyz         2     NONE   float   xyz 
// PSIZE                    0   x           3     NONE    uint   x   
//
// Tessellation Domain   # of control points
// -------------------- --------------------
// Triangle                                3
//
ds_5_0
dcl_input_control_point_count 3
dcl_tessellator_domain domain_tri
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[2045], dynamicIndexed
dcl_constantbuffer cb1[23], dynamicIndexed
dcl_constantbuffer cb2[76], immediateIndexed
dcl_constantbuffer cb3[3], immediateIndexed
dcl_sampler s11, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_input vpc0.yzw
dcl_input vpc1.yzw
dcl_input vpc2.yzw
dcl_input vpc4.xyzw
dcl_input vpc5.xyzw
dcl_input vpc6.xyzw
dcl_input vpc7.xyzw
dcl_input vpc8.xyzw
dcl_input vpc9.xyzw
dcl_input vDomain.xyz
dcl_input vicp[3][0].x
dcl_input vicp[3][2].xyzw
dcl_input vicp[3][3].xyz
dcl_output_siv o0.xyzw, position
dcl_output o1.xyzw
dcl_output o2.xyz
dcl_output o3.x
dcl_temps 7
mul [precise(xy)] r0.xy, vpc7.zwzz, vDomain.zzzz
mul [precise(zw)] r0.zw, vpc8.zzzw, vDomain.xxxx
add [precise(xy)] r0.xy, r0.zwzz, r0.xyxx
mul [precise(zw)] r0.zw, vpc9.zzzw, vDomain.yyyy
add [precise(xy)] r0.xy, r0.zwzz, r0.xyxx
lt [precise(z)] r0.z, l(0.000000), cb3[2].z
if_nz r0.z
  ishl [precise(w)] r0.w, vicp[0][0].x, l(3)
  dp3 [precise(w)] r0.w, cb0[r0.w + 4].xyzx, cb0[r0.w + 4].xyzx
  sqrt [precise(w)] r0.w, r0.w
  mul [precise(xy)] r0.xy, r0.wwww, r0.xyxx
endif 
sample_l_indexable [precise(x)](texture2d)(float,float,float,float) r0.x, r0.xyxx, t0.xyzw, s11, l(0.000000)
mul [precise(xyz)] r1.xyz, vpc0.yzwy, vDomain.zzzz
mul [precise(xyz)] r2.xyz, vpc1.yzwy, vDomain.xxxx
add [precise(xyz)] r1.xyz, r1.xyzx, r2.xyzx
mul [precise(xyz)] r2.xyz, vpc2.yzwy, vDomain.yyyy
add [precise(xyz)] r1.xyz, r1.xyzx, r2.xyzx
add [precise(xyz)] r2.xyz, -r1.xyzx, cb2[10].xyzx
dp3 [precise(y)] r0.y, r2.xyzx, r2.xyzx
sqrt [precise(y)] r0.y, r0.y
ishl [precise(w)] r0.w, vicp[0][0].x, l(1)
add [precise(y)] r0.y, r0.y, -cb1[r0.w + 0].y
div_sat [precise(y)] r0.y, r0.y, cb1[r0.w + 0].z
add [precise(y)] r0.y, -r0.y, l(1.000000)
mul [precise(x)] r0.x, r0.y, r0.x
lt [precise(y)] r0.y, |cb3[2].x|, |vpc4.w|
and [precise(y)] r0.y, r0.y, l(0x3f800000)
mul [precise(y)] r0.y, r0.y, vDomain.z
lt [precise(w)] r1.w, |cb3[2].x|, |vpc5.w|
and [precise(w)] r1.w, r1.w, l(0x3f800000)
mul [precise(w)] r1.w, r1.w, vDomain.x
add [precise(y)] r0.y, r0.y, r1.w
lt [precise(w)] r1.w, |cb3[2].x|, |vpc6.w|
and [precise(w)] r1.w, r1.w, l(0x3f800000)
mul [precise(w)] r1.w, r1.w, vDomain.y
add [precise(y)] r0.y, r0.y, r1.w
mul [precise(x)] r0.x, r0.y, r0.x
ne [precise(y)] r0.y, l(0.000000, 0.000000, 0.000000, 0.000000), r0.x
if_nz r0.y
  dp3 [precise(y)] r0.y, vpc4.xyzx, vpc4.xyzx
  rsq [precise(y)] r0.y, r0.y
  mul [precise(xyz)] r2.xyz, r0.yyyy, vpc4.xyzx
  mul [precise(xyz)] r2.xyz, r2.xyzx, vDomain.zzzz
  dp3 [precise(y)] r0.y, vpc5.xyzx, vpc5.xyzx
  rsq [precise(y)] r0.y, r0.y
  mul [precise(xyz)] r3.xyz, r0.yyyy, vpc5.xyzx
  mul [precise(xyz)] r3.xyz, r3.xyzx, vDomain.xxxx
  add [precise(xyz)] r2.xyz, r2.xyzx, r3.xyzx
  dp3 [precise(y)] r0.y, vpc6.xyzx, vpc6.xyzx
  rsq [precise(y)] r0.y, r0.y
  mul [precise(xyz)] r3.xyz, r0.yyyy, vpc6.xyzx
  mul [precise(xyz)] r3.xyz, r3.xyzx, vDomain.yyyy
  add [precise(xyz)] r2.xyz, r2.xyzx, r3.xyzx
  dp3 [precise(y)] r0.y, r2.xyzx, r2.xyzx
  rsq [precise(y)] r0.y, r0.y
  mul [precise(xyz)] r2.xyz, r0.yyyy, r2.xyzx
  mul [precise(y)] r0.y, |vpc4.w|, vDomain.z
  mul [precise(w)] r1.w, |vpc5.w|, vDomain.x
  add [precise(y)] r0.y, r0.y, r1.w
  mul [precise(w)] r1.w, |vpc6.w|, vDomain.y
  add [precise(y)] r0.y, r0.y, r1.w
  ge [precise(w)] r1.w, cb3[2].x, l(0.000000)
  lt [precise(w)] r2.w, vpc4.w, l(0.000000)
  lt [precise(x)] r3.x, vpc5.w, l(0.000000)
  lt [precise(y)] r3.y, vpc6.w, l(0.000000)
  eq [precise] r4.xyzw, vDomain.zxyz, l(1.000000, 1.000000, 1.000000, 0.000000)
  and [precise(z)] r3.z, r2.w, r4.x
  and [precise(xy)] r4.xy, r3.xxxx, r4.ywyy
  or [precise(z)] r3.z, r3.z, r4.x
  and [precise(w)] r3.w, r3.y, r4.z
  or [precise(z)] r3.z, r3.w, r3.z
  and [precise(w)] r3.w, r3.y, r4.y
  or [precise(z)] r3.z, r3.w, r3.z
  eq [precise(xy)] r4.xy, vDomain.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
  and [precise(y)] r3.y, r3.y, r4.x
  and [precise(y)] r3.y, r2.w, r3.y
  or [precise(y)] r3.y, r3.y, r3.z
  and [precise(w)] r2.w, r2.w, r4.y
  and [precise(w)] r2.w, r3.x, r2.w
  or [precise(w)] r2.w, r2.w, r3.y
  and [precise(w)] r1.w, r1.w, r2.w
  movc [precise(w)] r1.w, r1.w, l(0), l(1.000000)
  ne [precise(xyz)] r3.xyz, l(0.000000, 0.000000, 0.000000, 0.000000), cb3[1].wzyw
  or [precise(w)] r2.w, r3.y, r3.x
  if_nz r2.w
    dp3 [precise(w)] r2.w, vpc4.xyzx, vpc0.yzwy
    dp3 [precise(x)] r3.x, vpc5.xyzx, vpc1.yzwy
    dp3 [precise(w)] r3.w, vpc6.xyzx, vpc2.yzwy
    dp3 [precise(x)] r4.x, vpc4.xyzx, r1.xyzx
    add [precise(w)] r2.w, -r2.w, r4.x
    dp3 [precise(x)] r4.x, vpc5.xyzx, r1.xyzx
    add [precise(x)] r3.x, -r3.x, r4.x
    dp3 [precise(x)] r4.x, vpc6.xyzx, r1.xyzx
    add [precise(w)] r3.w, -r3.w, r4.x
    mul [precise(xyz)] r4.xyz, r2.wwww, vpc4.xyzx
    add [precise(xyz)] r4.xyz, r1.xyzx, -r4.xyzx
    mul [precise(xyz)] r5.xyz, r3.xxxx, vpc5.xyzx
    add [precise(xyz)] r5.xyz, r1.xyzx, -r5.xyzx
    mul [precise(xyz)] r6.xyz, r3.wwww, vpc6.xyzx
    add [precise(xyz)] r6.xyz, r1.xyzx, -r6.xyzx
    mul [precise(xyz)] r4.xyz, r4.xyzx, vDomain.zzzz
    mul [precise(xyz)] r5.xyz, r5.xyzx, vDomain.xxxx
    add [precise(xyz)] r4.xyz, r4.xyzx, r5.xyzx
    mul [precise(xyz)] r5.xyz, r6.xyzx, vDomain.yyyy
    add [precise(xyz)] r4.xyz, r4.xyzx, r5.xyzx
    mul [precise(xyz)] r4.xyz, r4.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
    mul [precise(xyz)] r5.xyz, r1.xyzx, l(0.500000, 0.500000, 0.500000, 0.000000)
    add [precise(xyz)] r4.xyz, r4.xyzx, r5.xyzx
    if_nz r3.y
      mul [precise(w)] r2.w, cb3[1].z, l(0.010000)
      mul [precise(w)] r2.w, r0.y, r2.w
      mul [precise(w)] r0.w, r2.w, cb1[r0.w + 0].w
      mul [precise(xyw)] r3.xyw, r0.wwww, r2.xyxz
      mul [precise(xyw)] r3.xyw, r0.xxxx, r3.xyxw
      add [precise(xyw)] r3.xyw, -r3.xyxw, r4.xyxz
      max [precise(w)] r0.w, vDomain.y, vDomain.x
      max [precise(w)] r0.w, r0.w, vDomain.z
      add [precise(w)] r0.w, r0.w, l(-0.650000)
      div_sat [precise(w)] r0.w, r0.w, l(0.350000)
      min [precise(w)] r2.w, vDomain.y, vDomain.x
      min [precise(w)] r2.w, r2.w, vDomain.z
      div_sat [precise(w)] r2.w, r2.w, l(0.175000)
      add [precise(w)] r2.w, -r2.w, l(1.000000)
      add [precise(w)] r2.w, -r0.w, r2.w
      mul [precise(w)] r2.w, r2.w, cb3[0].x
      add [precise(w)] r0.w, r0.w, r2.w
      mul [precise(w)] r0.w, r0.w, r1.w
      add [precise(xyw)] r3.xyw, -r1.xyxz, r3.xyxw
      mul [precise(xyw)] r3.xyw, r0.wwww, r3.xyxw
      add [precise(xyw)] r3.xyw, r1.xyxz, r3.xyxw
    else 
      mov [precise(xyw)] r3.xyw, r1.xyxz
    endif 
    add [precise(xyz)] r4.xyz, -r3.xywx, r4.xyzx
    mul [precise(xyz)] r4.xyz, r4.xyzx, cb3[1].wwww
    add [precise(xyw)] r3.xyw, r3.xyxw, r4.xyxz
  else 
    mov [precise(xyw)] r3.xyw, r1.xyxz
  endif 
  mul [precise(xyz)] r4.xyz, r2.xyzx, cb3[0].yyyy
  mul [precise(xyz)] r4.xyz, r0.xxxx, r4.xyzx
  add [precise(xyw)] r3.xyw, r3.xyxw, r4.xyxz
  add [precise(xyw)] r3.xyw, -r1.xyxz, r3.xyxw
  mul [precise(xyw)] r3.xyw, r0.xxxx, r3.xyxw
  add [precise(xyz)] r1.xyz, r1.xyzx, r3.xywx
  mul [precise(x)] r0.x, r0.x, r1.w
  ne [precise(w)] r0.w, l(0.000000, 0.000000, 0.000000, 0.000000), r0.x
  ne [precise(w)] r1.w, l(0.000000, 0.000000, 0.000000, 0.000000), cb3[2].y
  or [precise(w)] r1.w, r1.w, r3.z
  and [precise(w)] r0.w, r0.w, r1.w
  if_nz r0.w
    mul [precise(xy)] r3.xy, vpc7.xyxx, vDomain.zzzz
    mul [precise(zw)] r3.zw, vpc8.xxxy, vDomain.xxxx
    add [precise(xy)] r3.xy, r3.zwzz, r3.xyxx
    mul [precise(zw)] r3.zw, vpc9.xxxy, vDomain.yyyy
    add [precise(xy)] r3.xy, r3.zwzz, r3.xyxx
    if_nz r0.z
      ishl [precise(z)] r0.z, vicp[0][0].x, l(3)
      dp3 [precise(z)] r0.z, cb0[r0.z + 4].xyzx, cb0[r0.z + 4].xyzx
      sqrt [precise(z)] r0.z, r0.z
      mul [precise(zw)] r0.zw, r0.zzzz, r3.xxxy
    else 
      ne [precise(w)] r1.w, l(0.000000, 0.000000, 0.000000, 0.000000), cb3[1].x
      mov [precise(x)] r4.x, cb3[0].w
      mov [precise(y)] r4.y, cb3[1].x
      movc [precise(zw)] r3.zw, r1.wwww, r4.xxxy, cb3[0].wwww
      mul [precise(zw)] r0.zw, r3.zzzw, r3.xxxy
    endif 
    sample_l_indexable [precise(z)](texture2d)(float,float,float,float) r0.z, r0.zwzz, t1.yzxw, s11, l(0.000000)
    add [precise(z)] r0.z, r0.z, cb3[0].z
    lt [precise(w)] r0.w, l(0.000000), cb3[2].y
    mul [precise(y)] r0.y, r0.y, cb3[2].y
    add [precise(y)] r0.y, r0.y, cb3[1].y
    movc [precise(y)] r0.y, r0.w, r0.y, cb3[1].y
    mul [precise(y)] r0.y, r0.y, r0.z
    mul [precise(yzw)] r0.yzw, r0.yyyy, r2.xxyz
    mul [precise(xyz)] r0.xyz, r0.xxxx, r0.yzwy
    add [precise(xyz)] r1.xyz, r0.xyzx, r1.xyzx
  endif 
endif 
add [precise(xyz)] r0.xyz, r1.xyzx, -cb2[75].xyzx
mul [precise] r1.xyzw, r0.xxxx, cb0[0].xyzw
mul [precise] r2.xyzw, r0.yyyy, cb0[1].xyzw
add [precise] r1.xyzw, r1.xyzw, r2.xyzw
mul [precise] r0.xyzw, r0.zzzz, cb0[2].xyzw
add [precise] r0.xyzw, r0.xyzw, r1.xyzw
add [precise] r0.xyzw, r0.xyzw, cb0[3].xyzw
max [precise(z)] o0.z, r0.z, l(0.000000)
mul [precise] r1.xyzw, vDomain.zzzz, vicp[0][2].xyzw
mul [precise] r2.xyzw, vDomain.xxxx, vicp[1][2].xyzw
add [precise] r1.xyzw, r1.xyzw, r2.xyzw
mul [precise] r2.xyzw, vDomain.yyyy, vicp[2][2].xyzw
add [precise] o1.xyzw, r1.xyzw, r2.xyzw
mul [precise(xyz)] r1.xyz, vDomain.zzzz, vicp[0][3].xyzx
mul [precise(xyz)] r2.xyz, vDomain.xxxx, vicp[1][3].xyzx
add [precise(xyz)] r1.xyz, r1.xyzx, r2.xyzx
mul [precise(xyz)] r2.xyz, vDomain.yyyy, vicp[2][3].xyzx
add [precise(xyz)] o2.xyz, r1.xyzx, r2.xyzx
mov [precise(xyw)] o0.xyw, r0.xyxw
mov [precise(x)] o3.x, vicp[0][0].x
ret 
// Approximately 202 instruction slots used
