// AUTOMATICALLY CONVERTED FROM SHADER FIXES 
//
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v0.6.63 on Sun Oct  9 13:48:42 2022
//
//
// Note: shader requires additional functionality:
//       64 UAV slots
//
//
// 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[3], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, 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_texture2darray (float,float,float,float) u8
dcl_uav_typed_texture2darray (float,float,float,float) u10
dcl_uav_typed_texture2darray (float,float,float,float) u11
dcl_uav_typed_texture2darray (float,float,float,float) u12
dcl_uav_typed_texture2darray (float,float,float,float) u13
dcl_uav_typed_texture2darray (float,float,float,float) u14
dcl_uav_typed_texture2darray (float,float,float,float) u15
dcl_uav_typed_texture2darray (float,float,float,float) u16
dcl_input vThreadIDInGroupFlattened
dcl_input vThreadGroupID.xy
dcl_temps 50
dcl_tgsm_structured g0, 4, 64
dcl_thread_group 8, 8, 1
dcl_constantbuffer CB12[3], immediateIndexed
mov r50.z, l(0)
and r0.x, vThreadIDInGroupFlattened.x, l(7)
ushr r0.y, vThreadIDInGroupFlattened.x, l(3)
imad r1.xyzw, vThreadGroupID.xyyy, l(8, 8, 8, 8), r0.xyyy
ishl r2.xyzw, r0.xyyy, l(1, 1, 1, 1)
imad r2.xyzw, vThreadGroupID.xyyy, l(16, 16, 16, 16), r2.xyzw
utof r0.xw, r2.xxxw
mov r30.xyw, r0.xyxw
mul r40.w, cb0[3].x, l(-1.000000)
add r33.xy, r30.xwxx, l(1.000000, 1.000000, 0.000000, 0.000000)
mul r33.xy, r33.xyxx, cb0[0].xyxx
add r3.xy, r0.xwxx, l(1.000000, 1.000000, 0.000000, 0.000000)
mul r3.xy, r3.xyxx, cb0[0].xyxx
gather4_indexable(texture2d)(float,float,float,float) r4.xyzw, r3.xyxx, t0.xyzw, s0.x
gather4_indexable(texture2d)(float,float,float,float) r34.xyzw, r33.xyxx, t0.xyzw, s0.x
mad r35.xyzw, r34.xyzw, cb0[0].zzzz, cb0[0].wwww
rcp r35.xyzw, r35.xyzw
mov r35.xyzw, -r35.xyzw
mad r5.xyzw, r4.xyzw, cb0[0].zzzz, cb0[0].wwww
rcp r5.xyzw, r5.xyzw
mov r5.xyzw, -r5.xyzw
gather4_indexable(texture2d)(float,float,float,float) r3.xyzw, r3.xyxx, t2.xyzw, s0.w
mul r3.xyzw, r3.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000)
ftou r3.xyzw, r3.xyzw
and r3.xyzw, r3.xyzw, l(16, 16, 16, 16)
and r6.xyzw, r5.xyzw, l(1, 1, 1, 1)
xor r6.xyzw, r5.xyzw, r6.xyzw
movc r3.xyzw, r3.xyzw, l(1,1,1,1), l(0,0,0,0)
or r3.xyzw, r3.xyzw, r6.xyzw
mov r50.xy, r2.xwww
store_uav_typed u8.xyzw, r50.xyzz, r3.wwww
iadd r6.xyzw, r2.xwxw, l(1, 0, 0, 1)
mov r50.xy, r6.xyyy
store_uav_typed u8.xyzw, r50.xyzz, r3.zzzz
mov r50.xy, r6.zwww
store_uav_typed u8.xyzw, r50.xyzz, r3.xxxx
iadd r6.xyzw, r2.xyzw, l(1, 1, 1, 1)
mov r50.xy, r6.xyzw
store_uav_typed u8.xyzw, r50.xyzz, r3.yyyy
min r2.x, r35.z, r35.y
min r2.x, r2.x, r35.x
min r2.x, r35.w, r2.x
max r2.y, r35.z, r35.y
max r2.y, r2.y, r35.x
max r2.y, r35.w, r2.y
iadd r2.z, r1.x, cb0[2].y
and r2.z, r2.z, l(1)
and r3.xyz, r1.wxww, l(1, 1, 1, 0)
ieq r2.z, r2.z, r3.x
movc r2.w, r2.z, r2.x, r2.y
mov r50.xy, r1.xwww
store_uav_typed u10.xyzw, r50.xyzz, r2.wwww
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r2.w
sync_g_t
xor r6.xyzw, vThreadIDInGroupFlattened.xxxx, l(1, 8, 2, 16)
ld_structured r3.x, r6.x, l(0), g0.xxxx
max r3.x, r2.w, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r3.x
sync_g_t
ld_structured r3.w, r6.y, l(0), g0.xxxx
max r3.x, r3.w, r3.x
ieq r3.yz, r3.yyzy, l(0, 0, 0, 0)
and r3.y, r3.z, r3.y
if_nz r3.y
  ushr r7.xyzw, r1.xwww, l(1, 1, 1, 1)
  mov r50.xy, r7.xyzw
  store_uav_typed u11.xyzw, r50.xyzz, r3.xxxx
endif
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r3.x
sync_g_t
ld_structured r3.y, r6.z, l(0), g0.xxxx
max r3.x, r3.y, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r3.x
sync_g_t
ld_structured r3.y, r6.w, l(0), g0.xxxx
max r3.x, r3.y, r3.x
and r7.xyzw, r1.xwxw, l(3, 3, 7, 7)
ieq r7.xyzw, r7.xyzw, l(0, 0, 0, 0)
and r3.yz, r7.yywy, r7.xxzx
if_nz r3.y
  ushr r7.xyzw, r1.xwww, l(2, 2, 2, 2)
  mov r50.xy, r7.xyzw
  store_uav_typed u12.xyzw, r50.xyzz, r3.xxxx
endif
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r3.x
sync_g_t
xor r3.y, vThreadIDInGroupFlattened.x, l(4)
ld_structured r3.y, r3.y, l(0), g0.xxxx
max r3.x, r3.y, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r3.x
sync_g_t
ld_structured r3.y, l(32), l(0), g0.xxxx
if_nz r3.z
  max r3.x, r3.y, r3.x
  ushr r7.xyzw, r1.xwww, l(3, 3, 3, 3)
  mov r50.xy, r7.xyzw
  store_uav_typed u13.xyzw, r50.xyzz, r3.xxxx
endif
min r3.x, r4.z, r4.y
min r3.x, r3.x, r4.x
min r3.x, r4.w, r3.x
max r3.y, r4.z, r4.y
max r3.y, r3.y, r4.x
max r3.y, r4.w, r3.y
movc r2.z, r2.z, r3.y, r3.x
mov r50.xy, r1.xwww
store_uav_typed u15.xyzw, r50.xyzz, r2.zzzz
max r2.z, r2.w, l(0.000100)
rcp r2.z, r2.z
mad r3.xyzw, r5.xyzw, r2.zzzz, l(-1.000000, -1.000000, -1.000000, -1.000000)
lt r3.xyzw, |r3.xyzw|, l(0.100000, 0.100000, 0.100000, 0.100000)
lt r4.xyzw, r5.xyzw, l(50.000000, 50.000000, 50.000000, 50.000000)
and r2.zw, r3.zzzw, r3.xxxy
and r2.z, r2.w, r2.z
not r2.z, r2.z
and r4.xy, r4.zwzz, r4.xyxx
and r2.w, r4.y, r4.x
and r2.z, r2.w, r2.z
if_nz r2.z
  and r2.z, r3.z, r3.w
  if_nz r2.z
    mov r2.zw, l(0,0,1,0)
  else
    and r4.xyz, r3.yxyy, r3.xwzx
    movc r3.xy, r3.xxxx, l(0,2,0,0), l(2,2,0,0)
    movc r3.xy, r3.zzzz, l(2,0,0,0), r3.xyxx
    movc r3.xy, r3.wwww, l(0,0,0,0), r3.xyxx
    movc r3.xy, r4.zzzz, l(2,1,0,0), r3.xyxx
    movc r3.xy, r4.yyyy, l(0,1,0,0), r3.xyxx
    movc r2.zw, r4.xxxx, l(0,0,1,2), r3.xxxy
  endif
else
  mov r2.zw, l(0,0,1,1)
endif
utof r2.zw, r2.zzzw
mad r0.xw, r2.zzzw, l(0.500000, 0.000000, 0.000000, 0.500000), r0.xxxw
add r0.xw, r0.xxxw, l(0.500000, 0.000000, 0.000000, 0.500000)
mul r0.xw, r0.xxxw, cb0[0].xxxy
sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r0.xwxx, t1.xyzw, s1, l(0.000000)
sample_l_indexable(texture2d)(float,float,float,float) r3.w, r0.xwxx, t2.xywz, s1, l(0.000000)
mov r50.xy, r1.xwww
store_uav_typed u14.xyzw, r50.xyzz, r3.xyzw
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r2.x
sync_g_t
ld_structured r0.x, r6.y, l(0), g0.xxxx
min r0.x, r0.x, r2.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.x
sync_g_t
ld_structured r0.w, r6.x, l(0), g0.xxxx
min r0.x, r0.w, r0.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r2.y
sync_g_t
ld_structured r0.w, r6.y, l(0), g0.xxxx
max r0.w, r0.w, r2.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r2.x, r6.x, l(0), g0.xxxx
max r0.w, r0.w, r2.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.x
sync_g_t
ld_structured r2.x, r6.w, l(0), g0.xxxx
min r0.x, r0.x, r2.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.x
sync_g_t
ld_structured r2.x, r6.z, l(0), g0.xxxx
min r2.x, r0.x, r2.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.w
sync_g_t
ld_structured r0.x, r6.w, l(0), g0.xxxx
max r0.x, r0.x, r0.w
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.x
sync_g_t
ld_structured r0.w, r6.z, l(0), g0.xxxx
max r2.y, r0.w, r0.x
mov r0.z, vThreadIDInGroupFlattened.x
and r0.xy, r0.zyzz, l(3, 3, 0, 0)
ieq r0.xy, r0.xyxx, l(0, 0, 0, 0)
and r0.x, r0.y, r0.x
add r0.y, r2.y, r2.x
mul r0.y, r0.y, l(0.500000)
lt r3.xyzw, r5.xyzw, r0.yyyy
movc r3.xyzw, r3.xyzw, r5.xyzw, r2.xxxx
lt r4.xyzw, r0.yyyy, r5.xyzw
movc r4.xyzw, r4.xyzw, r5.xyzw, r2.yyyy
max r0.y, r3.z, r3.y
max r0.y, r0.y, r3.x
max r0.y, r3.w, r0.y
min r0.z, r4.z, r4.y
min r0.z, r0.z, r4.x
min r0.z, r4.w, r0.z
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.y
sync_g_t
ld_structured r0.w, r6.x, l(0), g0.xxxx
max r0.y, r0.w, r0.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.y
sync_g_t
ld_structured r0.w, r6.y, l(0), g0.xxxx
max r0.y, r0.w, r0.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.y
sync_g_t
ld_structured r0.w, r6.z, l(0), g0.xxxx
max r0.y, r0.w, r0.y
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.y
sync_g_t
ld_structured r0.w, r6.w, l(0), g0.xxxx
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.z
sync_g_t
ld_structured r3.x, r6.x, l(0), g0.xxxx
min r0.z, r0.z, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.z
sync_g_t
ld_structured r3.x, r6.y, l(0), g0.xxxx
min r0.z, r0.z, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.z
sync_g_t
ld_structured r3.x, r6.z, l(0), g0.xxxx
min r0.z, r0.z, r3.x
sync_g_t
store_structured g0.x, vThreadIDInGroupFlattened.x, l(0), r0.z
sync_g_t
if_nz r0.x
  max r2.z, r0.w, r0.y
  ld_structured r0.x, r6.w, l(0), g0.xxxx
  min r2.w, r0.x, r0.z
  ushr r0.xyzw, r1.xyzw, l(2, 2, 2, 2)
  mov r50.xy, r0.xyzw
  store_uav_typed u16.xyzw, r50.xyzz, r2.xyzw
endif
ret
// Approximately 0 instruction slots used
