//
// 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
//   uint xe_resolve_dest_base;         // Offset:   16 Size:     4
//
// }
//
//
// Resource Bindings:
//
// Name                                 Type  Format         Dim      ID      HLSL Bind  Count
// ------------------------------ ---------- ------- ----------- ------- -------------- ------
// xe_resolve_source                 texture    byte         r/o      T0             t0      1 
// xe_resolve_dest                       UAV   uint4         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][2], immediateIndexed, space=0
dcl_resource_raw T0[0:0], space=0
dcl_uav_typed_buffer (uint,uint,uint,uint) U0[0:0], space=0
dcl_input vThreadID.xy
dcl_temps 23
dcl_thread_group 8, 8, 1
ishl r0.xw, vThreadID.xxxx, l(2, 0, 0, 2)
ushr r1.x, CB0[0][0].y, l(7)
bfi r1.x, l(11), l(3), r1.x, l(0)
uge r1.x, r0.w, r1.x
if_nz r1.x
  ret 
endif 
ushr r1.xy, CB0[0][0].yyyy, l(5, 29, 0, 0)
mov r1.z, CB0[0][0].y
bfi r2.xy, l(5, 2, 0, 0), l(3, 3, 0, 0), r1.zxzz, l(0, 0, 0, 0)
mov r0.yz, vThreadID.yyyy
iadd r2.xy, r0.wzww, r2.xyxx
and r3.xyzw, CB0[0][0].xzwz, l(1023, 0x01000000, 0x00003fff, 8)
ubfe r4.xyzw, l(12, 2, 1, 4), l(13, 10, 29, 25), CB0[0][0].xxxx
uge r1.w, l(3), r1.y
if_nz r1.w
  mov r5.y, r1.y
else 
  ieq r1.w, r1.y, l(5)
  if_nz r1.w
    mov r5.y, l(2)
  else 
    mov r5.y, l(0)
  endif 
endif 
uge r2.zw, r4.yyyy, l(0, 0, 2, 1)
and r2.zw, r2.zzzw, l(0, 0, 1, 1)
ishl r2.xy, r2.xyxx, r2.zwzz
ushr r5.x, r5.y, l(1)
and r5.xy, r5.xyxx, l(1, 1, 0, 0)
iadd r2.xy, r2.xyxx, r5.xyxx
udiv r1.w, null, r2.x, l(80)
ushr r2.w, r2.y, l(4)
movc r4.y, r4.z, l(1), l(0)
ishl r5.x, r1.w, r4.y
imad r5.x, r2.w, r3.x, r5.x
iadd r4.x, r4.x, r5.x
ineg r5.x, r1.w
ineg r5.y, r2.w
imad r2.xy, r5.xyxx, l(80, 16, 0, 0), r2.xyxx
imad r1.w, r2.y, l(80), r2.x
ishl r1.w, r1.w, r4.y
imad r1.w, r4.x, l(1280), r1.w
iadd r2.x, r2.z, r4.z
ishl r2.y, l(4), r2.x
ishl r1.w, r1.w, l(2)
if_nz r4.z
  ieq r2.z, r2.y, l(8)
  if_nz r2.z
    ld_raw r5.xyzw, r1.w, T0[0].zwxy
    iadd r2.z, r1.w, l(16)
    ld_raw r6.xyzw, r2.z, T0[0].zwxy
    mov r7.xy, r5.zwzz
    mov r8.xy, r6.zwzz
  else 
    ld_raw r7.xy, r1.w, T0[0].xyxx
    iadd r2.z, r2.y, r1.w
    ld_raw r5.xy, r2.z, T0[0].xyxx
    ishl r2.zw, l(0, 0, 8, 12), r2.xxxx
    iadd r2.zw, r1.wwww, r2.zzzw
    ld_raw r8.xy, r2.z, T0[0].xyxx
    ld_raw r6.xy, r2.w, T0[0].xyxx
  endif 
  switch r4.w
    case l(5)
    ishl r7.zw, r7.xxxy, l(0, 0, 16, 16)
    ishr r9.xyzw, r7.zxwy, 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)
    ishl r5.zw, r5.xxxy, l(0, 0, 16, 16)
    ishr r9.xyzw, r5.zxwy, 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)
    ishl r8.zw, r8.xxxy, l(0, 0, 16, 16)
    ishr r9.xyzw, r8.zxwy, 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 r8.xyzw, r9.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
    ishl r6.zw, r6.xxxy, l(0, 0, 16, 16)
    ishr r9.xyzw, r6.zxwy, 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 r6.xyzw, r9.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
    break 
    case l(7)
    ushr r2.zw, r7.xxxy, l(0, 0, 16, 16)
    f16tof32 r7.xz, r7.xxyx
    f16tof32 r7.yw, r2.zzzw
    ushr r2.zw, r5.xxxy, l(0, 0, 16, 16)
    f16tof32 r5.xz, r5.xxyx
    f16tof32 r5.yw, r2.zzzw
    ushr r2.zw, r8.xxxy, l(0, 0, 16, 16)
    f16tof32 r8.xz, r8.xxyx
    f16tof32 r8.yw, r2.zzzw
    ushr r2.zw, r6.xxxy, l(0, 0, 16, 16)
    f16tof32 r6.xz, r6.xxyx
    f16tof32 r6.yw, r2.zzzw
    break 
    default 
    mov r7.zw, l(0,0,0,0)
    mov r5.zw, l(0,0,0,0)
    mov r8.zw, l(0,0,0,0)
    mov r6.zw, l(0,0,0,0)
    break 
  endswitch 
else 
  ieq r2.z, r2.y, l(4)
  if_nz r2.z
    ld_raw r6.xyzw, r1.w, T0[0].wxyz
  else 
    ld_raw r6.y, r1.w, T0[0].xxxx
    iadd r2.z, r2.y, r1.w
    ld_raw r6.z, r2.z, T0[0].xxxx
    ishl r2.zw, l(0, 0, 8, 12), r2.xxxx
    iadd r2.zw, r1.wwww, r2.zzzw
    ld_raw r6.w, r2.z, T0[0].xxxx
    ld_raw r6.x, r2.w, T0[0].xxxx
  endif 
  switch r4.w
    case l(0)
    case l(1)
    ushr r9.yzw, r6.yyyy, l(0, 8, 16, 24)
    mov r9.x, r6.y
    and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r9.xyzw, r9.xyzw
    mul r7.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r9.yzw, r6.zzzz, l(0, 8, 16, 24)
    mov r9.x, r6.z
    and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r9.xyzw, r9.xyzw
    mul r5.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r9.yzw, r6.wwww, l(0, 8, 16, 24)
    mov r9.x, r6.w
    and r9.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r9.xyzw, r9.xyzw
    mul r8.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r6.yzw, r6.xxxx, l(0, 8, 16, 24)
    and r9.xyzw, r6.xyzw, l(255, 255, 255, 255)
    utof r9.xyzw, r9.xyzw
    mul r6.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r9.yzw, r6.yyyy, l(0, 10, 20, 30)
    mov r9.x, r6.y
    and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r9.xyzw, r9.xyzw
    mul r7.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r9.yzw, r6.zzzz, l(0, 10, 20, 30)
    mov r9.x, r6.z
    and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r9.xyzw, r9.xyzw
    mul r5.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r9.yzw, r6.wwww, l(0, 10, 20, 30)
    mov r9.x, r6.w
    and r9.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r9.xyzw, r9.xyzw
    mul r8.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
    and r9.xyzw, r6.xyzw, l(1023, 1023, 1023, 3)
    utof r9.xyzw, r9.xyzw
    mul r6.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r9.xyzw, r6.yyyz, l(10, 20, 30, 30)
    mov r10.x, r6.y
    mov r10.yz, r9.xxyx
    and r11.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
    and r12.xyz, r10.xyzx, l(127, 127, 127, 0)
    ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.xyzx
    firstbit_hi r14.xyz, r12.xyzx
    iadd r14.xyz, r14.xyzx, l(-24, -24, -24, 0)
    movc r14.xyz, r12.xyzx, r14.xyzx, l(8,8,8,0)
    iadd r15.xyz, -r14.xyzx, l(1, 1, 1, 0)
    movc r15.xyz, r13.xyzx, r13.xyzx, r15.xyzx
    bfi r10.xyz, l(7, 7, 7, 0), r14.xyzx, r10.xyzx, l(0, 0, 0, 0)
    and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
    movc r10.xyz, r13.xyzx, r12.xyzx, r10.xyzx
    ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
    iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
    iadd r10.xyz, r12.xyzx, r10.xyzx
    movc r7.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
    utof r2.zw, r9.zzzw
    ushr r9.xyzw, r6.zwwz, l(10, 10, 20, 20)
    mov r10.x, r6.z
    mov r10.yz, r9.xxwx
    and r11.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
    and r12.xyz, r10.xyzx, l(127, 127, 127, 0)
    ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.xyzx
    firstbit_hi r14.xyz, r12.xyzx
    iadd r14.xyz, r14.xyzx, l(-24, -24, -24, 0)
    movc r14.xyz, r12.xyzx, r14.xyzx, l(8,8,8,0)
    iadd r15.xyz, -r14.xyzx, l(1, 1, 1, 0)
    movc r15.xyz, r13.xyzx, r13.xyzx, r15.xyzx
    bfi r10.xyz, l(7, 7, 7, 0), r14.xyzx, r10.xyzx, l(0, 0, 0, 0)
    and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
    movc r10.xyz, r13.xyzx, r12.xyzx, r10.xyzx
    ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
    iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
    iadd r10.xyz, r12.xyzx, r10.xyzx
    movc r5.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
    mul r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r9.x, r6.w
    and r10.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
    and r11.xyz, r9.xyzx, l(127, 127, 127, 0)
    ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
    firstbit_hi r13.xyz, r11.xyzx
    iadd r13.xyz, r13.xyzx, l(-24, -24, -24, 0)
    movc r13.xyz, r11.xyzx, r13.xyzx, l(8,8,8,0)
    iadd r14.xyz, -r13.xyzx, l(1, 1, 1, 0)
    movc r14.xyz, r12.xyzx, r12.xyzx, r14.xyzx
    bfi r9.xyz, l(7, 7, 7, 0), r13.xyzx, r9.xyzx, l(0, 0, 0, 0)
    and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
    movc r9.xyz, r12.xyzx, r11.xyzx, r9.xyzx
    ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
    iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
    iadd r9.xyz, r11.xyzx, r9.xyzx
    movc r8.xyz, r10.xyzx, r9.xyzx, l(0,0,0,0)
    ushr r9.xyzw, r6.wxxx, l(30, 10, 20, 30)
    utof r4.xy, r9.xwxx
    mov r9.x, r6.x
    and r10.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
    and r11.xyz, r9.xyzx, l(127, 127, 127, 0)
    ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
    firstbit_hi r13.xyz, r11.xyzx
    iadd r13.xyz, r13.xyzx, l(-24, -24, -24, 0)
    movc r13.xyz, r11.xyzx, r13.xyzx, l(8,8,8,0)
    iadd r14.xyz, -r13.xyzx, l(1, 1, 1, 0)
    movc r14.xyz, r12.xyzx, r12.xyzx, r14.xyzx
    bfi r9.xyz, l(7, 7, 7, 0), r13.xyzx, r9.xyzx, l(0, 0, 0, 0)
    and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
    movc r9.xyz, r12.xyzx, r11.xyzx, r9.xyzx
    ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
    iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
    iadd r9.xyz, r11.xyzx, r9.xyzx
    movc r6.xyz, r10.xyzx, r9.xyzx, l(0,0,0,0)
    mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r7.w, r2.z
    mov r5.w, r2.w
    mov r8.w, r4.x
    mov r6.w, r4.y
    break 
    case l(4)
    ishl r9.xyzw, r6.yzwx, l(16, 16, 16, 16)
    mov r10.xz, r9.xxyx
    mov r10.yw, r6.yyyz
    ishr r10.xyzw, r10.xyzw, l(16, 16, 16, 16)
    itof r10.xyzw, r10.xyzw
    mul r10.xyzw, r10.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r7.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r5.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r6.yz, r9.zzwz
    ishr r9.xyzw, r6.ywzx, 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 r8.xy, r9.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r6.xy, r9.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r7.zw, l(0,0,0,0)
    mov r5.zw, l(0,0,0,0)
    mov r8.zw, l(0,0,0,0)
    mov r6.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r9.xyzw, r6.yzwx, l(16, 16, 16, 16)
    f16tof32 r7.x, r6.y
    f16tof32 r7.y, r9.x
    f16tof32 r5.x, r6.z
    f16tof32 r5.y, r9.y
    f16tof32 r8.x, r6.w
    f16tof32 r8.y, r9.z
    f16tof32 r6.x, r6.x
    f16tof32 r6.y, r9.w
    mov r7.zw, l(0,0,0,0)
    mov r5.zw, l(0,0,0,0)
    mov r8.zw, l(0,0,0,0)
    mov r6.zw, l(0,0,0,0)
    break 
    default 
    mov r7.x, r6.y
    mov r7.yzw, l(0,0,0,0)
    mov r5.x, r6.z
    mov r5.yzw, l(0,0,0,0)
    mov r8.x, r6.w
    mov r8.yzw, l(0,0,0,0)
    mov r6.yzw, l(0,0,0,0)
    break 
  endswitch 
endif 
ibfe r2.z, l(6), l(16), CB0[0][0].z
ishl r2.z, r2.z, l(23)
iadd r2.z, r2.z, l(0x3f800000)
uge r2.w, r1.y, l(4)
if_nz r2.w
  mul r2.w, r2.z, l(0.500000)
  ishl r4.x, l(320), r4.z
  iadd r4.x, r1.w, r4.x
  if_nz r4.z
    ieq r4.y, r2.y, l(8)
    if_nz r4.y
      ld_raw r9.xyzw, r4.x, T0[0].zwxy
      iadd r4.y, r4.x, l(16)
      ld_raw r10.xyzw, r4.y, T0[0].zwxy
      mov r11.xy, r9.zwzz
      mov r13.xy, r10.zwzz
    else 
      ld_raw r11.xy, r4.x, T0[0].xyxx
      iadd r4.y, r2.y, r4.x
      ld_raw r9.xy, r4.y, T0[0].xyxx
      ishl r12.xy, l(8, 12, 0, 0), r2.xxxx
      iadd r12.xy, r4.xxxx, r12.xyxx
      ld_raw r13.xy, r12.x, T0[0].xyxx
      ld_raw r10.xy, r12.y, T0[0].xyxx
    endif 
    switch r4.w
      case l(5)
      ishl r11.zw, r11.xxxy, l(0, 0, 16, 16)
      ishr r12.xyzw, r11.zxwy, 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 r11.xyzw, r12.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      ishl r9.zw, r9.xxxy, l(0, 0, 16, 16)
      ishr r12.xyzw, r9.zxwy, 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.xyzw, r12.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      ishl r13.zw, r13.xxxy, l(0, 0, 16, 16)
      ishr r12.xyzw, r13.zxwy, 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 r13.xyzw, r12.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
      ishl r10.zw, r10.xxxy, l(0, 0, 16, 16)
      ishr r12.xyzw, r10.zxwy, 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)
      break 
      case l(7)
      ushr r12.xy, r11.xyxx, l(16, 16, 0, 0)
      f16tof32 r11.xz, r11.xxyx
      f16tof32 r11.yw, r12.xxxy
      ushr r12.xy, r9.xyxx, l(16, 16, 0, 0)
      f16tof32 r9.xz, r9.xxyx
      f16tof32 r9.yw, r12.xxxy
      ushr r12.xy, r13.xyxx, l(16, 16, 0, 0)
      f16tof32 r13.xz, r13.xxyx
      f16tof32 r13.yw, r12.xxxy
      ushr r12.xy, r10.xyxx, l(16, 16, 0, 0)
      f16tof32 r10.xz, r10.xxyx
      f16tof32 r10.yw, r12.xxxy
      break 
      default 
      mov r11.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
    endswitch 
  else 
    ieq r4.y, r2.y, l(4)
    if_nz r4.y
      ld_raw r10.xyzw, r4.x, T0[0].wxyz
    else 
      ld_raw r10.y, r4.x, T0[0].xxxx
      iadd r4.y, r2.y, r4.x
      ld_raw r10.z, r4.y, T0[0].xxxx
      ishl r12.xy, l(8, 12, 0, 0), r2.xxxx
      iadd r4.xy, r4.xxxx, r12.xyxx
      ld_raw r10.w, r4.x, T0[0].xxxx
      ld_raw r10.x, r4.y, T0[0].xxxx
    endif 
    switch r4.w
      case l(0)
      case l(1)
      ushr r12.yzw, r10.yyyy, l(0, 8, 16, 24)
      mov r12.x, r10.y
      and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
      utof r12.xyzw, r12.xyzw
      mul r11.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r12.yzw, r10.zzzz, l(0, 8, 16, 24)
      mov r12.x, r10.z
      and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
      utof r12.xyzw, r12.xyzw
      mul r9.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r12.yzw, r10.wwww, l(0, 8, 16, 24)
      mov r12.x, r10.w
      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 r10.yzw, r10.xxxx, l(0, 8, 16, 24)
      and r12.xyzw, r10.xyzw, l(255, 255, 255, 255)
      utof r12.xyzw, r12.xyzw
      mul r10.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r12.yzw, r10.yyyy, l(0, 10, 20, 30)
      mov r12.x, r10.y
      and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
      utof r12.xyzw, r12.xyzw
      mul r11.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r12.yzw, r10.zzzz, l(0, 10, 20, 30)
      mov r12.x, r10.z
      and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
      utof r12.xyzw, r12.xyzw
      mul r9.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r12.yzw, r10.wwww, l(0, 10, 20, 30)
      mov r12.x, r10.w
      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 r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r12.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
      utof r12.xyzw, r12.xyzw
      mul r10.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r12.xyzw, r10.yyyz, l(10, 20, 30, 30)
      mov r14.x, r10.y
      mov r14.yz, r12.xxyx
      and r15.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r16.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
      firstbit_hi r18.xyz, r16.xyzx
      iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
      movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
      iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
      movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
      bfi r14.xyz, l(7, 7, 7, 0), r18.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
      iadd r14.xyz, r16.xyzx, r14.xyzx
      movc r11.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
      utof r4.xy, r12.zwzz
      ushr r12.xyzw, r10.zwwz, l(10, 10, 20, 20)
      mov r14.x, r10.z
      mov r14.yz, r12.xxwx
      and r15.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r16.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
      firstbit_hi r18.xyz, r16.xyzx
      iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
      movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
      iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
      movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
      bfi r14.xyz, l(7, 7, 7, 0), r18.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
      iadd r14.xyz, r16.xyzx, r14.xyzx
      movc r9.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
      mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r12.x, r10.w
      and r14.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r12.xyz, l(7, 7, 7, 0), r17.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
      movc r12.xyz, r16.xyzx, r15.xyzx, r12.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
      iadd r12.xyz, r15.xyzx, r12.xyzx
      movc r13.xyz, r14.xyzx, r12.xyzx, l(0,0,0,0)
      ushr r12.xyzw, r10.wxxx, l(30, 10, 20, 30)
      utof r14.xy, r12.xwxx
      mov r12.x, r10.x
      and r15.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r16.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.xyzx
      firstbit_hi r18.xyz, r16.xyzx
      iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
      movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
      iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
      movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
      bfi r12.xyz, l(7, 7, 7, 0), r18.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
      movc r12.xyz, r17.xyzx, r16.xyzx, r12.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
      iadd r12.xyz, r16.xyzx, r12.xyzx
      movc r10.xyz, r15.xyzx, r12.xyzx, l(0,0,0,0)
      mul r12.xy, r14.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r11.w, r4.x
      mov r9.w, r4.y
      mov r13.w, r12.x
      mov r10.w, r12.y
      break 
      case l(4)
      ishl r12.xyzw, r10.yzwx, l(16, 16, 16, 16)
      mov r14.xz, r12.xxyx
      mov r14.yw, r10.yyyz
      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 r11.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r9.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r10.yz, r12.zzwz
      ishr r12.xyzw, r10.ywzx, 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 r13.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 r11.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r12.xyzw, r10.yzwx, l(16, 16, 16, 16)
      f16tof32 r11.x, r10.y
      f16tof32 r11.y, r12.x
      f16tof32 r9.x, r10.z
      f16tof32 r9.y, r12.y
      f16tof32 r13.x, r10.w
      f16tof32 r13.y, r12.z
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r12.w
      mov r11.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      default 
      mov r11.x, r10.y
      mov r11.yzw, l(0,0,0,0)
      mov r9.x, r10.z
      mov r9.yzw, l(0,0,0,0)
      mov r13.x, r10.w
      mov r13.yzw, l(0,0,0,0)
      mov r10.yzw, l(0,0,0,0)
      break 
    endswitch 
  endif 
  add r7.xyzw, r7.xyzw, r11.xyzw
  add r5.xyzw, r5.xyzw, r9.xyzw
  add r8.xyzw, r8.xyzw, r13.xyzw
  add r6.xyzw, r6.xyzw, r10.xyzw
  uge r1.y, r1.y, l(6)
  if_nz r1.y
    mul r2.z, r2.z, l(0.250000)
    ishl r4.xy, l(4, 324, 0, 0), r4.zzzz
    iadd r1.yw, r1.wwww, r4.xxxy
    if_nz r4.z
      ieq r4.x, r2.y, l(8)
      if_nz r4.x
        ld_raw r9.xyzw, r1.y, T0[0].zwxy
        iadd r4.x, r1.y, l(16)
        ld_raw r10.xyzw, r4.x, T0[0].zwxy
        mov r11.xy, r9.zwzz
        mov r12.xy, r10.zwzz
      else 
        ld_raw r11.xy, r1.y, T0[0].xyxx
        iadd r4.x, r2.y, r1.y
        ld_raw r9.xy, r4.x, T0[0].xyxx
        ishl r4.xy, l(8, 12, 0, 0), r2.xxxx
        iadd r4.xy, r1.yyyy, r4.xyxx
        ld_raw r12.xy, r4.x, T0[0].xyxx
        ld_raw r10.xy, r4.y, T0[0].xyxx
      endif 
      switch r4.w
        case l(5)
        ishl r11.zw, r11.xxxy, l(0, 0, 16, 16)
        ishr r13.xyzw, r11.zxwy, 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 r9.zw, r9.xxxy, l(0, 0, 16, 16)
        ishr r13.xyzw, r9.zxwy, 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)
        ishl r12.zw, r12.xxxy, l(0, 0, 16, 16)
        ishr r13.xyzw, r12.zxwy, 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 r12.xyzw, r13.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        ishl r10.zw, r10.xxxy, l(0, 0, 16, 16)
        ishr r13.xyzw, r10.zxwy, 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.xyzw, r13.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        break 
        case l(7)
        ushr r4.xy, r11.xyxx, l(16, 16, 0, 0)
        f16tof32 r11.xz, r11.xxyx
        f16tof32 r11.yw, r4.xxxy
        ushr r4.xy, r9.xyxx, l(16, 16, 0, 0)
        f16tof32 r9.xz, r9.xxyx
        f16tof32 r9.yw, r4.xxxy
        ushr r4.xy, r12.xyxx, l(16, 16, 0, 0)
        f16tof32 r12.xz, r12.xxyx
        f16tof32 r12.yw, r4.xxxy
        ushr r4.xy, r10.xyxx, l(16, 16, 0, 0)
        f16tof32 r10.xz, r10.xxyx
        f16tof32 r10.yw, r4.xxxy
        break 
        default 
        mov r11.zw, l(0,0,0,0)
        mov r9.zw, l(0,0,0,0)
        mov r12.zw, l(0,0,0,0)
        mov r10.zw, l(0,0,0,0)
        break 
      endswitch 
    else 
      ieq r4.x, r2.y, l(4)
      if_nz r4.x
        ld_raw r10.xyzw, r1.y, T0[0].wxyz
      else 
        ld_raw r10.y, r1.y, T0[0].xxxx
        iadd r4.x, r2.y, r1.y
        ld_raw r10.z, r4.x, T0[0].xxxx
        ishl r4.xy, l(8, 12, 0, 0), r2.xxxx
        iadd r4.xy, r1.yyyy, r4.xyxx
        ld_raw r10.w, r4.x, T0[0].xxxx
        ld_raw r10.x, r4.y, T0[0].xxxx
      endif 
      switch r4.w
        case l(0)
        case l(1)
        ushr r13.yzw, r10.yyyy, l(0, 8, 16, 24)
        mov r13.x, r10.y
        and r13.xyzw, r13.xyzw, l(255, 255, 255, 255)
        utof r13.xyzw, r13.xyzw
        mul r11.xyzw, r13.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r13.yzw, r10.zzzz, l(0, 8, 16, 24)
        mov r13.x, r10.z
        and r13.xyzw, r13.xyzw, l(255, 255, 255, 255)
        utof r13.xyzw, r13.xyzw
        mul r9.xyzw, r13.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r13.yzw, r10.wwww, l(0, 8, 16, 24)
        mov r13.x, r10.w
        and r13.xyzw, r13.xyzw, l(255, 255, 255, 255)
        utof r13.xyzw, r13.xyzw
        mul r12.xyzw, r13.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
        and r13.xyzw, r10.xyzw, l(255, 255, 255, 255)
        utof r13.xyzw, r13.xyzw
        mul r10.xyzw, r13.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        break 
        case l(2)
        case l(10)
        ushr r13.yzw, r10.yyyy, l(0, 10, 20, 30)
        mov r13.x, r10.y
        and r13.xyzw, r13.xyzw, l(1023, 1023, 1023, 3)
        utof r13.xyzw, r13.xyzw
        mul r11.xyzw, r13.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r13.yzw, r10.zzzz, l(0, 10, 20, 30)
        mov r13.x, r10.z
        and r13.xyzw, r13.xyzw, l(1023, 1023, 1023, 3)
        utof r13.xyzw, r13.xyzw
        mul r9.xyzw, r13.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r13.yzw, r10.wwww, l(0, 10, 20, 30)
        mov r13.x, r10.w
        and r13.xyzw, r13.xyzw, l(1023, 1023, 1023, 3)
        utof r13.xyzw, r13.xyzw
        mul r12.xyzw, r13.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
        and r13.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
        utof r13.xyzw, r13.xyzw
        mul r10.xyzw, r13.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        break 
        case l(3)
        case l(12)
        ushr r13.xyzw, r10.yyyz, l(10, 20, 30, 30)
        mov r14.x, r10.y
        mov r14.yz, r13.xxyx
        and r15.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
        and r16.xyz, r14.xyzx, l(127, 127, 127, 0)
        ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
        firstbit_hi r18.xyz, r16.xyzx
        iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
        movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
        iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
        movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
        bfi r14.xyz, l(7, 7, 7, 0), r18.xyzx, r14.xyzx, l(0, 0, 0, 0)
        and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
        movc r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
        ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
        iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
        iadd r14.xyz, r16.xyzx, r14.xyzx
        movc r11.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
        utof r4.xy, r13.zwzz
        ushr r13.xyzw, r10.zwwz, l(10, 10, 20, 20)
        mov r14.x, r10.z
        mov r14.yz, r13.xxwx
        and r15.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
        and r16.xyz, r14.xyzx, l(127, 127, 127, 0)
        ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
        firstbit_hi r18.xyz, r16.xyzx
        iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
        movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
        iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
        movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
        bfi r14.xyz, l(7, 7, 7, 0), r18.xyzx, r14.xyzx, l(0, 0, 0, 0)
        and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
        movc r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
        ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
        iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
        iadd r14.xyz, r16.xyzx, r14.xyzx
        movc r9.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
        mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
        mov r13.x, r10.w
        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 r12.xyz, r14.xyzx, r13.xyzx, l(0,0,0,0)
        ushr r13.xyzw, r10.wxxx, l(30, 10, 20, 30)
        utof r14.xy, r13.xwxx
        mov r13.x, r10.x
        and r15.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
        and r16.xyz, r13.xyzx, l(127, 127, 127, 0)
        ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
        firstbit_hi r18.xyz, r16.xyzx
        iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
        movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
        iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
        movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
        bfi r13.xyz, l(7, 7, 7, 0), r18.xyzx, r13.xyzx, l(0, 0, 0, 0)
        and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
        movc r13.xyz, r17.xyzx, r16.xyzx, r13.xyzx
        ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
        iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
        iadd r13.xyz, r16.xyzx, r13.xyzx
        movc r10.xyz, r15.xyzx, r13.xyzx, l(0,0,0,0)
        mul r13.xy, r14.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
        mov r11.w, r4.x
        mov r9.w, r4.y
        mov r12.w, r13.x
        mov r10.w, r13.y
        break 
        case l(4)
        ishl r13.xyzw, r10.yzwx, l(16, 16, 16, 16)
        mov r14.xz, r13.xxyx
        mov r14.yw, r10.yyyz
        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 r11.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r9.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r10.yz, r13.zzwz
        ishr r13.xyzw, r10.ywzx, 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 r12.xy, r13.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r10.xy, r13.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r11.zw, l(0,0,0,0)
        mov r9.zw, l(0,0,0,0)
        mov r12.zw, l(0,0,0,0)
        mov r10.zw, l(0,0,0,0)
        break 
        case l(6)
        ushr r13.xyzw, r10.yzwx, l(16, 16, 16, 16)
        f16tof32 r11.x, r10.y
        f16tof32 r11.y, r13.x
        f16tof32 r9.x, r10.z
        f16tof32 r9.y, r13.y
        f16tof32 r12.x, r10.w
        f16tof32 r12.y, r13.z
        f16tof32 r10.x, r10.x
        f16tof32 r10.y, r13.w
        mov r11.zw, l(0,0,0,0)
        mov r9.zw, l(0,0,0,0)
        mov r12.zw, l(0,0,0,0)
        mov r10.zw, l(0,0,0,0)
        break 
        default 
        mov r11.x, r10.y
        mov r11.yzw, l(0,0,0,0)
        mov r9.x, r10.z
        mov r9.yzw, l(0,0,0,0)
        mov r12.x, r10.w
        mov r12.yzw, l(0,0,0,0)
        mov r10.yzw, l(0,0,0,0)
        break 
      endswitch 
    endif 
    add r11.xyzw, r7.xyzw, r11.xyzw
    add r9.xyzw, r5.xyzw, r9.xyzw
    add r12.xyzw, r8.xyzw, r12.xyzw
    add r10.xyzw, r6.xyzw, r10.xyzw
    if_nz r4.z
      ieq r1.y, r2.y, l(8)
      if_nz r1.y
        ld_raw r13.xyzw, r1.w, T0[0].zwxy
        iadd r1.y, r1.w, l(16)
        ld_raw r14.xyzw, r1.y, T0[0].zwxy
        mov r15.xy, r13.zwzz
        mov r16.xy, r14.zwzz
      else 
        ld_raw r15.xy, r1.w, T0[0].xyxx
        iadd r1.y, r2.y, r1.w
        ld_raw r13.xy, r1.y, T0[0].xyxx
        ishl r4.xy, l(8, 12, 0, 0), r2.xxxx
        iadd r4.xy, r1.wwww, r4.xyxx
        ld_raw r16.xy, r4.x, T0[0].xyxx
        ld_raw r14.xy, r4.y, T0[0].xyxx
      endif 
      switch r4.w
        case l(5)
        ishl r15.zw, r15.xxxy, l(0, 0, 16, 16)
        ishr r17.xyzw, r15.zxwy, 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)
        ishl r13.zw, r13.xxxy, l(0, 0, 16, 16)
        ishr r17.xyzw, r13.zxwy, 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)
        ishl r16.zw, r16.xxxy, l(0, 0, 16, 16)
        ishr r17.xyzw, r16.zxwy, 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 r16.xyzw, r17.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        ishl r14.zw, r14.xxxy, l(0, 0, 16, 16)
        ishr r17.xyzw, r14.zxwy, 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 r14.xyzw, r17.xyzw, l(-1.000000, -1.000000, -1.000000, -1.000000)
        break 
        case l(7)
        ushr r4.xy, r15.xyxx, l(16, 16, 0, 0)
        f16tof32 r15.xz, r15.xxyx
        f16tof32 r15.yw, r4.xxxy
        ushr r4.xy, r13.xyxx, l(16, 16, 0, 0)
        f16tof32 r13.xz, r13.xxyx
        f16tof32 r13.yw, r4.xxxy
        ushr r4.xy, r16.xyxx, l(16, 16, 0, 0)
        f16tof32 r16.xz, r16.xxyx
        f16tof32 r16.yw, r4.xxxy
        ushr r4.xy, r14.xyxx, l(16, 16, 0, 0)
        f16tof32 r14.xz, r14.xxyx
        f16tof32 r14.yw, r4.xxxy
        break 
        default 
        mov r15.zw, l(0,0,0,0)
        mov r13.zw, l(0,0,0,0)
        mov r16.zw, l(0,0,0,0)
        mov r14.zw, l(0,0,0,0)
        break 
      endswitch 
    else 
      ieq r1.y, r2.y, l(4)
      if_nz r1.y
        ld_raw r14.xyzw, r1.w, T0[0].wxyz
      else 
        ld_raw r14.y, r1.w, T0[0].xxxx
        iadd r1.y, r2.y, r1.w
        ld_raw r14.z, r1.y, T0[0].xxxx
        ishl r2.xy, l(8, 12, 0, 0), r2.xxxx
        iadd r1.yw, r1.wwww, r2.xxxy
        ld_raw r14.w, r1.y, T0[0].xxxx
        ld_raw r14.x, r1.w, T0[0].xxxx
      endif 
      switch r4.w
        case l(0)
        case l(1)
        ushr r4.yzw, r14.yyyy, l(0, 8, 16, 24)
        mov r4.x, r14.y
        and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
        utof r4.xyzw, r4.xyzw
        mul r15.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r4.yzw, r14.zzzz, l(0, 8, 16, 24)
        mov r4.x, r14.z
        and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
        utof r4.xyzw, r4.xyzw
        mul r13.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r4.yzw, r14.wwww, l(0, 8, 16, 24)
        mov r4.x, r14.w
        and r4.xyzw, r4.xyzw, l(255, 255, 255, 255)
        utof r4.xyzw, r4.xyzw
        mul r16.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        ushr r14.yzw, r14.xxxx, l(0, 8, 16, 24)
        and r4.xyzw, r14.xyzw, l(255, 255, 255, 255)
        utof r4.xyzw, r4.xyzw
        mul r14.xyzw, r4.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
        break 
        case l(2)
        case l(10)
        ushr r4.yzw, r14.yyyy, l(0, 10, 20, 30)
        mov r4.x, r14.y
        and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
        utof r4.xyzw, r4.xyzw
        mul r15.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r4.yzw, r14.zzzz, l(0, 10, 20, 30)
        mov r4.x, r14.z
        and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
        utof r4.xyzw, r4.xyzw
        mul r13.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r4.yzw, r14.wwww, l(0, 10, 20, 30)
        mov r4.x, r14.w
        and r4.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
        utof r4.xyzw, r4.xyzw
        mul r16.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        ushr r14.yzw, r14.xxxx, l(0, 10, 20, 30)
        and r4.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
        utof r4.xyzw, r4.xyzw
        mul r14.xyzw, r4.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
        break 
        case l(3)
        case l(12)
        ushr r4.xyzw, r14.yyyz, l(10, 20, 30, 30)
        mov r17.x, r14.y
        mov r17.yz, r4.xxyx
        and r18.xyz, r17.xyzx, l(1023, 1023, 1023, 0)
        and r19.xyz, r17.xyzx, l(127, 127, 127, 0)
        ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.xyzx
        firstbit_hi r21.xyz, r19.xyzx
        iadd r21.xyz, r21.xyzx, l(-24, -24, -24, 0)
        movc r21.xyz, r19.xyzx, r21.xyzx, l(8,8,8,0)
        iadd r22.xyz, -r21.xyzx, l(1, 1, 1, 0)
        movc r22.xyz, r20.xyzx, r20.xyzx, r22.xyzx
        bfi r17.xyz, l(7, 7, 7, 0), r21.xyzx, r17.xyzx, l(0, 0, 0, 0)
        and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
        movc r17.xyz, r20.xyzx, r19.xyzx, r17.xyzx
        ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
        iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r17.xyz, r17.xyzx, l(16, 16, 16, 0)
        iadd r17.xyz, r19.xyzx, r17.xyzx
        movc r15.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
        utof r1.yw, r4.zzzw
        ushr r4.xyzw, r14.zwwz, l(10, 10, 20, 20)
        mov r17.x, r14.z
        mov r17.yz, r4.xxwx
        and r18.xyz, r17.xyzx, l(1023, 1023, 1023, 0)
        and r19.xyz, r17.xyzx, l(127, 127, 127, 0)
        ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.xyzx
        firstbit_hi r21.xyz, r19.xyzx
        iadd r21.xyz, r21.xyzx, l(-24, -24, -24, 0)
        movc r21.xyz, r19.xyzx, r21.xyzx, l(8,8,8,0)
        iadd r22.xyz, -r21.xyzx, l(1, 1, 1, 0)
        movc r22.xyz, r20.xyzx, r20.xyzx, r22.xyzx
        bfi r17.xyz, l(7, 7, 7, 0), r21.xyzx, r17.xyzx, l(0, 0, 0, 0)
        and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
        movc r17.xyz, r20.xyzx, r19.xyzx, r17.xyzx
        ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
        iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r17.xyz, r17.xyzx, l(16, 16, 16, 0)
        iadd r17.xyz, r19.xyzx, r17.xyzx
        movc r13.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
        mul r1.yw, r1.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
        mov r4.x, r14.w
        and r17.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
        and r18.xyz, r4.xyzx, l(127, 127, 127, 0)
        ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r20.xyzx, r4.xyzx, l(0, 0, 0, 0)
        and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
        movc r4.xyz, r19.xyzx, r18.xyzx, r4.xyzx
        ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
        iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
        iadd r4.xyz, r18.xyzx, r4.xyzx
        movc r16.xyz, r17.xyzx, r4.xyzx, l(0,0,0,0)
        ushr r4.xyzw, r14.wxxx, l(30, 10, 20, 30)
        utof r2.xy, r4.xwxx
        mov r4.x, r14.x
        and r17.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
        and r18.xyz, r4.xyzx, l(127, 127, 127, 0)
        ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r20.xyzx, r4.xyzx, l(0, 0, 0, 0)
        and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
        movc r4.xyz, r19.xyzx, r18.xyzx, r4.xyzx
        ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
        iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
        ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
        iadd r4.xyz, r18.xyzx, r4.xyzx
        movc r14.xyz, r17.xyzx, r4.xyzx, l(0,0,0,0)
        mul r2.xy, r2.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
        mov r15.w, r1.y
        mov r13.w, r1.w
        mov r16.w, r2.x
        mov r14.w, r2.y
        break 
        case l(4)
        ishl r4.xyzw, r14.yzwx, l(16, 16, 16, 16)
        mov r17.xz, r4.xxyx
        mov r17.yw, r14.yyyz
        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.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r13.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r14.yz, r4.zzwz
        ishr r4.xyzw, r14.ywzx, 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 r16.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
        max r14.xy, r4.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
        mov r15.zw, l(0,0,0,0)
        mov r13.zw, l(0,0,0,0)
        mov r16.zw, l(0,0,0,0)
        mov r14.zw, l(0,0,0,0)
        break 
        case l(6)
        ushr r4.xyzw, r14.yzwx, l(16, 16, 16, 16)
        f16tof32 r15.x, r14.y
        f16tof32 r15.y, r4.x
        f16tof32 r13.x, r14.z
        f16tof32 r13.y, r4.y
        f16tof32 r16.x, r14.w
        f16tof32 r16.y, r4.z
        f16tof32 r14.x, r14.x
        f16tof32 r14.y, r4.w
        mov r15.zw, l(0,0,0,0)
        mov r13.zw, l(0,0,0,0)
        mov r16.zw, l(0,0,0,0)
        mov r14.zw, l(0,0,0,0)
        break 
        default 
        mov r15.x, r14.y
        mov r15.yzw, l(0,0,0,0)
        mov r13.x, r14.z
        mov r13.yzw, l(0,0,0,0)
        mov r16.x, r14.w
        mov r16.yzw, l(0,0,0,0)
        mov r14.yzw, l(0,0,0,0)
        break 
      endswitch 
    endif 
    add r7.xyzw, r11.xyzw, r15.xyzw
    add r5.xyzw, r9.xyzw, r13.xyzw
    add r8.xyzw, r12.xyzw, r16.xyzw
    add r6.xyzw, r10.xyzw, r14.xyzw
  else 
    mov r2.z, r2.w
  endif 
endif 
mul r4.xyzw, r2.zzzz, r7.xyzw
mul r5.xyzw, r2.zzzz, r5.xyzw
mul r7.xyzw, r2.zzzz, r8.xyzw
mul r2.xyzw, r2.zzzz, r6.xyzw
if_nz r3.y
  mov r4.xz, r4.zzxz
  mov r5.xz, r5.zzxz
  mov r7.xz, r7.zzxz
  mov r6.xz, r2.zzxz
else 
  mov r6.xz, r2.xxzx
endif 
bfi r1.xyzw, l(2, 2, 2, 2), l(3, 3, 3, 3), r1.zxxz, l(0, 0, 0, 0)
iadd r0.xyzw, r0.xyzw, r1.xyzw
if_nz r3.w
  ubfe r3.xy, l(3, 14, 0, 0), l(4, 16, 0, 0), CB0[0][0].zwzz
  iadd r1.xy, r3.yzyy, l(31, 31, 0, 0)
  ishr r8.xyzw, r0.zwzw, l(4, 5, 3, 3)
  ishr r1.z, r3.x, l(2)
  ushr r1.xy, r1.xyxx, l(4, 5, 0, 0)
  and r1.x, r1.x, l(2046)
  imad r1.x, r1.z, r1.x, r8.x
  imad r1.x, r1.x, r1.y, r8.y
  ishl r1.y, r0.z, l(10)
  and r1.y, r1.y, l(6144)
  bfi r1.y, l(3), l(8), r0.w, r1.y
  ishr r1.y, r1.y, l(6)
  iadd r1.z, r1.z, r8.z
  bfi r1.w, l(1), l(1), r1.z, l(0)
  iadd r1.w, r1.w, r8.w
  bfi r1.w, l(2), l(1), r1.w, l(0)
  bfi r1.z, l(1), l(0), r1.z, r1.w
  bfi r1.xw, l(20, 0, 0, 20), l(10, 0, 0, 13), r1.xxxx, l(0, 0, 0, 0)
  imad r1.xy, r1.yyyy, l(2, 16, 0, 0), r1.xwxx
  bfi r1.xy, l(2, 2, 0, 0), l(8, 11, 0, 0), r3.xxxx, r1.xyxx
  bfi r1.w, l(1), l(4), r0.z, l(0)
  ubfe r3.x, l(3), l(6), r1.x
  and r3.y, r1.z, l(6)
  bfi r1.z, l(1), l(8), r1.z, l(0)
  imad r1.z, r3.x, l(32), r1.z
  imad r1.z, r3.y, l(4), r1.z
  bfi r1.xy, l(5, 5, 0, 0), l(0, 3, 0, 0), r1.wwww, r1.xyxx
  bfi r1.y, l(9), l(3), r1.z, r1.y
  bfi r1.x, l(6), l(0), r1.x, r1.y
else 
  ishr r8.xyzw, r0.xyzw, l(5, 5, 2, 3)
  iadd r0.x, r3.z, l(31)
  ushr r0.x, r0.x, l(5)
  imad r0.x, r8.y, r0.x, r8.x
  ishl r1.yz, r0.zzzz, l(0, 5, 7, 0)
  and r1.yz, r1.yyzy, l(0, 448, 2048, 0)
  bfi r0.y, l(3), l(3), r0.w, r1.y
  bfi r0.y, l(23), l(9), r0.x, r0.y
  bfi r0.z, l(1), l(4), r0.z, l(0)
  iadd r0.y, r0.y, r0.z
  ishl r1.yw, r1.yyyy, l(0, 3, 0, 2)
  bfi r1.yw, l(0, 3, 0, 3), l(0, 6, 0, 5), r0.wwww, r1.yyyw
  bfi r0.xw, l(23, 0, 0, 23), l(12, 0, 0, 11), r0.xxxx, r1.yyyw
  imad r0.xz, r0.zzzz, l(8, 0, 4, 0), r0.xxwx
  bfi r0.x, l(12), l(0), r1.z, r0.x
  and r0.z, r0.z, l(1792)
  iadd r0.x, r0.x, r0.z
  and r0.z, r8.z, l(2)
  iadd r0.z, r8.w, r0.z
  bfi r0.z, l(2), l(6), r0.z, l(0)
  iadd r0.x, r0.x, r0.z
  bfi r1.x, l(6), l(0), r0.y, r0.x
endif 
iadd r0.x, r1.x, CB0[0][1].x
ushr r0.x, r0.x, l(4)
ubfe r0.y, l(6), l(7), CB0[0][0].z
switch r0.y
  case l(6)
  case l(14)
  case l(50)
  mov_sat r4.xyzw, r4.xyzw
  mad r1.xyzw, r4.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r1.xyzw, r1.xyzw
  imad r0.y, r1.y, l(256), r1.x
  imad r0.y, r1.z, l(0x00010000), r0.y
  imad r1.x, r1.w, l(0x01000000), r0.y
  mov_sat r5.xyzw, r5.xyzw
  mad r3.xyzw, r5.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 r0.y, r3.y, l(256), r3.x
  imad r0.y, r3.z, l(0x00010000), r0.y
  imad r1.y, r3.w, l(0x01000000), r0.y
  mov_sat r7.xyzw, r7.xyzw
  mad r3.xyzw, r7.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 r0.y, r3.y, l(256), r3.x
  imad r0.y, r3.z, l(0x00010000), r0.y
  imad r1.z, r3.w, l(0x01000000), r0.y
  mov r6.yw, r2.yyyw
  mov_sat r6.xyzw, r6.xyzw
  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 r0.y, r3.y, l(256), r3.x
  imad r0.y, r3.z, l(0x00010000), r0.y
  imad r1.w, r3.w, l(0x01000000), r0.y
  mov r6.xyzw, r1.wyxz
  break 
  case l(7)
  case l(54)
  mov_sat r4.xyzw, r4.xyzw
  mad r1.xyzw, r4.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r1.xyzw, r1.xyzw
  imad r0.y, r1.y, l(1024), r1.x
  imad r0.y, r1.z, l(0x00100000), r0.y
  imad r1.x, r1.w, l(0x40000000), r0.y
  mov_sat r5.xyzw, r5.xyzw
  mad r3.xyzw, r5.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r0.y, r3.y, l(1024), r3.x
  imad r0.y, r3.z, l(0x00100000), r0.y
  imad r1.y, r3.w, l(0x40000000), r0.y
  mov_sat r7.xyzw, r7.xyzw
  mad r3.xyzw, r7.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r0.y, r3.y, l(1024), r3.x
  imad r0.y, r3.z, l(0x00100000), r0.y
  imad r1.z, r3.w, l(0x40000000), r0.y
  mov_sat r2.xz, r6.xxzx
  mov_sat r2.yw, r2.yyyw
  mad r3.xyzw, r2.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r0.y, r3.y, l(1024), r3.x
  imad r0.y, r3.z, l(0x00100000), r0.y
  imad r1.w, r3.w, l(0x40000000), r0.y
  mov r6.xyzw, r1.wyxz
  break 
  case l(16)
  case l(55)
  mov_sat r4.xyz, r4.xyzx
  mad r0.yzw, r4.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(2048), r0.y
  imad r1.x, r0.w, l(0x00400000), r0.y
  mov_sat r5.xyz, r5.xyzx
  mad r0.yzw, r5.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(2048), r0.y
  imad r1.y, r0.w, l(0x00400000), r0.y
  mov_sat r7.xyz, r7.xyzx
  mad r0.yzw, r7.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(2048), r0.y
  imad r1.z, r0.w, l(0x00400000), r0.y
  mov_sat r2.xz, r6.xxzx
  mov_sat r2.y, r2.y
  mad r0.yzw, r2.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(2048), r0.y
  imad r1.w, r0.w, l(0x00400000), r0.y
  mov r6.xyzw, r1.wyxz
  break 
  case l(17)
  case l(56)
  mov_sat r4.xyz, r4.xyzx
  mad r0.yzw, r4.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(1024), r0.y
  imad r1.x, r0.w, l(0x00200000), r0.y
  mov_sat r5.xyz, r5.xyzx
  mad r0.yzw, r5.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(1024), r0.y
  imad r1.y, r0.w, l(0x00200000), r0.y
  mov_sat r7.xyz, r7.xyzx
  mad r0.yzw, r7.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(1024), r0.y
  imad r1.z, r0.w, l(0x00200000), r0.y
  mov_sat r2.xz, r6.xxzx
  mov_sat r2.y, r2.y
  mad r0.yzw, r2.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r0.yzw, r0.yyzw
  imad r0.y, r0.z, l(1024), r0.y
  imad r1.w, r0.w, l(0x00200000), r0.y
  mov r6.xyzw, r1.wyxz
  break 
  case l(25)
  mov_sat r4.xy, r4.xyxx
  mad r0.yz, r4.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r0.yz, r0.yyzy
  imad r6.z, r0.z, l(0x00010000), r0.y
  mov_sat r5.xy, r5.xyxx
  mad r0.yz, r5.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r0.yz, r0.yyzy
  imad r6.y, r0.z, l(0x00010000), r0.y
  mov_sat r7.xy, r7.xyxx
  mad r0.yz, r7.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r0.yz, r0.yyzy
  imad r6.w, r0.z, l(0x00010000), r0.y
  mov_sat r2.x, r6.x
  mov_sat r2.y, r2.y
  mad r0.yz, r2.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r0.yz, r0.yyzy
  imad r6.x, r0.z, l(0x00010000), r0.y
  break 
  case l(31)
  f32tof16 r1.x, r4.x
  f32tof16 r1.y, r5.x
  f32tof16 r1.z, r7.x
  f32tof16 r1.w, r6.x
  f32tof16 r3.x, r4.y
  f32tof16 r3.y, r5.y
  f32tof16 r3.z, r7.y
  f32tof16 r3.w, r2.y
  imad r6.xyzw, r3.wyxz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r1.wyxz
  break 
  default 
  mov r6.z, r4.x
  mov r6.y, r5.x
  mov r6.w, r7.x
  break 
endswitch 
and r0.y, CB0[0][0].z, l(7)
ieq r0.yzw, r0.yyyy, l(0, 1, 2, 3)
or r0.yz, r0.zzwz, r0.yyzy
if_nz r0.y
  ishl r1.xyzw, r6.zywx, l(8, 8, 8, 8)
  and r1.xyzw, r1.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r2.xyzw, r6.zywx, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r6.xyzw, r1.wyxz, r2.wyxz
endif 
if_nz r0.z
  ushr r1.xyzw, r6.zywx, l(16, 16, 16, 16)
  bfi r6.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r6.xyzw, r1.wyxz
endif 
store_uav_typed U0[0].xyzw, r0.xxxx, r6.zywx
ret 
// Approximately 1304 instruction slots used
