//
// Generated by Microsoft (R) HLSL Shader Compiler 10.0.10011.16384
//
//   using 3Dmigoto v1.3.16 on Fri Jan 14 20:06:33 2022
//
//
// Note: shader requires additional functionality:
//       64 UAV slots
//
//
// Buffer Definitions:
//
// cbuffer ConstBuf__passData
// {
//
//   struct PostEffectsExtendCoCPassData
//   {
//
//       float imageWidth;              // Index:    0
//       float imageHeight;             // Index:    0.y
//       float imageWidthRcp;           // Index:    0.z
//       float imageHeightRcp;          // Index:    0.w
//       float2 motionBlurMagnitude;    // Index:    1
//       float motionBlurMagClamp;      // Index:    1.z
//       float cocMagClamp;             // Index:    1.w
//       float propertiesImageWidth;    // Index:    2
//       float propertiesImageHeight;   // Index:    2.y
//
//       struct DoFCoCStruct
//       {
//
//           float m_Enabled;           // Index:    3
//           float m_DebugDOF;          // Index:    3.y
//           float m_NearDistanceOfAcceptableSharpness;// Index:    3.z
//           float m_FarDistanceOfAcceptableSharpness;// Index:    3.w
//           float m_CircleOfConfusionMultiplier;// Index:    4
//           float m_CameraApertureHeightRelativeRcp;// Index:    4.y
//           float m_HyperFocalDistance;// Index:    4.z
//           float m_FocusDistance;     // Index:    4.w
//           float m_FStop;             // Index:    5
//           float m_DepthReprojectScale;// Index:    5.y
//           float m_DepthReprojectBias;// Index:    5.z
//
//       } dofCoCInfo;                  // Index:    3
//
//   } resourceTables__passData;        // Index:    0-5.z            Components:    23
                                        // Textures:  t0-t2
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim Slot Elements
// ------------------------------ ---------- ------- ----------- ---- --------
// resourceTables__passData__LinearSampler    sampler      NA          NA    0        1
// resourceTables__passData.InputMotionVectors    texture  float2          2d    0        1
// resourceTables__passData.InputDepthHalfRes    texture   float          2d    1        1
// resourceTables__passData.InputProperties    texture  float4          2d    2        1
// resourceTables__passData.OutCoC        UAV  float4          2d    8        1
// ConstBuf__passData                cbuffer      NA          NA    0        1
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[5], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_uav_typed_texture2d (float,float,float,float) u8
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.xy
dcl_temps 50
dcl_tgsm_structured g0, 4, 88
dcl_tgsm_structured g1, 8, 88
dcl_thread_group 64, 1, 1
dcl_resource_texture2d (float,float,float,float) t125
ld_indexable(texture2d)(float,float,float,float) r40.xyzw, l(0, 0, 0, 0), t125.xyzw
ishl r0.xyzw, vThreadGroupID.xyyy, l(6, 0, 0, 0)
mov r1.x, vThreadIDInGroupFlattened.x
mov r1.yzw, l(0,0,0,0)
iadd r0.xyzw, r0.xyzw, r1.xyzw
iadd r1.xy, r0.xwxx, l(-12, 0, 0, 0)
ftou r2.xy, cb0[0].xyxx
ult r2.zw, r1.xxxy, r2.xxxy
and r2.z, r2.w, r2.z
if_nz r2.z
  mov r1.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r1.z, r1.xyzw, t1.yzxw
  add r1.z, r1.z, l(0.001000)
  utof r2.zw, r1.xxxy
  add r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.500000, 0.500000)
  mul r2.zw, r2.zzzw, cb0[0].zzzw
  sample_l_indexable(texture2d)(float,float,float,float) r2.zw, r2.zwzz, t0.zwxy, s0, l(0.000000)
  
  //Disabled with new TAA fix.
  //mad r2.z, r40.x, l(0.5), r2.z
  
  ishl r3.xy, r1.xyxx, l(1, 1, 0, 0)
  mov r3.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r1.w, r3.xyzw, t2.xyzw
  mul r1.w, r1.w, l(255.000000)
  ftou r1.w, r1.w
  bfi r3.xyzw, l(31, 31, 31, 31), l(1, 1, 1, 1), r1.xyxy, l(1, 0, 0, 1)
  mov r4.xy, r3.zwzz
  mov r4.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r4.x, r4.xyzw, t2.wxyz
  mul r4.x, r4.x, l(255.000000)
  ftou r4.x, r4.x
  or r1.w, r1.w, r4.x
  mov r3.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r3.x, r3.xyzw, t2.wxyz
  mul r3.x, r3.x, l(255.000000)
  ftou r3.x, r3.x
  or r1.w, r1.w, r3.x
  bfi r3.xy, l(31, 31, 0, 0), l(1, 1, 0, 0), r1.xyxx, l(1, 1, 0, 0)
  mov r3.zw, l(0,0,0,0)
  ld_indexable(texture2d)(float,float,float,float) r1.x, r3.xyzw, t2.wxyz
  mul r1.x, r1.x, l(255.000000)
  ftou r1.x, r1.x
  or r1.x, r1.x, r1.w
  and r1.x, r1.x, l(1)
  mul r1.yw, r2.zzzw, cb0[1].xxxy
  dp2 r2.z, r1.ywyy, r1.ywyy
  sqrt r2.z, r2.z
  mad_sat r2.w, r2.z, l(0.500000), l(-2.000000)
  add r3.x, -r1.z, cb0[3].z
  add r3.y, r1.z, -cb0[3].w
  max r3.x, r3.y, r3.x
  max r3.x, r3.x, l(0.000000)
  div r3.x, r3.x, r1.z
  mad r2.w, r3.x, cb0[4].x, r2.w
  min r2.w, r2.w, cb0[1].w
  min r3.x, r2.z, cb0[1].z
  add r2.z, r2.z, l(0.000001)
  div r2.z, r3.x, r2.z
  mul r1.yw, r1.yyyw, r2.zzzz
  f32tof16 r2.z, r2.w
  f32tof16 r1.z, r1.z
  imad r1.z, r1.z, l(0x00010000), r2.z
  movc r1.x, r1.x, l(0x00008000), l(0)
  or r1.x, r1.x, r1.z
else
  mov r1.xyw, l(559548897756991880000000000000.000000,0,0,0)
endif
store_structured g1.xy, vThreadIDInGroupFlattened.x, l(0), r1.ywyy
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r1.x
uge r1.x, vThreadIDInGroupFlattened.x, l(40)
if_nz r1.x
  iadd r1.xy, r0.xwxx, l(12, 0, 0, 0)
  ult r2.xy, r1.xyxx, r2.xyxx
  and r2.x, r2.y, r2.x
  if_nz r2.x
    mov r1.zw, l(0,0,0,0)
    ld_indexable(texture2d)(float,float,float,float) r1.z, r1.xyzw, t1.yzxw
    add r1.z, r1.z, l(0.001000)
    utof r2.xy, r1.xyxx
    add r2.xy, r2.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
    mul r2.xy, r2.xyxx, cb0[0].zwzz
    sample_l_indexable(texture2d)(float,float,float,float) r2.xy, r2.xyxx, t0.xyzw, s0, l(0.000000)
	
	//Disabled with new TAA fix.
    //mad r2.x, r40.x, l(0.5), r2.x
	
    ishl r3.xy, r1.xyxx, l(1, 1, 0, 0)
    mov r3.zw, l(0,0,0,0)
    ld_indexable(texture2d)(float,float,float,float) r1.w, r3.xyzw, t2.xyzw
    mul r1.w, r1.w, l(255.000000)
    ftou r1.w, r1.w
    imad r3.xyzw, r1.xyxy, l(2, 2, 2, 2), l(1, 0, 0, 1)
    mov r4.xy, r3.zwzz
    mov r4.zw, l(0,0,0,0)
    ld_indexable(texture2d)(float,float,float,float) r2.z, r4.xyzw, t2.xywz
    mul r2.z, r2.z, l(255.000000)
    ftou r2.z, r2.z
    or r1.w, r1.w, r2.z
    mov r3.zw, l(0,0,0,0)
    ld_indexable(texture2d)(float,float,float,float) r2.z, r3.xyzw, t2.xywz
    mul r2.z, r2.z, l(255.000000)
    ftou r2.z, r2.z
    or r1.w, r1.w, r2.z
    imad r3.xy, r1.xyxx, l(2, 2, 0, 0), l(1, 1, 0, 0)
    mov r3.zw, l(0,0,0,0)
    ld_indexable(texture2d)(float,float,float,float) r1.x, r3.xyzw, t2.wxyz
    mul r1.x, r1.x, l(255.000000)
    ftou r1.x, r1.x
    or r1.x, r1.x, r1.w
    and r1.x, r1.x, l(1)
    mul r1.yw, r2.xxxy, cb0[1].xxxy
    dp2 r2.x, r1.ywyy, r1.ywyy
    sqrt r2.x, r2.x
    mad_sat r2.y, r2.x, l(0.500000), l(-2.000000)
    add r2.z, -r1.z, cb0[3].z
    add r2.w, r1.z, -cb0[3].w
    max r2.z, r2.w, r2.z
    max r2.z, r2.z, l(0.000000)
    div r2.z, r2.z, r1.z
    mad r2.y, r2.z, cb0[4].x, r2.y
    min r2.yz, r2.yyxy, cb0[1].wwzw
    add r2.x, r2.x, l(0.000001)
    div r2.x, r2.z, r2.x
    mul r1.yw, r1.yyyw, r2.xxxx
    f32tof16 r2.x, r2.y
    f32tof16 r1.z, r1.z
    imad r1.z, r1.z, l(0x00010000), r2.x
    movc r1.x, r1.x, l(0x00008000), l(0)
    or r1.x, r1.x, r1.z
  else
    mov r1.xyw, l(559548897756991880000000000000.000000,0,0,0)
  endif
  iadd r1.z, vThreadIDInGroupFlattened.x, l(24)
  store_structured g1.xy, r1.z, l(0), r1.ywyy
  store_structured g0.x, r1.z, l(0), r1.x
endif
sync_g_t
iadd r1.xyzw, vThreadIDInGroupFlattened.xxxx, l(12, 1, 3, 4)
ld_structured r2.x, r1.x, l(0), g0.xxxx
and r2.yzw, r2.xxxx, l(0, 0x00008000, 0xffff7fff, 0x00007fff)
ine r3.x, r2.y, l(0)
f16tof32 r2.w, r2.w
ld_structured r3.yz, r1.x, l(0), g1.xxyx
ld_structured r1.x, vThreadIDInGroupFlattened.x, l(0), g0.xxxx
and r4.xyz, r1.xxxx, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.x, r4.x, l(0)
uge r3.w, r2.z, r4.y
f16tof32 r4.x, r4.z
mul r4.x, r4.x, l(0.00315111014)
max r4.x, r2.w, r4.x
movc r2.w, r3.w, r4.x, r2.w
ld_structured r4.xy, vThreadIDInGroupFlattened.x, l(0), g1.xyxx
max r5.xyzw, r3.yyyy, l(-12.000000, -11.000000, -9.000000, -8.000000)
min r5.xyzw, r5.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
eq r5.xyzw, r5.xyzw, l(-12.000000, -11.000000, -9.000000, -8.000000)
not r3.w, r3.x
and r4.z, r1.x, r3.w
mul r4.w, |r3.y|, l(0.750000)
lt r6.x, |r4.x|, r4.w
and r5.x, r5.x, r6.x
movc r5.x, r5.x, l(8.000000), l(0.0529304929)
movc r4.z, r4.z, r5.x, l(0.0529304929)
not r1.x, r1.x
and r1.x, r1.x, r3.x
mul r5.x, |r4.x|, l(0.750000)
lt r5.x, |r3.y|, r5.x
movc r5.x, r5.x, l(0), r4.z
movc r1.x, r1.x, r5.x, r4.z
mad r4.xy, r1.xxxx, r4.xyxx, r3.yzyy
add r1.x, r1.x, l(1.000000)
ld_structured r3.z, r1.y, l(0), g0.xxxx
and r6.xyz, r3.zzzz, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r3.z, r6.x, l(0)
uge r4.z, r2.z, r6.y
f16tof32 r5.x, r6.z
mul r5.x, r5.x, l(0.00790705346)
max r5.x, r2.w, r5.x
movc r2.w, r4.z, r5.x, r2.w
ld_structured r6.xy, r1.y, l(0), g1.xyxx
and r1.y, r3.z, r3.w
lt r4.z, |r6.x|, r4.w
and r4.z, r4.z, r5.y
movc r4.z, r4.z, l(8.000000), l(0.0846366659)
movc r1.y, r1.y, r4.z, l(0.0846366659)
not r3.z, r3.z
and r3.z, r3.z, r3.x
mul r4.z, |r6.x|, l(0.750000)
lt r4.z, |r3.y|, r4.z
movc r4.z, r4.z, l(0), r1.y
movc r1.y, r3.z, r4.z, r1.y
mad r4.xy, r1.yyyy, r6.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r1.z, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r3.z, r2.z, r6.y
f16tof32 r4.z, r6.z
mul r4.z, r4.z, l(0.0391638912)
max r4.z, r2.w, r4.z
movc r2.w, r3.z, r4.z, r2.w
ld_structured r5.xy, r1.z, l(0), g1.xyxx
and r1.z, r1.y, r3.w
lt r3.z, |r5.x|, r4.w
and r3.z, r3.z, r5.z
movc r3.z, r3.z, l(8.000000), l(0.191462874)
movc r1.z, r1.z, r3.z, l(0.191462874)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r3.z, |r5.x|, l(0.750000)
lt r3.z, |r3.y|, r3.z
movc r3.z, r3.z, l(0), r1.z
movc r1.y, r1.y, r3.z, r1.z
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r1.w, l(0), g0.xxxx
and r5.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r5.x, l(0)
uge r1.z, r2.z, r5.y
f16tof32 r3.z, r5.z
mul r3.z, r3.z, l(0.0773047432)
max r3.z, r2.w, r3.z
movc r1.z, r1.z, r3.z, r2.w
ld_structured r5.xy, r1.w, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r5.w
movc r2.w, r2.w, l(8.000000), l(0.270868331)
movc r1.w, r1.w, r2.w, l(0.270868331)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
iadd r5.xyzw, vThreadIDInGroupFlattened.xxxx, l(6, 7, 9, 10)
ld_structured r1.y, r5.x, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.236927733)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r6.xy, r5.x, l(0), g1.xyxx
max r7.xyzw, r3.yyyy, l(-6.000000, -5.000000, -3.000000, -2.000000)
min r7.xyzw, r7.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
eq r7.xyzw, r7.xyzw, l(-6.000000, -5.000000, -3.000000, -2.000000)
and r1.w, r1.y, r3.w
lt r2.w, |r6.x|, r4.w
and r2.w, r2.w, r7.x
movc r2.w, r2.w, l(8.000000), l(0.479652256)
movc r1.w, r1.w, r2.w, l(0.479652256)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r6.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r6.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.y, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.367879450)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.y, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r7.y
movc r2.w, r2.w, l(8.000000), l(0.600373)
movc r1.w, r1.w, r2.w, l(0.600373)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.z, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.697676301)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.z, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r7.z
movc r2.w, r2.w, l(8.000000), l(0.832207501)
movc r1.w, r1.w, r2.w, l(0.832207501)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.w, l(0), g0.xxxx
and r5.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r5.x, l(0)
uge r1.w, r2.z, r5.y
f16tof32 r2.w, r5.z
mul r2.w, r2.w, l(0.852143764)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.w, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r7.w
movc r2.w, r2.w, l(8.000000), l(0.921610475)
movc r1.w, r1.w, r2.w, l(0.921610475)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
iadd r5.xyzw, vThreadIDInGroupFlattened.xxxx, l(13, 15, 16, 18)
ld_structured r1.y, r5.x, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.960789442)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r6.xy, r5.x, l(0), g1.xyxx
mov_sat r1.w, r3.y
eq r1.w, r1.w, l(1.000000)
and r2.w, r1.y, r3.w
lt r3.z, |r6.x|, r4.w
and r1.w, r1.w, r3.z
movc r1.w, r1.w, l(8.000000), l(0.979798675)
movc r1.w, r2.w, r1.w, l(0.979798675)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r6.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r6.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.y, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.697676301)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.y, l(0), g1.xyxx
min r6.xyzw, r3.yyyy, l(3.000000, 4.000000, 6.000000, 7.000000)
max r6.xyzw, r6.xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
eq r6.xyzw, r6.xyzw, l(3.000000, 4.000000, 6.000000, 7.000000)
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r6.x
movc r2.w, r2.w, l(8.000000), l(0.832207501)
movc r1.w, r1.w, r2.w, l(0.832207501)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.z, l(0), g0.xxxx
and r7.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r7.x, l(0)
uge r1.w, r2.z, r7.y
f16tof32 r2.w, r7.z
mul r2.w, r2.w, l(0.527292430)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.z, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r6.y
movc r2.w, r2.w, l(8.000000), l(0.721422315)
movc r1.w, r1.w, r2.w, l(0.721422315)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.w, l(0), g0.xxxx
and r5.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r5.x, l(0)
uge r1.w, r2.z, r5.y
f16tof32 r2.w, r5.z
mul r2.w, r2.w, l(0.236927733)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.w, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r6.z
movc r2.w, r2.w, l(8.000000), l(0.479652256)
movc r1.w, r1.w, r2.w, l(0.479652256)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
iadd r5.xyzw, vThreadIDInGroupFlattened.xxxx, l(19, 21, 22, 24)
ld_structured r1.y, r5.x, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.140858427)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r6.xy, r5.x, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r6.x|, r4.w
and r2.w, r2.w, r6.w
movc r2.w, r2.w, l(8.000000), l(0.367879450)
movc r1.w, r1.w, r2.w, l(0.367879450)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r6.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r6.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.y, l(0), g0.xxxx
and r6.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r6.x, l(0)
uge r1.w, r2.z, r6.y
f16tof32 r2.w, r6.z
mul r2.w, r2.w, l(0.0391638912)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.y, l(0), g1.xyxx
min r6.xyz, r3.yyyy, l(9.000000, 10.000000, 12.000000, 0.000000)
max r6.xyz, r6.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
eq r6.xyz, r6.xyzx, l(9.000000, 10.000000, 12.000000, 0.000000)
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r6.x
movc r2.w, r2.w, l(8.000000), l(0.191462874)
movc r1.w, r1.w, r2.w, l(0.191462874)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.z, l(0), g0.xxxx
and r7.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r7.x, l(0)
uge r1.w, r2.z, r7.y
f16tof32 r2.w, r7.z
mul r2.w, r2.w, l(0.0183156393)
max r2.w, r1.z, r2.w
movc r1.z, r1.w, r2.w, r1.z
ld_structured r5.xy, r5.z, l(0), g1.xyxx
and r1.w, r1.y, r3.w
lt r2.w, |r5.x|, r4.w
and r2.w, r2.w, r6.y
movc r2.w, r2.w, l(8.000000), l(0.129922614)
movc r1.w, r1.w, r2.w, l(0.129922614)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r2.w, |r5.x|, l(0.750000)
lt r2.w, |r3.y|, r2.w
movc r2.w, r2.w, l(0), r1.w
movc r1.y, r1.y, r2.w, r1.w
mad r4.xy, r1.yyyy, r5.xyxx, r4.xyxx
add r1.x, r1.y, r1.x
ld_structured r1.y, r5.w, l(0), g0.xxxx
and r5.xyz, r1.yyyy, l(0x00008000, 0xffff7fff, 0x00007fff, 0)
ine r1.y, r5.x, l(0)
uge r1.w, r2.z, r5.y
f16tof32 r2.z, r5.z
mul r2.z, r2.z, l(0.00315111014)
max r2.z, r1.z, r2.z
movc r1.z, r1.w, r2.z, r1.z
ld_structured r2.zw, r5.w, l(0), g1.xxxy
and r1.w, r1.y, r3.w
lt r3.z, |r2.z|, r4.w
and r3.z, r3.z, r6.z
movc r3.z, r3.z, l(8.000000), l(0.0529304929)
movc r1.w, r1.w, r3.z, l(0.0529304929)
not r1.y, r1.y
and r1.y, r1.y, r3.x
mul r3.x, |r2.z|, l(0.750000)
lt r3.x, |r3.y|, r3.x
movc r3.x, r3.x, l(0), r1.w
movc r1.y, r1.y, r3.x, r1.w
mad r2.zw, r1.yyyy, r2.zzzw, r4.xxxy
add r1.x, r1.y, r1.x
div r3.xy, r2.zwzz, r1.xxxx
movc r1.x, r2.y, l(-0.000000), l(0)
or r3.z, r1.z, r1.x
ushr r1.x, r2.x, l(16)
f16tof32 r3.w, r1.x
store_uav_typed u8.xyzw, r0.xyzw, r3.xyzw
ret
// Approximately 513 instruction slots used
