//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions: 
//
// cbuffer XeResolveConstants
// {
//
//   uint xe_resolve_edram_info;        // Offset:    0 Size:     4
//   uint xe_resolve_address_info;      // Offset:    4 Size:     4
//   uint xe_resolve_dest_info;         // Offset:    8 Size:     4
//   uint xe_resolve_dest_pitch;        // Offset:   12 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim      ID      HLSL Bind  Count
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
// xe_resolve_source                 texture   uint4         buf      T0             t0      1 
// xe_resolve_dest                       UAV   uint2         buf      U0             u0      1 
// XeResolveConstants                cbuffer      NA          NA     CB0            cb0      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_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][1], immediateIndexed, space=0
dcl_resource_buffer (uint,uint,uint,uint) T0[0:0], space=0
dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 22
dcl_thread_group 8, 8, 1
ushr r0.xy, CB0[0][0].yyyy, l(5, 29, 0, 0)
mov r0.z, CB0[0][0].y
bfi r1.xy, l(5, 2, 0, 0), l(3, 3, 0, 0), r0.zxzz, l(0, 0, 0, 0)
iadd r1.xy, r1.xyxx, vThreadID.xyxx
and r2.xyzw, CB0[0][0].xzwx, l(1023, 0x01000000, 0x00003fff, 0x40000000)
ubfe r3.xyzw, l(12, 2, 1, 4), l(13, 10, 29, 25), CB0[0][0].xxxx
uge r0.w, l(3), r0.y
if_nz r0.w
  mov r4.y, r0.y
else 
  ieq r0.w, r0.y, l(5)
  if_nz r0.w
    mov r4.y, l(2)
  else 
    mov r4.y, l(0)
  endif 
endif 
uge r1.zw, r3.yyyy, l(0, 0, 2, 1)
and r1.zw, r1.zzzw, l(0, 0, 1, 1)
ishl r1.xy, r1.xyxx, r1.zwzz
ushr r4.x, r4.y, l(1)
and r1.zw, r4.xxxy, l(0, 0, 1, 1)
iadd r1.xy, r1.zwzz, r1.xyxx
udiv r0.w, null, r1.x, l(80)
ushr r1.z, r1.y, l(4)
movc r1.w, r3.z, l(1), l(0)
ishl r3.y, r0.w, r1.w
imad r3.y, r1.z, r2.x, r3.y
iadd r3.x, r3.y, r3.x
ineg r4.x, r0.w
ineg r4.y, r1.z
imad r1.xy, r4.xyxx, l(80, 16, 0, 0), r1.xyxx
imad r0.w, r1.y, l(80), r1.x
ishl r0.w, r0.w, r1.w
imad r0.w, r3.x, l(1280), r0.w
ld r1.xyzw, r0.wwww, T0[0].xzyw
if_nz r3.z
  iadd r3.x, r0.w, l(1)
  ld r4.xyzw, r3.xxxx, T0[0].xzyw
  switch r3.w
    case l(5)
    ishl r8.xyzw, r1.xzyw, l(16, 16, 16, 16)
    mov r9.xz, r8.xxyx
    mov r9.yw, r1.xxxz
    ishr r9.xyzw, r9.xyzw, l(16, 16, 16, 16)
    itof r9.xyzw, r9.xyzw
    mul r9.xyzw, r9.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r5.xyzw, r9.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
    mov r1.xz, r8.zzwz
    ishr r8.xyzw, r1.xyzw, l(16, 16, 16, 16)
    itof r8.xyzw, r8.xyzw
    mul r8.xyzw, r8.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r6.xyzw, r8.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
    ishl r8.xyzw, r4.xzyw, l(16, 16, 16, 16)
    mov r9.xz, r8.xxyx
    mov r9.yw, r4.xxxz
    ishr r9.xyzw, r9.xyzw, l(16, 16, 16, 16)
    itof r9.xyzw, r9.xyzw
    mul r9.xyzw, r9.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r7.xyzw, r9.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
    mov r4.xz, r8.zzwz
    ishr r8.xyzw, r4.xyzw, l(16, 16, 16, 16)
    itof r8.xyzw, r8.xyzw
    mul r8.xyzw, r8.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r1.xyzw, r8.ywzx, l(-1.000000, -1.000000, -1.000000, -1.000000)
    break 
    case l(7)
    ushr r8.xyzw, r1.xzyw, l(16, 16, 16, 16)
    f16tof32 r5.xz, r1.xxzx
    f16tof32 r5.yw, r8.xxxy
    f16tof32 r6.xz, r1.yywy
    f16tof32 r6.yw, r8.zzzw
    ushr r8.xyzw, r4.xzyw, l(16, 16, 16, 16)
    f16tof32 r7.xz, r4.xxzx
    f16tof32 r7.yw, r8.xxxy
    f16tof32 r1.zw, r4.wwwy
    f16tof32 r1.xy, r8.zwzz
    break 
    default 
    mov r5.xy, r1.xzxx
    mov r5.zw, l(0,0,0,0)
    mov r6.xy, r1.ywyy
    mov r6.zw, l(0,0,0,0)
    mov r7.xy, r4.xzxx
    mov r7.zw, l(0,0,0,0)
    mov r1.xw, r4.wwwy
    mov r1.yz, l(0,0,0,0)
    break 
  endswitch 
else 
  switch r3.w
    case l(0)
    case l(1)
    ushr r4.yzw, r1.xxxx, l(0, 8, 16, 24)
    mov r4.x, r1.x
    and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
    utof r4.xyzw, r4.xyzw
    mul r5.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r4.yzw, r1.zzzz, l(0, 8, 16, 24)
    mov r4.x, r1.z
    and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
    utof r4.xyzw, r4.xyzw
    mul r6.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r4.yzw, r1.yyyy, l(0, 8, 16, 24)
    mov r4.x, r1.y
    and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
    utof r4.xyzw, r4.xyzw
    mul r7.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r1.xyz, r1.wwww, l(8, 24, 16, 0)
    and r4.xyzw, r1.wxzy, l(255, 255, 255, 255)
    utof r4.xyzw, r4.xyzw
    mul r1.xyzw, r4.ywzx, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r4.yzw, r1.xxxx, l(0, 10, 20, 30)
    mov r4.x, r1.x
    and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
    utof r4.xyzw, r4.xyzw
    mul r5.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r4.yzw, r1.zzzz, l(0, 10, 20, 30)
    mov r4.x, r1.z
    and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
    utof r4.xyzw, r4.xyzw
    mul r6.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r4.yzw, r1.yyyy, l(0, 10, 20, 30)
    mov r4.x, r1.y
    and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
    utof r4.xyzw, r4.xyzw
    mul r7.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r1.xyz, r1.wwww, l(10, 30, 20, 0)
    and r4.xyzw, r1.wxzy, l(1023, 1023, 1023, 3)
    utof r4.xyzw, r4.xyzw
    mul r1.xyzw, r4.ywzx, l(0.000978, 0.333333, 0.000978, 0.000978)
    break 
    case l(3)
    case l(12)
    ushr r4.xyzw, r1.xxxz, l(10, 20, 30, 30)
    mov r8.x, r1.x
    mov r8.yz, r4.xxyx
    and r9.xyz, r8.xyzx, l(1023, 1023, 1023, 0)
    and r10.xyz, r8.xyzx, l(127, 127, 127, 0)
    ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r8.xyzx
    firstbit_hi r12.xyz, r10.xyzx
    iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
    movc r12.xyz, r10.xyzx, r12.xyzx, l(8,8,8,0)
    iadd r13.xyz, -r12.xyzx, l(1, 1, 1, 0)
    movc r13.xyz, r11.xyzx, r11.xyzx, r13.xyzx
    bfi r8.xyz, l(7, 7, 7, 0), r12.xyzx, r8.xyzx, l(0, 0, 0, 0)
    and r8.xyz, r8.xyzx, l(127, 127, 127, 0)
    movc r8.xyz, r11.xyzx, r10.xyzx, r8.xyzx
    ishl r10.xyz, r13.xyzx, l(23, 23, 23, 0)
    iadd r10.xyz, r10.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r8.xyz, r8.xyzx, l(16, 16, 16, 0)
    iadd r8.xyz, r10.xyzx, r8.xyzx
    movc r5.xyz, r9.xyzx, r8.xyzx, l(0,0,0,0)
    utof r3.xy, r4.zwzz
    ushr r4.xyzw, r1.zyyz, l(10, 10, 20, 20)
    mov r8.x, r1.z
    mov r8.yz, r4.xxwx
    and r9.xyz, r8.xyzx, l(1023, 1023, 1023, 0)
    and r10.xyz, r8.xyzx, l(127, 127, 127, 0)
    ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r8.xyzx
    firstbit_hi r12.xyz, r10.xyzx
    iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
    movc r12.xyz, r10.xyzx, r12.xyzx, l(8,8,8,0)
    iadd r13.xyz, -r12.xyzx, l(1, 1, 1, 0)
    movc r13.xyz, r11.xyzx, r11.xyzx, r13.xyzx
    bfi r8.xyz, l(7, 7, 7, 0), r12.xyzx, r8.xyzx, l(0, 0, 0, 0)
    and r8.xyz, r8.xyzx, l(127, 127, 127, 0)
    movc r8.xyz, r11.xyzx, r10.xyzx, r8.xyzx
    ishl r10.xyz, r13.xyzx, l(23, 23, 23, 0)
    iadd r10.xyz, r10.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r8.xyz, r8.xyzx, l(16, 16, 16, 0)
    iadd r8.xyz, r10.xyzx, r8.xyzx
    movc r6.xyz, r9.xyzx, r8.xyzx, l(0,0,0,0)
    mul r3.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r4.x, r1.y
    and r8.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
    and r9.xyz, r4.xyzx, l(127, 127, 127, 0)
    ubfe r10.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
    firstbit_hi r11.xyz, r9.xyzx
    iadd r11.xyz, r11.xyzx, l(-24, -24, -24, 0)
    movc r11.xyz, r9.xyzx, r11.xyzx, l(8,8,8,0)
    iadd r12.xyz, -r11.xyzx, l(1, 1, 1, 0)
    movc r12.xyz, r10.xyzx, r10.xyzx, r12.xyzx
    bfi r4.xyz, l(7, 7, 7, 0), r11.xyzx, r4.xyzx, l(0, 0, 0, 0)
    and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
    movc r4.xyz, r10.xyzx, r9.xyzx, r4.xyzx
    ishl r9.xyz, r12.xyzx, l(23, 23, 23, 0)
    iadd r9.xyz, r9.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
    iadd r4.xyz, r9.xyzx, r4.xyzx
    movc r7.xyz, r8.xyzx, r4.xyzx, l(0,0,0,0)
    ushr r4.xyzw, r1.ywww, l(30, 10, 20, 30)
    utof r8.xy, r4.xwxx
    mov r4.x, r1.w
    and r9.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
    and r10.xyz, r4.xyzx, l(127, 127, 127, 0)
    ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
    firstbit_hi r12.xyz, r10.xyzx
    iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
    movc r12.xyz, r10.xyzx, r12.xyzx, l(8,8,8,0)
    iadd r13.xyz, -r12.xyzx, l(1, 1, 1, 0)
    movc r13.xyz, r11.xyzx, r11.xyzx, r13.xyzx
    bfi r4.xyz, l(7, 7, 7, 0), r12.xyzx, r4.xyzx, l(0, 0, 0, 0)
    and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
    movc r4.xyz, r11.xyzx, r10.xyzx, r4.xyzx
    ishl r10.xyz, r13.xyzx, l(23, 23, 23, 0)
    iadd r10.xyz, r10.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
    iadd r4.xyz, r10.xyzx, r4.xyzx
    movc r1.xzw, r9.yyzx, r4.yyzx, l(0,0,0,0)
    mul r4.xy, r8.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r5.w, r3.x
    mov r6.w, r3.y
    mov r7.w, r4.x
    mov r1.y, r4.y
    break 
    case l(4)
    ishl r4.xyzw, r1.xzyw, l(16, 16, 16, 16)
    mov r8.xz, r4.xxyx
    mov r8.yw, r1.xxxz
    ishr r8.xyzw, r8.xyzw, l(16, 16, 16, 16)
    itof r8.xyzw, r8.xyzw
    mul r8.xyzw, r8.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r5.xy, r8.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r6.xy, r8.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r1.xz, r4.zzwz
    ishr r4.xyzw, r1.xyzw, l(16, 16, 16, 16)
    itof r4.xyzw, r4.xyzw
    mul r4.xyzw, r4.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r7.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r1.xw, r4.wwwz, l(-1.000000, 0.000000, 0.000000, -1.000000)
    mov r5.zw, l(0,0,0,0)
    mov r6.zw, l(0,0,0,0)
    mov r7.zw, l(0,0,0,0)
    mov r1.yz, l(0,0,0,0)
    break 
    case l(6)
    ushr r4.xyzw, r1.xzyw, l(16, 16, 16, 16)
    f16tof32 r5.x, r1.x
    f16tof32 r5.y, r4.x
    f16tof32 r6.x, r1.z
    f16tof32 r6.y, r4.y
    f16tof32 r7.x, r1.y
    f16tof32 r7.y, r4.z
    f16tof32 r1.w, r1.w
    f16tof32 r1.x, r4.w
    mov r5.zw, l(0,0,0,0)
    mov r6.zw, l(0,0,0,0)
    mov r7.zw, l(0,0,0,0)
    mov r1.yz, l(0,0,0,0)
    break 
    default 
    mov r5.x, r1.x
    mov r5.yzw, l(0,0,0,0)
    mov r6.x, r1.z
    mov r6.yzw, l(0,0,0,0)
    mov r7.x, r1.y
    mov r7.yzw, l(0,0,0,0)
    mov r1.xyz, l(0,0,0,0)
    break 
  endswitch 
endif 
ibfe r3.x, l(6), l(16), CB0[0][0].z
ishl r3.x, r3.x, l(23)
iadd r3.x, r3.x, l(0x3f800000)
uge r3.y, r0.y, l(4)
if_nz r3.y
  mul r3.y, r3.x, l(0.500000)
  ishl r4.x, l(80), r3.z
  iadd r4.x, r0.w, r4.x
  ld r4.xyzw, r4.xxxx, T0[0].xzyw
  if_nz r3.z
    iadd r8.x, r0.w, l(161)
    ld r8.xyzw, r8.xxxx, T0[0].xzyw
    switch r3.w
      case l(5)
      ishl r12.xyzw, r4.xzyw, l(16, 16, 16, 16)
      mov r13.xz, r12.xxyx
      mov r13.yw, r4.xxxz
      ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
      itof r13.xyzw, r13.xyzw
      mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r9.xyzw, r13.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      mov r4.xz, r12.zzwz
      ishr r12.xyzw, r4.xyzw, l(16, 16, 16, 16)
      itof r12.xyzw, r12.xyzw
      mul r12.xyzw, r12.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r10.xyzw, r12.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      ishl r12.xyzw, r8.xzyw, l(16, 16, 16, 16)
      mov r13.xz, r12.xxyx
      mov r13.yw, r8.xxxz
      ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
      itof r13.xyzw, r13.xyzw
      mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r11.xyzw, r13.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      mov r8.xz, r12.zzwz
      ishr r12.xyzw, r8.xyzw, l(16, 16, 16, 16)
      itof r12.xyzw, r12.xyzw
      mul r12.xyzw, r12.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r4.xyzw, r12.ywzx, l(-1.000000, -1.000000, -1.000000, -1.000000)
      break 
      case l(7)
      ushr r12.xyzw, r4.xzyw, l(16, 16, 16, 16)
      f16tof32 r9.xz, r4.xxzx
      f16tof32 r9.yw, r12.xxxy
      f16tof32 r10.xz, r4.yywy
      f16tof32 r10.yw, r12.zzzw
      ushr r12.xyzw, r8.xzyw, l(16, 16, 16, 16)
      f16tof32 r11.xz, r8.xxzx
      f16tof32 r11.yw, r12.xxxy
      f16tof32 r4.zw, r8.wwwy
      f16tof32 r4.xy, r12.zwzz
      break 
      default 
      mov r9.xy, r4.xzxx
      mov r9.zw, l(0,0,0,0)
      mov r10.xy, r4.ywyy
      mov r10.zw, l(0,0,0,0)
      mov r11.xy, r8.xzxx
      mov r11.zw, l(0,0,0,0)
      mov r4.xw, r8.wwwy
      mov r4.yz, l(0,0,0,0)
      break 
    endswitch 
  else 
    switch r3.w
      case l(0)
      case l(1)
      ushr r8.yzw, r4.xxxx, l(0, 8, 16, 24)
      mov r8.x, r4.x
      and r8.xyzw, r8.xyzw, l(255, 255, 255, 255)
      utof r8.xyzw, r8.xyzw
      mul r9.xyzw, r8.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r8.yzw, r4.zzzz, l(0, 8, 16, 24)
      mov r8.x, r4.z
      and r8.xyzw, r8.xyzw, l(255, 255, 255, 255)
      utof r8.xyzw, r8.xyzw
      mul r10.xyzw, r8.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r8.yzw, r4.yyyy, l(0, 8, 16, 24)
      mov r8.x, r4.y
      and r8.xyzw, r8.xyzw, l(255, 255, 255, 255)
      utof r8.xyzw, r8.xyzw
      mul r11.xyzw, r8.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r4.xyz, r4.wwww, l(8, 24, 16, 0)
      and r8.xyzw, r4.wxzy, l(255, 255, 255, 255)
      utof r8.xyzw, r8.xyzw
      mul r4.xyzw, r8.ywzx, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r8.yzw, r4.xxxx, l(0, 10, 20, 30)
      mov r8.x, r4.x
      and r8.xyzw, r8.xyzw, l(1023, 1023, 1023, 3)
      utof r8.xyzw, r8.xyzw
      mul r9.xyzw, r8.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r8.yzw, r4.zzzz, l(0, 10, 20, 30)
      mov r8.x, r4.z
      and r8.xyzw, r8.xyzw, l(1023, 1023, 1023, 3)
      utof r8.xyzw, r8.xyzw
      mul r10.xyzw, r8.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r8.yzw, r4.yyyy, l(0, 10, 20, 30)
      mov r8.x, r4.y
      and r8.xyzw, r8.xyzw, l(1023, 1023, 1023, 3)
      utof r8.xyzw, r8.xyzw
      mul r11.xyzw, r8.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r4.xyz, r4.wwww, l(10, 30, 20, 0)
      and r8.xyzw, r4.wxzy, l(1023, 1023, 1023, 3)
      utof r8.xyzw, r8.xyzw
      mul r4.xyzw, r8.ywzx, l(0.000978, 0.333333, 0.000978, 0.000978)
      break 
      case l(3)
      case l(12)
      ushr r8.xyzw, r4.xxxz, l(10, 20, 30, 30)
      mov r12.x, r4.x
      mov r12.yz, r8.xxyx
      and r13.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r14.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
      firstbit_hi r16.xyz, r14.xyzx
      iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
      movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
      iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
      movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
      bfi r12.xyz, l(7, 7, 7, 0), r16.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
      movc r12.xyz, r15.xyzx, r14.xyzx, r12.xyzx
      ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
      iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
      iadd r12.xyz, r14.xyzx, r12.xyzx
      movc r9.xyz, r13.xyzx, r12.xyzx, l(0,0,0,0)
      utof r8.xy, r8.zwzz
      ushr r12.xyzw, r4.zyyz, l(10, 10, 20, 20)
      mov r13.x, r4.z
      mov r13.yz, r12.xxwx
      and r14.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r13.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
      firstbit_hi r17.xyz, r15.xyzx
      iadd r17.xyz, r17.xyzx, l(-24, -24, -24, 0)
      movc r17.xyz, r15.xyzx, r17.xyzx, l(8,8,8,0)
      iadd r18.xyz, -r17.xyzx, l(1, 1, 1, 0)
      movc r18.xyz, r16.xyzx, r16.xyzx, r18.xyzx
      bfi r13.xyz, l(7, 7, 7, 0), r17.xyzx, r13.xyzx, l(0, 0, 0, 0)
      and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
      movc r13.xyz, r16.xyzx, r15.xyzx, r13.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
      iadd r13.xyz, r15.xyzx, r13.xyzx
      movc r10.xyz, r14.xyzx, r13.xyzx, l(0,0,0,0)
      mov r12.x, r4.y
      and r13.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r14.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
      firstbit_hi r16.xyz, r14.xyzx
      iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
      movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
      iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
      movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
      bfi r12.xyz, l(7, 7, 7, 0), r16.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
      movc r12.xyz, r15.xyzx, r14.xyzx, r12.xyzx
      ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
      iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
      iadd r12.xyz, r14.xyzx, r12.xyzx
      movc r11.xyz, r13.xyzx, r12.xyzx, l(0,0,0,0)
      ushr r12.xyzw, r4.ywww, l(30, 10, 20, 30)
      utof r8.zw, r12.xxxw
      mov r12.x, r4.w
      and r13.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r14.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
      firstbit_hi r16.xyz, r14.xyzx
      iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
      movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
      iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
      movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
      bfi r12.xyz, l(7, 7, 7, 0), r16.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
      movc r12.xyz, r15.xyzx, r14.xyzx, r12.xyzx
      ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
      iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
      iadd r12.xyz, r14.xyzx, r12.xyzx
      movc r4.xzw, r13.yyzx, r12.yyzx, l(0,0,0,0)
      mul r8.xyzw, r8.xyzw, l(0.333333, 0.333333, 0.333333, 0.333333)
      mov r9.w, r8.x
      mov r10.w, r8.y
      mov r11.w, r8.z
      mov r4.y, r8.w
      break 
      case l(4)
      ishl r8.xyzw, r4.xzyw, l(16, 16, 16, 16)
      mov r12.xz, r8.xxyx
      mov r12.yw, r4.xxxz
      ishr r12.xyzw, r12.xyzw, l(16, 16, 16, 16)
      itof r12.xyzw, r12.xyzw
      mul r12.xyzw, r12.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r9.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r10.xy, r12.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r4.xz, r8.zzwz
      ishr r8.xyzw, r4.xyzw, l(16, 16, 16, 16)
      itof r8.xyzw, r8.xyzw
      mul r8.xyzw, r8.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r11.xy, r8.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r4.xw, r8.wwwz, l(-1.000000, 0.000000, 0.000000, -1.000000)
      mov r9.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      mov r4.yz, l(0,0,0,0)
      break 
      case l(6)
      ushr r8.xyzw, r4.xzyw, l(16, 16, 16, 16)
      f16tof32 r9.x, r4.x
      f16tof32 r9.y, r8.x
      f16tof32 r10.x, r4.z
      f16tof32 r10.y, r8.y
      f16tof32 r11.x, r4.y
      f16tof32 r11.y, r8.z
      f16tof32 r4.w, r4.w
      f16tof32 r4.x, r8.w
      mov r9.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      mov r4.yz, l(0,0,0,0)
      break 
      default 
      mov r9.x, r4.x
      mov r9.yzw, l(0,0,0,0)
      mov r10.x, r4.z
      mov r10.yzw, l(0,0,0,0)
      mov r11.x, r4.y
      mov r11.yzw, l(0,0,0,0)
      mov r4.xyz, l(0,0,0,0)
      break 
    endswitch 
  endif 
  add r5.xyzw, r5.xyzw, r9.xyzw
  add r6.xyzw, r6.xyzw, r10.xyzw
  add r7.xyzw, r7.xyzw, r11.xyzw
  add r1.xyzw, r1.xyzw, r4.xyzw
  uge r0.y, r0.y, l(6)
  if_nz r0.y
    mul r3.x, r3.x, l(0.250000)
    ishl r4.xy, l(1, 81, 0, 0), r3.zzzz
    iadd r4.xy, r0.wwww, r4.xyxx
    ld r8.xyzw, r4.xxxx, T0[0].xzyw
    if_nz r3.z
      iadd r0.y, r0.w, l(3)
      ld r9.xyzw, r0.yyyy, T0[0].xzyw
      switch r3.w
        case l(5)
        ishl r13.xyzw, r8.xzyw, l(16, 16, 16, 16)
        mov r14.xz, r13.xxyx
        mov r14.yw, r8.xxxz
        ishr r14.xyzw, r14.xyzw, l(16, 16, 16, 16)
        itof r14.xyzw, r14.xyzw
        mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r10.xyzw, r14.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        mov r8.xz, r13.zzwz
        ishr r13.xyzw, r8.xyzw, l(16, 16, 16, 16)
        itof r13.xyzw, r13.xyzw
        mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r11.xyzw, r13.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        ishl r13.xyzw, r9.xzyw, l(16, 16, 16, 16)
        mov r14.xz, r13.xxyx
        mov r14.yw, r9.xxxz
        ishr r14.xyzw, r14.xyzw, l(16, 16, 16, 16)
        itof r14.xyzw, r14.xyzw
        mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r12.xyzw, r14.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        mov r9.xz, r13.zzwz
        ishr r13.xyzw, r9.xyzw, l(16, 16, 16, 16)
        itof r13.xyzw, r13.xyzw
        mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r8.xyzw, r13.ywzx, l(-1.000000, -1.000000, -1.000000, -1.000000)
        break 
        case l(7)
        ushr r13.xyzw, r8.xzyw, l(16, 16, 16, 16)
        f16tof32 r10.xz, r8.xxzx
        f16tof32 r10.yw, r13.xxxy
        f16tof32 r11.xz, r8.yywy
        f16tof32 r11.yw, r13.zzzw
        ushr r13.xyzw, r9.xzyw, l(16, 16, 16, 16)
        f16tof32 r12.xz, r9.xxzx
        f16tof32 r12.yw, r13.xxxy
        f16tof32 r8.zw, r9.wwwy
        f16tof32 r8.xy, r13.zwzz
        break 
        default 
        mov r10.xy, r8.xzxx
        mov r10.zw, l(0,0,0,0)
        mov r11.xy, r8.ywyy
        mov r11.zw, l(0,0,0,0)
        mov r12.xy, r9.xzxx
        mov r12.zw, l(0,0,0,0)
        mov r8.xw, r9.wwwy
        mov r8.yz, l(0,0,0,0)
        break 
      endswitch 
    else 
      switch r3.w
        case l(0)
        case l(1)
        ushr r9.yzw, r8.xxxx, l(0, 8, 16, 24)
        mov r9.x, r8.x
        and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
        utof r9.xyzw, r9.xyzw
        mul r10.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r9.yzw, r8.zzzz, l(0, 8, 16, 24)
        mov r9.x, r8.z
        and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
        utof r9.xyzw, r9.xyzw
        mul r11.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r9.yzw, r8.yyyy, l(0, 8, 16, 24)
        mov r9.x, r8.y
        and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
        utof r9.xyzw, r9.xyzw
        mul r12.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r8.xyz, r8.wwww, l(8, 24, 16, 0)
        and r9.xyzw, r8.wxzy, l(255, 255, 255, 255)
        utof r9.xyzw, r9.xyzw
        mul r8.xyzw, r9.ywzx, l(0.003922, 0.003922, 0.003922, 0.003922)
        break 
        case l(2)
        case l(10)
        ushr r9.yzw, r8.xxxx, l(0, 10, 20, 30)
        mov r9.x, r8.x
        and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
        utof r9.xyzw, r9.xyzw
        mul r10.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r9.yzw, r8.zzzz, l(0, 10, 20, 30)
        mov r9.x, r8.z
        and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
        utof r9.xyzw, r9.xyzw
        mul r11.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r9.yzw, r8.yyyy, l(0, 10, 20, 30)
        mov r9.x, r8.y
        and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
        utof r9.xyzw, r9.xyzw
        mul r12.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r8.xyz, r8.wwww, l(10, 30, 20, 0)
        and r9.xyzw, r8.wxzy, l(1023, 1023, 1023, 3)
        utof r9.xyzw, r9.xyzw
        mul r8.xyzw, r9.ywzx, l(0.000978, 0.333333, 0.000978, 0.000978)
        break 
        case l(3)
        case l(12)
        ushr r9.xyzw, r8.xxxz, l(10, 20, 30, 30)
        mov r13.x, r8.x
        mov r13.yz, r9.xxyx
        and r4.xzw, r13.xxyz, l(1023, 0, 1023, 1023)
        and r14.xyz, r13.xyzx, l(127, 127, 127, 0)
        ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
        firstbit_hi r16.xyz, r14.xyzx
        iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
        movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
        iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
        movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
        bfi r13.xyz, l(7, 7, 7, 0), r16.xyzx, r13.xyzx, l(0, 0, 0, 0)
        and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
        movc r13.xyz, r15.xyzx, r14.xyzx, r13.xyzx
        ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
        iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
        iadd r13.xyz, r14.xyzx, r13.xyzx
        movc r10.xyz, r4.xzwx, r13.xyzx, l(0,0,0,0)
        utof r4.xz, r9.zzwz
        ushr r9.xyzw, r8.zyyz, l(10, 10, 20, 20)
        mov r13.x, r8.z
        mov r13.yz, r9.xxwx
        and r14.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
        and r15.xyz, r13.xyzx, l(127, 127, 127, 0)
        ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
        firstbit_hi r17.xyz, r15.xyzx
        iadd r17.xyz, r17.xyzx, l(-24, -24, -24, 0)
        movc r17.xyz, r15.xyzx, r17.xyzx, l(8,8,8,0)
        iadd r18.xyz, -r17.xyzx, l(1, 1, 1, 0)
        movc r18.xyz, r16.xyzx, r16.xyzx, r18.xyzx
        bfi r13.xyz, l(7, 7, 7, 0), r17.xyzx, r13.xyzx, l(0, 0, 0, 0)
        and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
        movc r13.xyz, r16.xyzx, r15.xyzx, r13.xyzx
        ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
        iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
        iadd r13.xyz, r15.xyzx, r13.xyzx
        movc r11.xyz, r14.xyzx, r13.xyzx, l(0,0,0,0)
        mul r4.xz, r4.xxzx, l(0.333333, 0.000000, 0.333333, 0.000000)
        mov r9.x, r8.y
        and r13.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
        and r14.xyz, r9.xyzx, l(127, 127, 127, 0)
        ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
        firstbit_hi r16.xyz, r14.xyzx
        iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
        movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
        iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
        movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
        bfi r9.xyz, l(7, 7, 7, 0), r16.xyzx, r9.xyzx, l(0, 0, 0, 0)
        and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
        movc r9.xyz, r15.xyzx, r14.xyzx, r9.xyzx
        ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
        iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
        iadd r9.xyz, r14.xyzx, r9.xyzx
        movc r12.xyz, r13.xyzx, r9.xyzx, l(0,0,0,0)
        ushr r9.xyzw, r8.ywww, l(30, 10, 20, 30)
        utof r13.xy, r9.xwxx
        mov r9.x, r8.w
        and r14.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
        and r15.xyz, r9.xyzx, l(127, 127, 127, 0)
        ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
        firstbit_hi r17.xyz, r15.xyzx
        iadd r17.xyz, r17.xyzx, l(-24, -24, -24, 0)
        movc r17.xyz, r15.xyzx, r17.xyzx, l(8,8,8,0)
        iadd r18.xyz, -r17.xyzx, l(1, 1, 1, 0)
        movc r18.xyz, r16.xyzx, r16.xyzx, r18.xyzx
        bfi r9.xyz, l(7, 7, 7, 0), r17.xyzx, r9.xyzx, l(0, 0, 0, 0)
        and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
        movc r9.xyz, r16.xyzx, r15.xyzx, r9.xyzx
        ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
        iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
        iadd r9.xyz, r15.xyzx, r9.xyzx
        movc r8.xzw, r14.yyzx, r9.yyzx, l(0,0,0,0)
        mul r9.xy, r13.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
        mov r10.w, r4.x
        mov r11.w, r4.z
        mov r12.w, r9.x
        mov r8.y, r9.y
        break 
        case l(4)
        ishl r9.xyzw, r8.xzyw, l(16, 16, 16, 16)
        mov r13.xz, r9.xxyx
        mov r13.yw, r8.xxxz
        ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
        itof r13.xyzw, r13.xyzw
        mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r10.xy, r13.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r11.xy, r13.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r8.xz, r9.zzwz
        ishr r9.xyzw, r8.xyzw, l(16, 16, 16, 16)
        itof r9.xyzw, r9.xyzw
        mul r9.xyzw, r9.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r12.xy, r9.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r8.xw, r9.wwwz, l(-1.000000, 0.000000, 0.000000, -1.000000)
        mov r10.zw, l(0,0,0,0)
        mov r11.zw, l(0,0,0,0)
        mov r12.zw, l(0,0,0,0)
        mov r8.yz, l(0,0,0,0)
        break 
        case l(6)
        ushr r9.xyzw, r8.xzyw, l(16, 16, 16, 16)
        f16tof32 r10.x, r8.x
        f16tof32 r10.y, r9.x
        f16tof32 r11.x, r8.z
        f16tof32 r11.y, r9.y
        f16tof32 r12.x, r8.y
        f16tof32 r12.y, r9.z
        f16tof32 r8.w, r8.w
        f16tof32 r8.x, r9.w
        mov r10.zw, l(0,0,0,0)
        mov r11.zw, l(0,0,0,0)
        mov r12.zw, l(0,0,0,0)
        mov r8.yz, l(0,0,0,0)
        break 
        default 
        mov r10.x, r8.x
        mov r10.yzw, l(0,0,0,0)
        mov r11.x, r8.z
        mov r11.yzw, l(0,0,0,0)
        mov r12.x, r8.y
        mov r12.yzw, l(0,0,0,0)
        mov r8.xyz, l(0,0,0,0)
        break 
      endswitch 
    endif 
    add r9.xyzw, r5.xyzw, r10.xyzw
    add r10.xyzw, r6.xyzw, r11.xyzw
    add r11.xyzw, r7.xyzw, r12.xyzw
    add r8.xyzw, r1.wxzy, r8.wxzy
    ld r4.xyzw, r4.yyyy, T0[0].xzyw
    if_nz r3.z
      iadd r0.y, r0.w, l(163)
      ld r12.xyzw, r0.yyyy, T0[0].xzyw
      switch r3.w
        case l(5)
        ishl r16.xyzw, r4.xzyw, l(16, 16, 16, 16)
        mov r17.xz, r16.xxyx
        mov r17.yw, r4.xxxz
        ishr r17.xyzw, r17.xyzw, l(16, 16, 16, 16)
        itof r17.xyzw, r17.xyzw
        mul r17.xyzw, r17.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r13.xyzw, r17.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        mov r4.xz, r16.zzwz
        ishr r16.xyzw, r4.xyzw, l(16, 16, 16, 16)
        itof r16.xyzw, r16.xyzw
        mul r16.xyzw, r16.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r14.xyzw, r16.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        ishl r16.xyzw, r12.xzyw, l(16, 16, 16, 16)
        mov r17.xz, r16.xxyx
        mov r17.yw, r12.xxxz
        ishr r17.xyzw, r17.xyzw, l(16, 16, 16, 16)
        itof r17.xyzw, r17.xyzw
        mul r17.xyzw, r17.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r15.xyzw, r17.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        mov r12.xz, r16.zzwz
        ishr r16.xyzw, r12.xyzw, l(16, 16, 16, 16)
        itof r16.xyzw, r16.xyzw
        mul r16.xyzw, r16.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r4.xyzw, r16.ywzx, l(-1.000000, -1.000000, -1.000000, -1.000000)
        break 
        case l(7)
        ushr r16.xyzw, r4.xzyw, l(16, 16, 16, 16)
        f16tof32 r13.xz, r4.xxzx
        f16tof32 r13.yw, r16.xxxy
        f16tof32 r14.xz, r4.yywy
        f16tof32 r14.yw, r16.zzzw
        ushr r16.xyzw, r12.xzyw, l(16, 16, 16, 16)
        f16tof32 r15.xz, r12.xxzx
        f16tof32 r15.yw, r16.xxxy
        f16tof32 r4.zw, r12.wwwy
        f16tof32 r4.xy, r16.zwzz
        break 
        default 
        mov r13.xy, r4.xzxx
        mov r13.zw, l(0,0,0,0)
        mov r14.xy, r4.ywyy
        mov r14.zw, l(0,0,0,0)
        mov r15.xy, r12.xzxx
        mov r15.zw, l(0,0,0,0)
        mov r4.xw, r12.wwwy
        mov r4.yz, l(0,0,0,0)
        break 
      endswitch 
    else 
      switch r3.w
        case l(0)
        case l(1)
        ushr r12.yzw, r4.xxxx, l(0, 8, 16, 24)
        mov r12.x, r4.x
        and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
        utof r12.xyzw, r12.xyzw
        mul r13.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r12.yzw, r4.zzzz, l(0, 8, 16, 24)
        mov r12.x, r4.z
        and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
        utof r12.xyzw, r12.xyzw
        mul r14.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r12.yzw, r4.yyyy, l(0, 8, 16, 24)
        mov r12.x, r4.y
        and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
        utof r12.xyzw, r12.xyzw
        mul r15.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r4.xyz, r4.wwww, l(8, 24, 16, 0)
        and r12.xyzw, r4.wxzy, l(255, 255, 255, 255)
        utof r12.xyzw, r12.xyzw
        mul r4.xyzw, r12.ywzx, l(0.003922, 0.003922, 0.003922, 0.003922)
        break 
        case l(2)
        case l(10)
        ushr r12.yzw, r4.xxxx, l(0, 10, 20, 30)
        mov r12.x, r4.x
        and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
        utof r12.xyzw, r12.xyzw
        mul r13.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r12.yzw, r4.zzzz, l(0, 10, 20, 30)
        mov r12.x, r4.z
        and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
        utof r12.xyzw, r12.xyzw
        mul r14.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r12.yzw, r4.yyyy, l(0, 10, 20, 30)
        mov r12.x, r4.y
        and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
        utof r12.xyzw, r12.xyzw
        mul r15.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r4.xyz, r4.wwww, l(10, 30, 20, 0)
        and r12.xyzw, r4.wxzy, l(1023, 1023, 1023, 3)
        utof r12.xyzw, r12.xyzw
        mul r4.xyzw, r12.ywzx, l(0.000978, 0.333333, 0.000978, 0.000978)
        break 
        case l(3)
        case l(12)
        ushr r12.xyzw, r4.xxxz, l(10, 20, 30, 30)
        mov r16.x, r4.x
        mov r16.yz, r12.xxyx
        and r17.xyz, r16.xyzx, l(1023, 1023, 1023, 0)
        and r18.xyz, r16.xyzx, l(127, 127, 127, 0)
        ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.xyzx
        firstbit_hi r20.xyz, r18.xyzx
        iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
        movc r20.xyz, r18.xyzx, r20.xyzx, l(8,8,8,0)
        iadd r21.xyz, -r20.xyzx, l(1, 1, 1, 0)
        movc r21.xyz, r19.xyzx, r19.xyzx, r21.xyzx
        bfi r16.xyz, l(7, 7, 7, 0), r20.xyzx, r16.xyzx, l(0, 0, 0, 0)
        and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
        movc r16.xyz, r19.xyzx, r18.xyzx, r16.xyzx
        ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
        iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r16.xyz, r16.xyzx, l(16, 16, 16, 0)
        iadd r16.xyz, r18.xyzx, r16.xyzx
        movc r13.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
        utof r0.yw, r12.zzzw
        ushr r12.xyzw, r4.zyyz, l(10, 10, 20, 20)
        mov r16.x, r4.z
        mov r16.yz, r12.xxwx
        and r17.xyz, r16.xyzx, l(1023, 1023, 1023, 0)
        and r18.xyz, r16.xyzx, l(127, 127, 127, 0)
        ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.xyzx
        firstbit_hi r20.xyz, r18.xyzx
        iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
        movc r20.xyz, r18.xyzx, r20.xyzx, l(8,8,8,0)
        iadd r21.xyz, -r20.xyzx, l(1, 1, 1, 0)
        movc r21.xyz, r19.xyzx, r19.xyzx, r21.xyzx
        bfi r16.xyz, l(7, 7, 7, 0), r20.xyzx, r16.xyzx, l(0, 0, 0, 0)
        and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
        movc r16.xyz, r19.xyzx, r18.xyzx, r16.xyzx
        ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
        iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r16.xyz, r16.xyzx, l(16, 16, 16, 0)
        iadd r16.xyz, r18.xyzx, r16.xyzx
        movc r14.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
        mul r0.yw, r0.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
        mov r12.x, r4.y
        and r16.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
        and r17.xyz, r12.xyzx, l(127, 127, 127, 0)
        ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
        firstbit_hi r19.xyz, r17.xyzx
        iadd r19.xyz, r19.xyzx, l(-24, -24, -24, 0)
        movc r19.xyz, r17.xyzx, r19.xyzx, l(8,8,8,0)
        iadd r20.xyz, -r19.xyzx, l(1, 1, 1, 0)
        movc r20.xyz, r18.xyzx, r18.xyzx, r20.xyzx
        bfi r12.xyz, l(7, 7, 7, 0), r19.xyzx, r12.xyzx, l(0, 0, 0, 0)
        and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
        movc r12.xyz, r18.xyzx, r17.xyzx, r12.xyzx
        ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
        iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
        iadd r12.xyz, r17.xyzx, r12.xyzx
        movc r15.xyz, r16.xyzx, r12.xyzx, l(0,0,0,0)
        ushr r12.xyzw, r4.ywww, l(30, 10, 20, 30)
        utof r3.zw, r12.xxxw
        mov r12.x, r4.w
        and r16.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
        and r17.xyz, r12.xyzx, l(127, 127, 127, 0)
        ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
        firstbit_hi r19.xyz, r17.xyzx
        iadd r19.xyz, r19.xyzx, l(-24, -24, -24, 0)
        movc r19.xyz, r17.xyzx, r19.xyzx, l(8,8,8,0)
        iadd r20.xyz, -r19.xyzx, l(1, 1, 1, 0)
        movc r20.xyz, r18.xyzx, r18.xyzx, r20.xyzx
        bfi r12.xyz, l(7, 7, 7, 0), r19.xyzx, r12.xyzx, l(0, 0, 0, 0)
        and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
        movc r12.xyz, r18.xyzx, r17.xyzx, r12.xyzx
        ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
        iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
        iadd r12.xyz, r17.xyzx, r12.xyzx
        movc r4.xzw, r16.yyzx, r12.yyzx, l(0,0,0,0)
        mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
        mov r13.w, r0.y
        mov r14.w, r0.w
        mov r15.w, r3.z
        mov r4.y, r3.w
        break 
        case l(4)
        ishl r12.xyzw, r4.xzyw, l(16, 16, 16, 16)
        mov r16.xz, r12.xxyx
        mov r16.yw, r4.xxxz
        ishr r16.xyzw, r16.xyzw, l(16, 16, 16, 16)
        itof r16.xyzw, r16.xyzw
        mul r16.xyzw, r16.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r13.xy, r16.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r14.xy, r16.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r4.xz, r12.zzwz
        ishr r12.xyzw, r4.xyzw, l(16, 16, 16, 16)
        itof r12.xyzw, r12.xyzw
        mul r12.xyzw, r12.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
        max r15.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r4.xw, r12.wwwz, l(-1.000000, 0.000000, 0.000000, -1.000000)
        mov r13.zw, l(0,0,0,0)
        mov r14.zw, l(0,0,0,0)
        mov r15.zw, l(0,0,0,0)
        mov r4.yz, l(0,0,0,0)
        break 
        case l(6)
        ushr r12.xyzw, r4.xzyw, l(16, 16, 16, 16)
        f16tof32 r13.x, r4.x
        f16tof32 r13.y, r12.x
        f16tof32 r14.x, r4.z
        f16tof32 r14.y, r12.y
        f16tof32 r15.x, r4.y
        f16tof32 r15.y, r12.z
        f16tof32 r4.w, r4.w
        f16tof32 r4.x, r12.w
        mov r13.zw, l(0,0,0,0)
        mov r14.zw, l(0,0,0,0)
        mov r15.zw, l(0,0,0,0)
        mov r4.yz, l(0,0,0,0)
        break 
        default 
        mov r13.x, r4.x
        mov r13.yzw, l(0,0,0,0)
        mov r14.x, r4.z
        mov r14.yzw, l(0,0,0,0)
        mov r15.x, r4.y
        mov r15.yzw, l(0,0,0,0)
        mov r4.xyz, l(0,0,0,0)
        break 
      endswitch 
    endif 
    add r5.xyzw, r9.xyzw, r13.xyzw
    add r6.xyzw, r10.xyzw, r14.xyzw
    add r7.xyzw, r11.xyzw, r15.xyzw
    add r1.xyzw, r4.xyzw, r8.ywzx
  else 
    mov r3.x, r3.y
  endif 
endif 
mul r4.xyzw, r3.xxxx, r5.xyzw
mul r5.xyzw, r3.xxxx, r6.xyzw
mul r6.xyzw, r3.xxxx, r7.xyzw
mul r1.xyzw, r1.wxzy, r3.xxxx
if_nz r2.y
  mov r4.xz, r4.zzxz
  mov r5.xz, r5.zzxz
  mov r6.xz, r6.zzxz
  mov r1.xz, r1.zzxz
endif 
ubfe r0.y, l(6), l(7), CB0[0][0].z
switch r0.y
  case l(3)
  mov_sat r4.xyzw, r4.xyzw
  mad r3.xyzw, r4.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(1024), r3.x
  imad r3.x, r3.w, l(0x00008000), r3.x
  mov_sat r5.xyzw, r5.xyzw
  mad r7.xyzw, r5.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r7.xyzw, r7.xyzw
  imad r3.y, r7.y, l(32), r7.x
  imad r3.y, r7.z, l(1024), r3.y
  ishl r3.z, r7.w, l(31)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.y, r3.y, r3.x
  mov_sat r6.xyzw, r6.xyzw
  mad r3.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(1024), r3.x
  imad r3.x, r3.w, l(0x00008000), r3.x
  mov_sat r1.xyzw, r1.xyzw
  mad r7.xyzw, r1.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r7.xyzw, r7.xyzw
  imad r3.y, r7.y, l(32), r7.x
  imad r3.y, r7.z, l(1024), r3.y
  ishl r3.z, r7.w, l(31)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.w, r3.y, r3.x
  break 
  case l(4)
  mov_sat r4.xyz, r4.xyzx
  mad r3.xyz, r4.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r3.xyz, r3.xyzx
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(2048), r3.x
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  ishl r3.z, r3.w, l(27)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.y, r3.y, r3.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.xyz, r6.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r3.xyz, r3.xyzx
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(2048), r3.x
  mov_sat r1.xyz, r1.xyzx
  mad r3.yzw, r1.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  ishl r3.z, r3.w, l(27)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.w, r3.y, r3.x
  break 
  case l(5)
  mov_sat r4.xyz, r4.xyzx
  mad r3.xyz, r4.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r3.xyz, r3.xyzx
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(1024), r3.x
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  ishl r3.z, r3.w, l(26)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.y, r3.y, r3.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.xyz, r6.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r3.xyz, r3.xyzx
  imad r3.x, r3.y, l(32), r3.x
  imad r3.x, r3.z, l(1024), r3.x
  mov_sat r1.xyz, r1.xyzx
  mad r3.yzw, r1.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  ishl r3.z, r3.w, l(26)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.w, r3.y, r3.x
  break 
  case l(10)
  mov_sat r4.xy, r4.xyxx
  mov_sat r4.zw, r5.xxxy
  mad r3.xyzw, r4.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(256), r3.x
  imad r3.x, r3.z, l(0x00010000), r3.x
  imad r0.y, r3.w, l(0x01000000), r3.x
  mov_sat r6.xy, r6.xyxx
  mov_sat r6.zw, r1.xxxy
  mad r3.xyzw, r6.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(256), r3.x
  imad r3.x, r3.z, l(0x00010000), r3.x
  imad r0.w, r3.w, l(0x01000000), r3.x
  break 
  case l(15)
  mov_sat r4.xyzw, r4.xyzw
  mad r3.xyzw, r4.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(16), r3.x
  imad r3.x, r3.z, l(256), r3.x
  imad r3.x, r3.w, l(4096), r3.x
  mov_sat r5.xyzw, r5.xyzw
  mad r7.xyzw, r5.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r7.xyzw, r7.xyzw
  imad r3.y, r7.y, l(16), r7.x
  imad r3.y, r7.z, l(256), r3.y
  ishl r3.z, r7.w, l(28)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.y, r3.y, r3.x
  mov_sat r6.xyzw, r6.xyzw
  mad r3.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r3.x, r3.y, l(16), r3.x
  imad r3.x, r3.z, l(256), r3.x
  imad r3.x, r3.w, l(4096), r3.x
  mov_sat r1.xyzw, r1.xyzw
  mad r7.xyzw, r1.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r7.xyzw, r7.xyzw
  imad r3.y, r7.y, l(16), r7.x
  imad r3.y, r7.z, l(256), r3.y
  ishl r3.z, r7.w, l(28)
  imad r3.y, r3.y, l(0x00010000), r3.z
  iadd r0.w, r3.y, r3.x
  break 
  case l(24)
  mov_sat r1.z, r4.x
  mov_sat r1.y, r5.x
  mov_sat r1.w, r6.x
  mov_sat r1.x, r1.x
  mad r3.xyzw, r1.zywx, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r0.yw, r3.yyyw, l(0, 0x00010000, 0, 0x00010000), r3.xxxz
  break 
  default 
  f32tof16 r3.x, r4.x
  f32tof16 r3.y, r6.x
  f32tof16 r4.x, r5.x
  f32tof16 r4.y, r1.x
  imad r0.yw, r4.xxxy, l(0, 0x00010000, 0, 0x00010000), r3.xxxy
  break 
endswitch 
if_nz r2.w
  if_z vThreadID.x
    ushr r1.xy, r0.ywyy, l(16, 16, 0, 0)
    bfi r0.yw, l(0, 16, 0, 16), l(0, 0, 0, 0), r1.xxxy, r0.yyyw
  endif 
  if_z vThreadID.y
    mov r0.y, r0.w
  endif 
endif 
bfi r1.xyzw, l(2, 2, 2, 2), l(3, 3, 3, 3), r0.zxxz, l(0, 0, 0, 0)
iadd r1.xyzw, r1.xyzw, vThreadID.xyyx
and r0.xz, CB0[0][0].zzzz, l(8, 0, 7, 0)
if_nz r0.x
  ubfe r2.xy, l(3, 14, 0, 0), l(4, 16, 0, 0), CB0[0][0].zwzz
  iadd r2.yw, r2.yyyz, l(0, 31, 0, 31)
  ishr r3.xyzw, r1.zwzw, l(4, 5, 3, 3)
  ishr r0.x, r2.x, l(2)
  ushr r2.yw, r2.yyyw, l(0, 4, 0, 5)
  and r2.y, r2.y, l(2046)
  imad r2.y, r0.x, r2.y, r3.x
  imad r2.y, r2.y, r2.w, r3.y
  ishl r2.w, r1.z, l(9)
  and r2.w, r2.w, l(3072)
  bfi r2.w, l(3), l(7), r1.w, r2.w
  ishr r2.w, r2.w, l(6)
  iadd r0.x, r0.x, r3.z
  bfi r3.x, l(1), l(1), r0.x, l(0)
  iadd r3.x, r3.x, r3.w
  bfi r3.x, l(2), l(1), r3.x, l(0)
  bfi r0.x, l(1), l(0), r0.x, r3.x
  and r3.x, r2.w, l(48)
  bfi r3.yz, l(0, 21, 21, 0), l(0, 9, 12, 0), r2.yyyy, l(0, 0, 0, 0)
  imad r3.xy, r3.xxxx, l(2, 16, 0, 0), r3.yzyy
  bfi r2.yw, l(0, 4, 0, 4), l(0, 0, 0, 3), r2.wwww, r3.xxxy
  bfi r2.xy, l(2, 2, 0, 0), l(7, 10, 0, 0), r2.xxxx, r2.ywyy
  ubfe r2.w, l(3), l(6), r2.x
  and r3.x, r0.x, l(6)
  bfi r0.x, l(1), l(8), r0.x, l(0)
  imad r0.x, r2.w, l(32), r0.x
  imad r0.x, r3.x, l(4), r0.x
  bfi r2.xy, l(1, 1, 0, 0), l(4, 7, 0, 0), r1.zzzz, r2.xyxx
  bfi r0.x, l(9), l(3), r0.x, r2.y
  bfi r0.x, l(6), l(0), r2.x, r0.x
else 
  ishr r3.xyzw, r1.xyzw, l(5, 5, 2, 3)
  iadd r1.x, r2.z, l(31)
  ushr r1.x, r1.x, l(5)
  imad r1.x, r3.y, r1.x, r3.x
  ishl r2.xy, r1.zzzz, l(3, 7, 0, 0)
  and r2.xy, r2.xyxx, l(112, 2048, 0, 0)
  bfi r1.y, l(3), l(1), r1.w, r2.x
  ishl r2.x, r2.x, l(1)
  bfi r1.w, l(3), l(2), r1.w, r2.x
  and r1.w, r1.w, l(224)
  bfi r2.x, l(24), l(8), r1.x, r1.w
  bfi r2.x, l(4), l(0), r1.y, r2.x
  bfi r2.x, l(1), l(4), r1.z, r2.x
  ishl r2.zw, r1.wwww, l(0, 0, 3, 2)
  bfi r1.xw, l(24, 0, 0, 24), l(11, 0, 0, 10), r1.xxxx, r2.zzzw
  bfi r1.xy, l(4, 4, 0, 0), l(3, 2, 0, 0), r1.yyyy, r1.xwxx
  bfi r1.xy, l(1, 1, 0, 0), l(7, 6, 0, 0), r1.zzzz, r1.xyxx
  bfi r1.x, l(12), l(0), r2.y, r1.x
  and r1.y, r1.y, l(1792)
  iadd r1.x, r1.x, r1.y
  and r1.y, r3.z, l(2)
  iadd r1.y, r3.w, r1.y
  bfi r1.y, l(2), l(6), r1.y, l(0)
  iadd r1.x, r1.x, r1.y
  bfi r0.x, l(6), l(0), r2.x, r1.x
endif 
ushr r0.x, r0.x, l(1)
ieq r0.z, r0.z, l(1)
if_nz r0.z
  ishl r1.xy, r0.ywyy, l(8, 8, 0, 0)
  ushr r1.zw, r0.yyyw, l(0, 0, 8, 8)
  and r1.xyzw, r1.xyzw, l(0xff00ff00, 0xff00ff00, 0x00ff00ff, 0x00ff00ff)
  iadd r0.yw, r1.zzzw, r1.xxxy
endif 
store_uav_typed U0[0].xyzw, r0.xxxx, r0.ywyy
ret 
// Approximately 1220 instruction slots used
