//
// 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    byte         r/o      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_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 28
dcl_thread_group 8, 8, 1
ishl r0.x, vThreadID.x, l(1)
ushr r0.z, CB0[0][0].y, l(7)
bfi r0.z, l(11), l(3), r0.z, l(0)
uge r0.z, r0.x, r0.z
if_nz r0.z
  ret 
endif 
and r1.xyzw, CB0[0][0].xzwz, l(0x40000000, 7, 0x00003fff, 8)
mov r0.y, vThreadID.y
ieq r0.zw, r0.xxxy, l(0, 0, 0, 0)
movc r0.zw, r1.xxxx, r0.zzzw, l(0,0,0,0)
ushr r2.xy, CB0[0][0].yyyy, l(5, 29, 0, 0)
mov r2.z, CB0[0][0].y
bfi r3.xyzw, l(2, 2, 2, 2), l(3, 3, 3, 3), r2.zxxz, l(0, 0, 0, 0)
iadd r3.xyzw, r0.xyyx, r3.xyzw
if_nz r1.w
  ubfe r4.xy, l(3, 14, 0, 0), l(4, 16, 0, 0), CB0[0][0].zwzz
  mov r4.z, r1.z
  iadd r1.xw, r4.yyyz, l(31, 0, 0, 31)
  ishr r5.xyzw, r3.zwzw, l(4, 5, 3, 3)
  ishr r2.w, r4.x, l(2)
  ushr r1.xw, r1.xxxw, l(4, 0, 0, 5)
  and r1.x, r1.x, l(2046)
  imad r1.x, r2.w, r1.x, r5.x
  imad r1.x, r1.x, r1.w, r5.y
  ishl r1.w, r3.z, l(10)
  and r1.w, r1.w, l(6144)
  bfi r1.w, l(3), l(8), r3.w, r1.w
  ishr r1.w, r1.w, l(6)
  iadd r2.w, r2.w, r5.z
  bfi r4.y, l(1), l(1), r2.w, l(0)
  iadd r4.y, r4.y, r5.w
  bfi r4.y, l(2), l(1), r4.y, l(0)
  bfi r2.w, l(1), l(0), r2.w, r4.y
  and r4.y, r1.w, l(112)
  bfi r4.zw, l(0, 0, 20, 20), l(0, 0, 10, 13), r1.xxxx, l(0, 0, 0, 0)
  imad r4.yz, r4.yyyy, l(0, 2, 16, 0), r4.zzwz
  bfi r1.xw, l(4, 0, 0, 4), l(0, 0, 0, 3), r1.wwww, r4.yyyz
  bfi r1.xw, l(2, 0, 0, 2), l(8, 0, 0, 11), r4.xxxx, r1.xxxw
  ubfe r4.x, l(3), l(6), r1.x
  and r4.y, r2.w, l(6)
  bfi r2.w, l(1), l(8), r2.w, l(0)
  imad r2.w, r4.x, l(32), r2.w
  imad r2.w, r4.y, l(4), r2.w
  bfi r1.xw, l(1, 0, 0, 1), l(4, 0, 0, 7), r3.zzzz, r1.xxxw
  bfi r1.w, l(9), l(3), r2.w, r1.w
  bfi r1.x, l(6), l(0), r1.x, r1.w
else 
  ishr r4.xyzw, r3.xyzw, l(5, 5, 2, 3)
  iadd r1.z, r1.z, l(31)
  ushr r1.z, r1.z, l(5)
  imad r1.z, r4.y, r1.z, r4.x
  ishl r3.xy, r3.zzzz, l(4, 7, 0, 0)
  and r3.xy, r3.xyxx, l(224, 2048, 0, 0)
  bfi r1.w, l(3), l(2), r3.w, r3.x
  ishl r2.w, r3.x, l(1)
  bfi r2.w, l(3), l(3), r3.w, r2.w
  and r2.w, r2.w, l(480)
  bfi r3.x, l(23), l(9), r1.z, r2.w
  bfi r3.x, l(4), l(0), r1.w, r3.x
  bfi r3.x, l(1), l(4), r3.z, r3.x
  ishl r4.xy, r2.wwww, l(3, 2, 0, 0)
  bfi r4.xy, l(23, 23, 0, 0), l(12, 11, 0, 0), r1.zzzz, r4.xyxx
  bfi r1.zw, l(0, 0, 4, 4), l(0, 0, 3, 2), r1.wwww, r4.xxxy
  bfi r1.zw, l(0, 0, 1, 1), l(0, 0, 7, 6), r3.zzzz, r1.zzzw
  bfi r1.z, l(12), l(0), r3.y, r1.z
  and r1.w, r1.w, l(1792)
  iadd r1.z, r1.z, r1.w
  and r1.w, r4.z, l(2)
  iadd r1.w, r4.w, r1.w
  bfi r1.w, l(2), l(6), r1.w, l(0)
  iadd r1.z, r1.z, r1.w
  bfi r1.x, l(6), l(0), r3.x, r1.z
endif 
imul null, r1.x, r1.x, l(9)
ushr r1.x, r1.x, l(3)
bfi r1.zw, l(0, 0, 5, 2), l(0, 0, 3, 3), r2.zzzx, l(0, 0, 0, 0)
iadd r0.xy, r0.xyxx, r1.zwzz
and r1.zw, CB0[0][0].xxxz, l(0, 0, 1023, 0x01000000)
ubfe r3.xyzw, l(6, 12, 2, 1), l(7, 13, 10, 29), CB0[0][0].zxxx
uge r2.x, l(3), r2.y
if_nz r2.x
  mov r4.y, r2.y
else 
  ieq r2.x, r2.y, l(5)
  if_nz r2.x
    mov r4.y, l(2)
  else 
    mov r4.y, l(0)
  endif 
endif 
uge r2.xz, r3.zzzz, l(2, 0, 1, 0)
and r2.zw, r2.xxxz, l(0, 0, 1, 1)
ishl r0.xy, r0.xyxx, r2.zwzz
ushr r4.x, r4.y, l(1)
and r2.zw, r4.xxxy, l(0, 0, 1, 1)
iadd r0.xy, r0.xyxx, r2.zwzz
udiv r2.zw, null, r0.xxxy, l(0, 0, 80, 16)
movc r3.z, r3.w, l(1), l(0)
ishl r3.w, r2.z, r3.z
imad r1.z, r2.w, r1.z, r3.w
iadd r1.z, r1.z, r3.y
imad r0.xy, -r2.zwzz, l(80, 16, 0, 0), r0.xyxx
imad r0.x, r0.y, l(80), r0.x
ishl r0.x, r0.x, r3.z
imad r0.x, r1.z, l(1280), r0.x
imul null, r0.y, r0.x, l(36)
ubfe r1.z, l(4), l(25), CB0[0][0].x
ld_raw r4.xyzw, r0.y, T0[0].wxyz
imad r2.zw, r0.xxxx, l(0, 0, 36, 36), l(0, 0, 16, 20)
ld_raw r5.x, r2.z, T0[0].xxxx
switch r1.z
  case l(0)
  case l(1)
  ushr r9.yzw, r4.yyyy, l(0, 8, 16, 24)
  mov r9.x, r4.y
  and r9.xyzw, r9.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)
  ushr r9.yzw, r4.zzzz, l(0, 8, 16, 24)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 8, 16, 24)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 8, 16, 24)
  and r9.xyzw, r4.xyzw, l(255, 255, 255, 255)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r5.yzw, r5.xxxx, l(0, 8, 16, 24)
  and r9.xyzw, r5.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)
  break 
  case l(2)
  case l(10)
  ushr r9.yzw, r4.yyyy, l(0, 10, 20, 30)
  mov r9.x, r4.y
  and r9.xyzw, r9.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)
  ushr r9.yzw, r4.zzzz, l(0, 10, 20, 30)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 10, 20, 30)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 10, 20, 30)
  and r9.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r5.yzw, r5.xxxx, l(0, 10, 20, 30)
  and r9.xyzw, r5.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)
  break 
  case l(3)
  case l(12)
  ushr r9.xyzw, r4.yyyz, l(10, 20, 30, 30)
  mov r10.x, r4.y
  mov r10.yz, r9.xxyx
  and r3.yzw, r10.xxyz, l(0, 1023, 1023, 1023)
  and r11.xyz, r10.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.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 r10.xyz, l(7, 7, 7, 0), r13.xyzx, r10.xyzx, l(0, 0, 0, 0)
  and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
  movc r10.xyz, r12.xyzx, r11.xyzx, r10.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
  iadd r10.xyz, r11.xyzx, r10.xyzx
  movc r6.xyz, r3.yzwy, r10.xyzx, l(0,0,0,0)
  utof r3.yz, r9.zzwz
  ushr r9.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r10.x, r4.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 r7.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r9.x, r4.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, r4.wxxx, l(30, 10, 20, 30)
  utof r10.xy, r9.xwxx
  mov r9.x, r4.x
  and r11.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.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 r9.xyz, l(7, 7, 7, 0), r14.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r13.xyzx, r12.xyzx, r9.xyzx
  ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r12.xyzx, r9.xyzx
  movc r4.xyz, r11.xyzx, r9.xyzx, l(0,0,0,0)
  mul r9.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  ushr r5.yzw, r5.xxxx, l(0, 10, 20, 30)
  and r10.xyz, r5.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r5.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r5.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 r13.xyz, l(7, 7, 7, 0), r13.xyzx, r5.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r12.xyzx, r11.xyzx, r13.xyzx
  ishl r12.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r11.xyz, r11.xyzx, l(16, 16, 16, 0)
  iadd r11.xyz, r12.xyzx, r11.xyzx
  movc r5.xyz, r10.xyzx, r11.xyzx, l(0,0,0,0)
  utof r0.y, r5.w
  mul r5.w, r0.y, l(0.333333)
  mov r6.w, r3.y
  mov r7.w, r3.z
  mov r8.w, r9.x
  mov r4.w, r9.y
  break 
  case l(4)
  ishl r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  mov r10.xz, r9.xxyx
  mov r10.yw, r4.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 r6.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r4.yz, r9.zzwz
  ishr r9.xyzw, r4.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 r4.xy, r9.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  ishl r5.y, r5.x, l(16)
  ishr r3.yz, r5.yyxy, l(0, 16, 16, 0)
  itof r3.yz, r3.yyzy
  mul r3.yz, r3.yyzy, l(0.000000, 0.000977, 0.000977, 0.000000)
  max r5.xy, r3.yzyy, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  mov r5.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  f16tof32 r6.x, r4.y
  f16tof32 r6.y, r9.x
  f16tof32 r7.x, r4.z
  f16tof32 r7.y, r9.y
  f16tof32 r8.x, r4.w
  f16tof32 r8.y, r9.z
  f16tof32 r4.x, r4.x
  f16tof32 r4.y, r9.w
  ushr r0.y, r5.x, l(16)
  f16tof32 r5.x, r5.x
  f16tof32 r5.y, r0.y
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  mov r5.zw, l(0,0,0,0)
  break 
  default 
  mov r6.x, r4.y
  mov r6.yzw, l(0,0,0,0)
  mov r7.x, r4.z
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r4.w
  mov r8.yzw, l(0,0,0,0)
  mov r4.yzw, l(0,0,0,0)
  mov r5.yzw, l(0,0,0,0)
  break 
endswitch 
ibfe r0.y, l(6), l(16), CB0[0][0].z
ishl r0.y, r0.y, l(23)
iadd r0.y, r0.y, l(0x3f800000)
uge r2.z, r2.y, l(4)
if_nz r2.z
  mul r3.y, r0.y, l(0.500000)
  imad r3.zw, r0.xxxx, l(0, 0, 36, 36), l(0, 0, 2880, 2896)
  ld_raw r9.xyzw, r3.z, T0[0].wxyz
  ld_raw r10.x, r3.w, T0[0].xxxx
  switch r1.z
    case l(0)
    case l(1)
    ushr r14.yzw, r9.yyyy, l(0, 8, 16, 24)
    mov r14.x, r9.y
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r11.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r9.zzzz, l(0, 8, 16, 24)
    mov r14.x, r9.z
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r9.wwww, l(0, 8, 16, 24)
    mov r14.x, r9.w
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
    and r14.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r9.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
    and r14.xyzw, r10.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r14.yzw, r9.yyyy, l(0, 10, 20, 30)
    mov r14.x, r9.y
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r11.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r9.zzzz, l(0, 10, 20, 30)
    mov r14.x, r9.z
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r9.wwww, l(0, 10, 20, 30)
    mov r14.x, r9.w
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
    and r14.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r9.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
    and r14.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r14.xyzw, r9.yyyz, l(10, 20, 30, 30)
    mov r15.x, r9.y
    mov r15.yz, r14.xxyx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r11.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    utof r3.zw, r14.zzzw
    ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r15.x, r9.z
    mov r15.yz, r14.xxwx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r14.x, r9.w
    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 r13.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r9.wxxx, l(30, 10, 20, 30)
    utof r15.xy, r14.xwxx
    mov r14.x, r9.x
    and r16.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r14.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r19.xyzx, r14.xyzx, l(0, 0, 0, 0)
    and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
    movc r14.xyz, r18.xyzx, r17.xyzx, r14.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
    iadd r14.xyz, r17.xyzx, r14.xyzx
    movc r9.xyz, r16.xyzx, r14.xyzx, l(0,0,0,0)
    mul r14.xy, r15.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
    and r15.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
    and r16.xyz, r10.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.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 r18.xyz, l(7, 7, 7, 0), r18.xyzx, r10.xyzx, l(0, 0, 0, 0)
    and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
    movc r16.xyz, r17.xyzx, r16.xyzx, r18.xyzx
    ishl r17.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r16.xyz, r16.xyzx, l(16, 16, 16, 0)
    iadd r16.xyz, r17.xyzx, r16.xyzx
    movc r10.xyz, r15.xyzx, r16.xyzx, l(0,0,0,0)
    utof r14.z, r10.w
    mul r10.w, r14.z, l(0.333333)
    mov r11.w, r3.z
    mov r12.w, r3.w
    mov r13.w, r14.x
    mov r9.w, r14.y
    break 
    case l(4)
    ishl r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
    mov r15.xz, r14.xxyx
    mov r15.yw, r9.yyyz
    ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
    itof r15.xyzw, r15.xyzw
    mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r9.yz, r14.zzwz
    ishr r14.xyzw, r9.ywzx, 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 r13.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)
    ishl r10.y, r10.x, l(16)
    ishr r3.zw, r10.yyyx, l(0, 0, 16, 16)
    itof r3.zw, r3.zzzw
    mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000977, 0.000977)
    max r10.xy, r3.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r9.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
    f16tof32 r11.x, r9.y
    f16tof32 r11.y, r14.x
    f16tof32 r12.x, r9.z
    f16tof32 r12.y, r14.y
    f16tof32 r13.x, r9.w
    f16tof32 r13.y, r14.z
    f16tof32 r9.x, r9.x
    f16tof32 r9.y, r14.w
    ushr r3.z, r10.x, l(16)
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r3.z
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r9.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    default 
    mov r11.x, r9.y
    mov r11.yzw, l(0,0,0,0)
    mov r12.x, r9.z
    mov r12.yzw, l(0,0,0,0)
    mov r13.x, r9.w
    mov r13.yzw, l(0,0,0,0)
    mov r9.yzw, l(0,0,0,0)
    mov r10.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r6.xyzw, r6.xyzw, r11.xyzw
  add r7.xyzw, r7.xyzw, r12.xyzw
  add r8.xyzw, r8.xyzw, r13.xyzw
  add r4.xyzw, r4.xyzw, r9.xyzw
  add r5.xyzw, r5.xyzw, r10.xyzw
  uge r3.z, r2.y, l(6)
  if_nz r3.z
    mul r3.y, r0.y, l(0.250000)
    imad r9.xyzw, r0.xxxx, l(36, 36, 36, 36), l(36, 52, 2916, 2932)
    ld_raw r10.xyzw, r9.x, T0[0].wxyz
    ld_raw r11.x, r9.y, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r15.yzw, r10.yyyy, l(0, 8, 16, 24)
      mov r15.x, r10.y
      and r15.xyzw, r15.xyzw, l(255, 255, 255, 255)
      utof r15.xyzw, r15.xyzw
      mul r12.xyzw, r15.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r15.yzw, r10.zzzz, l(0, 8, 16, 24)
      mov r15.x, r10.z
      and r15.xyzw, r15.xyzw, l(255, 255, 255, 255)
      utof r15.xyzw, r15.xyzw
      mul r13.xyzw, r15.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r15.yzw, r10.wwww, l(0, 8, 16, 24)
      mov r15.x, r10.w
      and r15.xyzw, r15.xyzw, l(255, 255, 255, 255)
      utof r15.xyzw, r15.xyzw
      mul r14.xyzw, r15.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
      and r15.xyzw, r10.xyzw, l(255, 255, 255, 255)
      utof r15.xyzw, r15.xyzw
      mul r10.xyzw, r15.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r11.yzw, r11.xxxx, l(0, 8, 16, 24)
      and r15.xyzw, r11.xyzw, l(255, 255, 255, 255)
      utof r15.xyzw, r15.xyzw
      mul r11.xyzw, r15.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r15.yzw, r10.yyyy, l(0, 10, 20, 30)
      mov r15.x, r10.y
      and r15.xyzw, r15.xyzw, l(1023, 1023, 1023, 3)
      utof r15.xyzw, r15.xyzw
      mul r12.xyzw, r15.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r15.yzw, r10.zzzz, l(0, 10, 20, 30)
      mov r15.x, r10.z
      and r15.xyzw, r15.xyzw, l(1023, 1023, 1023, 3)
      utof r15.xyzw, r15.xyzw
      mul r13.xyzw, r15.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r15.yzw, r10.wwww, l(0, 10, 20, 30)
      mov r15.x, r10.w
      and r15.xyzw, r15.xyzw, l(1023, 1023, 1023, 3)
      utof r15.xyzw, r15.xyzw
      mul r14.xyzw, r15.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r15.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
      utof r15.xyzw, r15.xyzw
      mul r10.xyzw, r15.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r11.yzw, r11.xxxx, l(0, 10, 20, 30)
      and r15.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
      utof r15.xyzw, r15.xyzw
      mul r11.xyzw, r15.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r15.xyzw, r10.yyyz, l(10, 20, 30, 30)
      mov r16.x, r10.y
      mov r16.yz, r15.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 r12.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
      utof r3.zw, r15.zzzw
      ushr r15.xyzw, r10.zwwz, l(10, 10, 20, 20)
      mov r16.x, r10.z
      mov r16.yz, r15.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 r13.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
      mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r15.x, r10.w
      and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r17.xyzx, r15.xyzx
      movc r14.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
      ushr r15.xyzw, r10.wxxx, l(30, 10, 20, 30)
      utof r9.xy, r15.xwxx
      mov r15.x, r10.x
      and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r17.xyzx, r15.xyzx
      movc r10.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
      mul r9.xy, r9.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      ushr r11.yzw, r11.xxxx, l(0, 10, 20, 30)
      and r15.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
      and r16.xyz, r11.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.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 r18.xyz, l(7, 7, 7, 0), r18.xyzx, r11.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r16.xyz, r17.xyzx, r16.xyzx, r18.xyzx
      ishl r17.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r16.xyz, r16.xyzx, l(16, 16, 16, 0)
      iadd r16.xyz, r17.xyzx, r16.xyzx
      movc r11.xyz, r15.xyzx, r16.xyzx, l(0,0,0,0)
      utof r15.x, r11.w
      mul r11.w, r15.x, l(0.333333)
      mov r12.w, r3.z
      mov r13.w, r3.w
      mov r14.w, r9.x
      mov r10.w, r9.y
      break 
      case l(4)
      ishl r15.xyzw, r10.yzwx, l(16, 16, 16, 16)
      mov r16.xz, r15.xxyx
      mov r16.yw, r10.yyyz
      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 r12.xy, r16.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r13.xy, r16.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r10.yz, r15.zzwz
      ishr r15.xyzw, r10.ywzx, l(16, 16, 16, 16)
      itof r15.xyzw, r15.xyzw
      mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r14.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r10.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r11.y, r11.x, l(16)
      ishr r3.zw, r11.yyyx, l(0, 0, 16, 16)
      itof r3.zw, r3.zzzw
      mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000977, 0.000977)
      max r11.xy, r3.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r15.xyzw, r10.yzwx, l(16, 16, 16, 16)
      f16tof32 r12.x, r10.y
      f16tof32 r12.y, r15.x
      f16tof32 r13.x, r10.z
      f16tof32 r13.y, r15.y
      f16tof32 r14.x, r10.w
      f16tof32 r14.y, r15.z
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r15.w
      ushr r3.z, r11.x, l(16)
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r3.z
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      break 
      default 
      mov r12.x, r10.y
      mov r12.yzw, l(0,0,0,0)
      mov r13.x, r10.z
      mov r13.yzw, l(0,0,0,0)
      mov r14.x, r10.w
      mov r14.yzw, l(0,0,0,0)
      mov r10.yzw, l(0,0,0,0)
      mov r11.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r12.xyzw, r6.xyzw, r12.xyzw
    add r13.xyzw, r7.xyzw, r13.xyzw
    add r14.xyzw, r8.xyzw, r14.xyzw
    add r10.xyzw, r4.xyzw, r10.xyzw
    add r11.xyzw, r5.xyzw, r11.xyzw
    ld_raw r15.xyzw, r9.z, T0[0].wxyz
    ld_raw r9.x, r9.w, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r19.yzw, r15.yyyy, l(0, 8, 16, 24)
      mov r19.x, r15.y
      and r19.xyzw, r19.xyzw, l(255, 255, 255, 255)
      utof r19.xyzw, r19.xyzw
      mul r16.xyzw, r19.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r19.yzw, r15.zzzz, l(0, 8, 16, 24)
      mov r19.x, r15.z
      and r19.xyzw, r19.xyzw, l(255, 255, 255, 255)
      utof r19.xyzw, r19.xyzw
      mul r17.xyzw, r19.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r19.yzw, r15.wwww, l(0, 8, 16, 24)
      mov r19.x, r15.w
      and r19.xyzw, r19.xyzw, l(255, 255, 255, 255)
      utof r19.xyzw, r19.xyzw
      mul r18.xyzw, r19.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r15.yzw, r15.xxxx, l(0, 8, 16, 24)
      and r19.xyzw, r15.xyzw, l(255, 255, 255, 255)
      utof r19.xyzw, r19.xyzw
      mul r15.xyzw, r19.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
      and r19.xyzw, r9.xyzw, l(255, 255, 255, 255)
      utof r19.xyzw, r19.xyzw
      mul r9.xyzw, r19.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r19.yzw, r15.yyyy, l(0, 10, 20, 30)
      mov r19.x, r15.y
      and r19.xyzw, r19.xyzw, l(1023, 1023, 1023, 3)
      utof r19.xyzw, r19.xyzw
      mul r16.xyzw, r19.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r19.yzw, r15.zzzz, l(0, 10, 20, 30)
      mov r19.x, r15.z
      and r19.xyzw, r19.xyzw, l(1023, 1023, 1023, 3)
      utof r19.xyzw, r19.xyzw
      mul r17.xyzw, r19.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r19.yzw, r15.wwww, l(0, 10, 20, 30)
      mov r19.x, r15.w
      and r19.xyzw, r19.xyzw, l(1023, 1023, 1023, 3)
      utof r19.xyzw, r19.xyzw
      mul r18.xyzw, r19.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r15.yzw, r15.xxxx, l(0, 10, 20, 30)
      and r19.xyzw, r15.xyzw, l(1023, 1023, 1023, 3)
      utof r19.xyzw, r19.xyzw
      mul r15.xyzw, r19.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
      and r19.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
      utof r19.xyzw, r19.xyzw
      mul r9.xyzw, r19.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r19.xyzw, r15.yyyz, l(10, 20, 30, 30)
      mov r20.x, r15.y
      mov r20.yz, r19.xxyx
      and r21.xyz, r20.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r20.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r20.xyzx
      firstbit_hi r24.xyz, r22.xyzx
      iadd r24.xyz, r24.xyzx, l(-24, -24, -24, 0)
      movc r24.xyz, r22.xyzx, r24.xyzx, l(8,8,8,0)
      iadd r25.xyz, -r24.xyzx, l(1, 1, 1, 0)
      movc r25.xyz, r23.xyzx, r23.xyzx, r25.xyzx
      bfi r20.xyz, l(7, 7, 7, 0), r24.xyzx, r20.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r20.xyz, r23.xyzx, r22.xyzx, r20.xyzx
      ishl r22.xyz, r25.xyzx, l(23, 23, 23, 0)
      iadd r22.xyz, r22.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r20.xyz, r20.xyzx, l(16, 16, 16, 0)
      iadd r20.xyz, r22.xyzx, r20.xyzx
      movc r16.xyz, r21.xyzx, r20.xyzx, l(0,0,0,0)
      utof r3.zw, r19.zzzw
      ushr r19.xyzw, r15.zwwz, l(10, 10, 20, 20)
      mov r20.x, r15.z
      mov r20.yz, r19.xxwx
      and r21.xyz, r20.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r20.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r20.xyzx
      firstbit_hi r24.xyz, r22.xyzx
      iadd r24.xyz, r24.xyzx, l(-24, -24, -24, 0)
      movc r24.xyz, r22.xyzx, r24.xyzx, l(8,8,8,0)
      iadd r25.xyz, -r24.xyzx, l(1, 1, 1, 0)
      movc r25.xyz, r23.xyzx, r23.xyzx, r25.xyzx
      bfi r20.xyz, l(7, 7, 7, 0), r24.xyzx, r20.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r20.xyz, r23.xyzx, r22.xyzx, r20.xyzx
      ishl r22.xyz, r25.xyzx, l(23, 23, 23, 0)
      iadd r22.xyz, r22.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r20.xyz, r20.xyzx, l(16, 16, 16, 0)
      iadd r20.xyz, r22.xyzx, r20.xyzx
      movc r17.xyz, r21.xyzx, r20.xyzx, l(0,0,0,0)
      mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r19.x, r15.w
      and r20.xyz, r19.xyzx, l(1023, 1023, 1023, 0)
      and r21.xyz, r19.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r19.xyzx
      firstbit_hi r23.xyz, r21.xyzx
      iadd r23.xyz, r23.xyzx, l(-24, -24, -24, 0)
      movc r23.xyz, r21.xyzx, r23.xyzx, l(8,8,8,0)
      iadd r24.xyz, -r23.xyzx, l(1, 1, 1, 0)
      movc r24.xyz, r22.xyzx, r22.xyzx, r24.xyzx
      bfi r19.xyz, l(7, 7, 7, 0), r23.xyzx, r19.xyzx, l(0, 0, 0, 0)
      and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
      movc r19.xyz, r22.xyzx, r21.xyzx, r19.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r19.xyz, r19.xyzx, l(16, 16, 16, 0)
      iadd r19.xyz, r21.xyzx, r19.xyzx
      movc r18.xyz, r20.xyzx, r19.xyzx, l(0,0,0,0)
      ushr r19.xyzw, r15.wxxx, l(30, 10, 20, 30)
      utof r20.xy, r19.xwxx
      mov r19.x, r15.x
      and r21.xyz, r19.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r19.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r19.xyzx
      firstbit_hi r24.xyz, r22.xyzx
      iadd r24.xyz, r24.xyzx, l(-24, -24, -24, 0)
      movc r24.xyz, r22.xyzx, r24.xyzx, l(8,8,8,0)
      iadd r25.xyz, -r24.xyzx, l(1, 1, 1, 0)
      movc r25.xyz, r23.xyzx, r23.xyzx, r25.xyzx
      bfi r19.xyz, l(7, 7, 7, 0), r24.xyzx, r19.xyzx, l(0, 0, 0, 0)
      and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
      movc r19.xyz, r23.xyzx, r22.xyzx, r19.xyzx
      ishl r22.xyz, r25.xyzx, l(23, 23, 23, 0)
      iadd r22.xyz, r22.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r19.xyz, r19.xyzx, l(16, 16, 16, 0)
      iadd r19.xyz, r22.xyzx, r19.xyzx
      movc r15.xyz, r21.xyzx, r19.xyzx, l(0,0,0,0)
      mul r19.xy, r20.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
      and r20.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
      and r21.xyz, r9.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
      firstbit_hi r23.xyz, r21.xyzx
      iadd r23.xyz, r23.xyzx, l(-24, -24, -24, 0)
      movc r23.xyz, r21.xyzx, r23.xyzx, l(8,8,8,0)
      iadd r24.xyz, -r23.xyzx, l(1, 1, 1, 0)
      movc r24.xyz, r22.xyzx, r22.xyzx, r24.xyzx
      bfi r23.xyz, l(7, 7, 7, 0), r23.xyzx, r9.xyzx, l(0, 0, 0, 0)
      and r23.xyz, r23.xyzx, l(127, 127, 127, 0)
      movc r21.xyz, r22.xyzx, r21.xyzx, r23.xyzx
      ishl r22.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r22.xyz, r22.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r21.xyz, r21.xyzx, l(16, 16, 16, 0)
      iadd r21.xyz, r22.xyzx, r21.xyzx
      movc r9.xyz, r20.xyzx, r21.xyzx, l(0,0,0,0)
      utof r19.z, r9.w
      mul r9.w, r19.z, l(0.333333)
      mov r16.w, r3.z
      mov r17.w, r3.w
      mov r18.w, r19.x
      mov r15.w, r19.y
      break 
      case l(4)
      ishl r19.xyzw, r15.yzwx, l(16, 16, 16, 16)
      mov r20.xz, r19.xxyx
      mov r20.yw, r15.yyyz
      ishr r20.xyzw, r20.xyzw, l(16, 16, 16, 16)
      itof r20.xyzw, r20.xyzw
      mul r20.xyzw, r20.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r16.xy, r20.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r17.xy, r20.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r15.yz, r19.zzwz
      ishr r19.xyzw, r15.ywzx, l(16, 16, 16, 16)
      itof r19.xyzw, r19.xyzw
      mul r19.xyzw, r19.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r18.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r15.xy, r19.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r9.y, r9.x, l(16)
      ishr r3.zw, r9.yyyx, l(0, 0, 16, 16)
      itof r3.zw, r3.zzzw
      mul r3.zw, r3.zzzw, l(0.000000, 0.000000, 0.000977, 0.000977)
      max r9.xy, r3.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r16.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r19.xyzw, r15.yzwx, l(16, 16, 16, 16)
      f16tof32 r16.x, r15.y
      f16tof32 r16.y, r19.x
      f16tof32 r17.x, r15.z
      f16tof32 r17.y, r19.y
      f16tof32 r18.x, r15.w
      f16tof32 r18.y, r19.z
      f16tof32 r15.x, r15.x
      f16tof32 r15.y, r19.w
      ushr r3.z, r9.x, l(16)
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r3.z
      mov r16.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      default 
      mov r16.x, r15.y
      mov r16.yzw, l(0,0,0,0)
      mov r17.x, r15.z
      mov r17.yzw, l(0,0,0,0)
      mov r18.x, r15.w
      mov r18.yzw, l(0,0,0,0)
      mov r15.yzw, l(0,0,0,0)
      mov r9.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r6.xyzw, r12.xyzw, r16.xyzw
    add r7.xyzw, r13.xyzw, r17.xyzw
    add r8.xyzw, r14.xyzw, r18.xyzw
    add r4.xyzw, r10.xyzw, r15.xyzw
    add r5.xyzw, r9.xyzw, r11.xyzw
  endif 
else 
  mov r3.y, r0.y
endif 
mul r6.xyzw, r3.yyyy, r6.xyzw
mul r7.xyzw, r3.yyyy, r7.xyzw
mul r8.xyzw, r3.yyyy, r8.xyzw
mul r4.xyzw, r3.yyyy, r4.xyzw
mul r5.xyzw, r3.yyyy, r5.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r9.xz, r4.zzxz
  mov r5.xz, r5.zzxz
else 
  mov r9.xz, r4.xxzx
endif 
switch r3.x
  case l(6)
  case l(14)
  case l(50)
  mov_sat r6.xyzw, r6.xyzw
  mad r10.xyzw, r6.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r3.y, r10.y, l(256), r10.x
  imad r3.y, r10.z, l(0x00010000), r3.y
  imad r10.x, r10.w, l(0x01000000), r3.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(256), r11.x
  imad r3.y, r11.z, l(0x00010000), r3.y
  imad r10.y, r11.w, l(0x01000000), r3.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(256), r11.x
  imad r3.y, r11.z, l(0x00010000), r3.y
  imad r10.z, r11.w, l(0x01000000), r3.y
  mov r9.yw, r4.yyyw
  mov_sat r9.xyzw, r9.xyzw
  mad r11.xyzw, r9.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(256), r11.x
  imad r3.y, r11.z, l(0x00010000), r3.y
  imad r10.w, r11.w, l(0x01000000), r3.y
  mov_sat r5.xyzw, r5.xyzw
  mad r11.xyzw, r5.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(256), r11.x
  imad r3.y, r11.z, l(0x00010000), r3.y
  imad r5.x, r11.w, l(0x01000000), r3.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(7)
  case l(54)
  mov_sat r6.xyzw, r6.xyzw
  mad r10.xyzw, r6.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r3.y, r10.y, l(1024), r10.x
  imad r3.y, r10.z, l(0x00100000), r3.y
  imad r10.x, r10.w, l(0x40000000), r3.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(1024), r11.x
  imad r3.y, r11.z, l(0x00100000), r3.y
  imad r10.y, r11.w, l(0x40000000), r3.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(1024), r11.x
  imad r3.y, r11.z, l(0x00100000), r3.y
  imad r10.z, r11.w, l(0x40000000), r3.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.yw, r4.yyyw
  mad r11.xyzw, r4.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(1024), r11.x
  imad r3.y, r11.z, l(0x00100000), r3.y
  imad r10.w, r11.w, l(0x40000000), r3.y
  mov_sat r5.xyzw, r5.xyzw
  mad r11.xyzw, r5.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(1024), r11.x
  imad r3.y, r11.z, l(0x00100000), r3.y
  imad r5.x, r11.w, l(0x40000000), r3.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(16)
  case l(55)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(2048), r3.y
  imad r10.x, r3.w, l(0x00400000), r3.y
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(2048), r3.y
  imad r10.y, r3.w, l(0x00400000), r3.y
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(2048), r3.y
  imad r10.z, r3.w, l(0x00400000), r3.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.y, r4.y
  mad r3.yzw, r4.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(2048), r3.y
  imad r10.w, r3.w, l(0x00400000), r3.y
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 2047.000000, 2047.000000, 1023.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(2048), r3.y
  imad r5.x, r3.w, l(0x00400000), r3.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(17)
  case l(56)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(1024), r3.y
  imad r10.x, r3.w, l(0x00200000), r3.y
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(1024), r3.y
  imad r10.y, r3.w, l(0x00200000), r3.y
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(1024), r3.y
  imad r10.z, r3.w, l(0x00200000), r3.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.y, r4.y
  mad r3.yzw, r4.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(1024), r3.y
  imad r10.w, r3.w, l(0x00200000), r3.y
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 1023.000000, 2047.000000, 2047.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(1024), r3.y
  imad r5.x, r3.w, l(0x00200000), r3.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(25)
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.z, r3.z, l(0x00010000), r3.y
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.y, r3.z, l(0x00010000), r3.y
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.w, r3.z, l(0x00010000), r3.y
  mov_sat r4.x, r9.x
  mov_sat r4.y, r4.y
  mad r3.yz, r4.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.x, r3.z, l(0x00010000), r3.y
  mov_sat r5.xy, r5.xyxx
  mad r3.yz, r5.xxyx, l(0.000000, 65535.000000, 65535.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r5.x, r3.z, l(0x00010000), r3.y
  break 
  case l(31)
  f32tof16 r10.x, r6.x
  f32tof16 r10.y, r7.x
  f32tof16 r10.z, r8.x
  f32tof16 r10.w, r9.x
  f32tof16 r11.x, r6.y
  f32tof16 r11.y, r7.y
  f32tof16 r11.z, r8.y
  f32tof16 r11.w, r4.y
  imad r9.xyzw, r11.wyxz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r10.wyxz
  f32tof16 r3.yz, r5.xxyx
  imad r5.x, r3.z, l(0x00010000), r3.y
  break 
  default 
  mov r9.z, r6.x
  mov r9.y, r7.x
  mov r9.w, r8.x
  break 
endswitch 
ieq r3.yzw, r1.yyyy, l(0, 1, 2, 3)
or r3.yz, r3.zzwz, r3.yyzy
if_nz r3.y
  ishl r4.xyzw, r9.zywx, l(8, 8, 8, 8)
  and r4.xyzw, r4.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r6.xyzw, r9.zywx, l(8, 8, 8, 8)
  and r6.xyzw, r6.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r9.xyzw, r4.wyxz, r6.wyxz
  ishl r1.y, r5.x, l(8)
  and r1.y, r1.y, l(0xff00ff00)
  ushr r3.w, r5.x, l(8)
  and r3.w, r3.w, l(0x00ff00ff)
  iadd r5.x, r1.y, r3.w
endif 
if_nz r3.z
  ushr r4.xyzw, r9.zywx, l(16, 16, 16, 16)
  bfi r9.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r9.xyzw, r4.wyxz
  ushr r1.y, r5.x, l(16)
  bfi r5.x, l(16), l(16), r5.x, r1.y
  mov r5.yz, r9.xxwx
else 
  mov r5.yz, r9.xxwx
endif 
if_nz r0.z
  mov r9.z, r9.y
  mov r5.y, r5.x
endif 
if_nz r0.w
  mov r9.yz, r5.xxyx
endif 
store_uav_typed U0[0].xyzw, r1.xxxx, r9.zyzz
ld_raw r4.xyzw, r2.w, T0[0].wxyz
switch r1.z
  case l(0)
  case l(1)
  ushr r9.yzw, r4.yyyy, l(0, 8, 16, 24)
  mov r9.x, r4.y
  and r9.xyzw, r9.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)
  ushr r9.yzw, r4.zzzz, l(0, 8, 16, 24)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 8, 16, 24)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 8, 16, 24)
  and r9.xyzw, r4.xyzw, l(255, 255, 255, 255)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r9.yzw, r4.yyyy, l(0, 10, 20, 30)
  mov r9.x, r4.y
  and r9.xyzw, r9.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)
  ushr r9.yzw, r4.zzzz, l(0, 10, 20, 30)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 10, 20, 30)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 10, 20, 30)
  and r9.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r9.xyzw, r4.yyyz, l(10, 20, 30, 30)
  mov r10.x, r4.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 r6.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
  utof r9.xy, r9.zwzz
  ushr r10.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r11.x, r4.z
  mov r11.yz, r10.xxwx
  and r12.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r11.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r11.xyz, l(7, 7, 7, 0), r15.xyzx, r11.xyzx, l(0, 0, 0, 0)
  and r11.xyz, r11.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r14.xyzx, r13.xyzx, r11.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r11.xyz, r11.xyzx, l(16, 16, 16, 0)
  iadd r11.xyz, r13.xyzx, r11.xyzx
  movc r7.xyz, r12.xyzx, r11.xyzx, l(0,0,0,0)
  mov r10.x, r4.w
  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 r8.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
  ushr r10.xyzw, r4.wxxx, l(30, 10, 20, 30)
  utof r9.zw, r10.xxxw
  mov r10.x, r4.x
  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 r4.xyz, r11.xyzx, r10.xyzx, l(0,0,0,0)
  mul r9.xyzw, r9.xyzw, l(0.333333, 0.333333, 0.333333, 0.333333)
  mov r6.w, r9.x
  mov r7.w, r9.y
  mov r8.w, r9.z
  mov r4.w, r9.w
  break 
  case l(4)
  ishl r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  mov r10.xz, r9.xxyx
  mov r10.yw, r4.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 r6.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r4.yz, r9.zzwz
  ishr r9.xyzw, r4.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 r4.xy, r9.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  f16tof32 r6.x, r4.y
  f16tof32 r6.y, r9.x
  f16tof32 r7.x, r4.z
  f16tof32 r7.y, r9.y
  f16tof32 r8.x, r4.w
  f16tof32 r8.y, r9.z
  f16tof32 r4.x, r4.x
  f16tof32 r4.y, r9.w
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  default 
  mov r6.x, r4.y
  mov r6.yzw, l(0,0,0,0)
  mov r7.x, r4.z
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r4.w
  mov r8.yzw, l(0,0,0,0)
  mov r4.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r1.y, r0.y, l(0.500000)
  imad r2.w, r0.x, l(36), l(2900)
  ld_raw r9.xyzw, r2.w, T0[0].wxyz
  switch r1.z
    case l(0)
    case l(1)
    ushr r13.yzw, r9.yyyy, l(0, 8, 16, 24)
    mov r13.x, r9.y
    and r13.xyzw, r13.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)
    ushr r13.yzw, r9.zzzz, l(0, 8, 16, 24)
    mov r13.x, r9.z
    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, r9.wwww, l(0, 8, 16, 24)
    mov r13.x, r9.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 r9.yzw, r9.xxxx, l(0, 8, 16, 24)
    and r13.xyzw, r9.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)
    break 
    case l(2)
    case l(10)
    ushr r13.yzw, r9.yyyy, l(0, 10, 20, 30)
    mov r13.x, r9.y
    and r13.xyzw, r13.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)
    ushr r13.yzw, r9.zzzz, l(0, 10, 20, 30)
    mov r13.x, r9.z
    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, r9.wwww, l(0, 10, 20, 30)
    mov r13.x, r9.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 r9.yzw, r9.xxxx, l(0, 10, 20, 30)
    and r13.xyzw, r9.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)
    break 
    case l(3)
    case l(12)
    ushr r13.xyzw, r9.yyyz, l(10, 20, 30, 30)
    mov r14.x, r9.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 r10.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
    utof r13.xy, r13.zwzz
    ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r15.x, r9.z
    mov r15.yz, r14.xxwx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r11.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mov r14.x, r9.w
    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 r12.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r9.wxxx, l(30, 10, 20, 30)
    utof r13.zw, r14.xxxw
    mov r14.x, r9.x
    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 r13.xyzw, r13.xyzw, l(0.333333, 0.333333, 0.333333, 0.333333)
    mov r10.w, r13.x
    mov r11.w, r13.y
    mov r12.w, r13.z
    mov r9.w, r13.w
    break 
    case l(4)
    ishl r13.xyzw, r9.yzwx, l(16, 16, 16, 16)
    mov r14.xz, r13.xxyx
    mov r14.yw, r9.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 r10.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r11.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r9.yz, r13.zzwz
    ishr r13.xyzw, r9.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 r9.xy, r13.zwzz, l(-1.000000, -1.000000, 0.000000, 0.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 r9.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r13.xyzw, r9.yzwx, l(16, 16, 16, 16)
    f16tof32 r10.x, r9.y
    f16tof32 r10.y, r13.x
    f16tof32 r11.x, r9.z
    f16tof32 r11.y, r13.y
    f16tof32 r12.x, r9.w
    f16tof32 r12.y, r13.z
    f16tof32 r9.x, r9.x
    f16tof32 r9.y, r13.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 r9.zw, l(0,0,0,0)
    break 
    default 
    mov r10.x, r9.y
    mov r10.yzw, l(0,0,0,0)
    mov r11.x, r9.z
    mov r11.yzw, l(0,0,0,0)
    mov r12.x, r9.w
    mov r12.yzw, l(0,0,0,0)
    mov r9.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r6.xyzw, r6.xyzw, r10.xyzw
  add r7.xyzw, r7.xyzw, r11.xyzw
  add r8.xyzw, r8.xyzw, r12.xyzw
  add r4.xyzw, r4.xyzw, r9.xyzw
  uge r2.w, r2.y, l(6)
  if_nz r2.w
    mul r1.y, r0.y, l(0.250000)
    imad r9.xy, r0.xxxx, l(36, 36, 0, 0), l(56, 2936, 0, 0)
    ld_raw r10.xyzw, r9.x, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r14.yzw, r10.yyyy, l(0, 8, 16, 24)
      mov r14.x, r10.y
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r11.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r10.zzzz, l(0, 8, 16, 24)
      mov r14.x, r10.z
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r10.wwww, l(0, 8, 16, 24)
      mov r14.x, r10.w
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
      and r14.xyzw, r10.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r14.yzw, r10.yyyy, l(0, 10, 20, 30)
      mov r14.x, r10.y
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r11.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r10.zzzz, l(0, 10, 20, 30)
      mov r14.x, r10.z
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r10.wwww, l(0, 10, 20, 30)
      mov r14.x, r10.w
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r14.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r14.xyzw, r10.yyyz, l(10, 20, 30, 30)
      mov r15.x, r10.y
      mov r15.yz, r14.xxyx
      and r9.xzw, r15.xxyz, l(1023, 0, 1023, 1023)
      and r16.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r18.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r17.xyzx, r16.xyzx, r15.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r16.xyzx, r15.xyzx
      movc r11.xyz, r9.xzwx, r15.xyzx, l(0,0,0,0)
      utof r9.xz, r14.zzwz
      ushr r14.xyzw, r10.zwwz, l(10, 10, 20, 20)
      mov r15.x, r10.z
      mov r15.yz, r14.xxwx
      and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r17.xyzx, r15.xyzx
      movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
      mul r9.xz, r9.xxzx, l(0.333333, 0.000000, 0.333333, 0.000000)
      mov r14.x, r10.w
      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 r13.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
      ushr r14.xyzw, r10.wxxx, l(30, 10, 20, 30)
      utof r15.xy, r14.xwxx
      mov r14.x, r10.x
      and r16.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r19.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r14.xyz, r18.xyzx, r17.xyzx, r14.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
      iadd r14.xyz, r17.xyzx, r14.xyzx
      movc r10.xyz, r16.xyzx, r14.xyzx, l(0,0,0,0)
      mul r14.xy, r15.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r11.w, r9.x
      mov r12.w, r9.z
      mov r13.w, r14.x
      mov r10.w, r14.y
      break 
      case l(4)
      ishl r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      mov r15.xz, r14.xxyx
      mov r15.yw, r10.yyyz
      ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
      itof r15.xyzw, r15.xyzw
      mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r10.yz, r14.zzwz
      ishr r14.xyzw, r10.ywzx, 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 r13.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r10.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r11.zw, l(0,0,0,0)
      mov r12.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 r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      f16tof32 r11.x, r10.y
      f16tof32 r11.y, r14.x
      f16tof32 r12.x, r10.z
      f16tof32 r12.y, r14.y
      f16tof32 r13.x, r10.w
      f16tof32 r13.y, r14.z
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r14.w
      mov r11.zw, l(0,0,0,0)
      mov r12.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 r12.x, r10.z
      mov r12.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 
    add r11.xyzw, r6.xyzw, r11.xyzw
    add r12.xyzw, r7.xyzw, r12.xyzw
    add r13.xyzw, r8.xyzw, r13.xyzw
    add r10.xyzw, r4.xyzw, r10.xyzw
    ld_raw r9.xyzw, r9.y, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r17.yzw, r9.yyyy, l(0, 8, 16, 24)
      mov r17.x, r9.y
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r9.zzzz, l(0, 8, 16, 24)
      mov r17.x, r9.z
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r9.wwww, l(0, 8, 16, 24)
      mov r17.x, r9.w
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
      and r17.xyzw, r9.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r9.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r17.yzw, r9.yyyy, l(0, 10, 20, 30)
      mov r17.x, r9.y
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r9.zzzz, l(0, 10, 20, 30)
      mov r17.x, r9.z
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r9.wwww, l(0, 10, 20, 30)
      mov r17.x, r9.w
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
      and r17.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r9.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r17.xyzw, r9.yyyz, l(10, 20, 30, 30)
      mov r18.x, r9.y
      mov r18.yz, r17.xxyx
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r14.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      utof r17.xy, r17.zwzz
      ushr r18.xyzw, r9.zwwz, l(10, 10, 20, 20)
      mov r19.x, r9.z
      mov r19.yz, r18.xxwx
      and r20.xyz, r19.xyzx, l(1023, 1023, 1023, 0)
      and r21.xyz, r19.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r19.xyzx
      firstbit_hi r23.xyz, r21.xyzx
      iadd r23.xyz, r23.xyzx, l(-24, -24, -24, 0)
      movc r23.xyz, r21.xyzx, r23.xyzx, l(8,8,8,0)
      iadd r24.xyz, -r23.xyzx, l(1, 1, 1, 0)
      movc r24.xyz, r22.xyzx, r22.xyzx, r24.xyzx
      bfi r19.xyz, l(7, 7, 7, 0), r23.xyzx, r19.xyzx, l(0, 0, 0, 0)
      and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
      movc r19.xyz, r22.xyzx, r21.xyzx, r19.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r19.xyz, r19.xyzx, l(16, 16, 16, 0)
      iadd r19.xyz, r21.xyzx, r19.xyzx
      movc r15.xyz, r20.xyzx, r19.xyzx, l(0,0,0,0)
      mov r18.x, r9.w
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r16.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      ushr r18.xyzw, r9.wxxx, l(30, 10, 20, 30)
      utof r17.zw, r18.xxxw
      mov r18.x, r9.x
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r9.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      mul r17.xyzw, r17.xyzw, l(0.333333, 0.333333, 0.333333, 0.333333)
      mov r14.w, r17.x
      mov r15.w, r17.y
      mov r16.w, r17.z
      mov r9.w, r17.w
      break 
      case l(4)
      ishl r17.xyzw, r9.yzwx, l(16, 16, 16, 16)
      mov r18.xz, r17.xxyx
      mov r18.yw, r9.yyyz
      ishr r18.xyzw, r18.xyzw, l(16, 16, 16, 16)
      itof r18.xyzw, r18.xyzw
      mul r18.xyzw, r18.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r14.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r15.xy, r18.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r9.yz, r17.zzwz
      ishr r17.xyzw, r9.ywzx, 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.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r9.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r17.xyzw, r9.yzwx, l(16, 16, 16, 16)
      f16tof32 r14.x, r9.y
      f16tof32 r14.y, r17.x
      f16tof32 r15.x, r9.z
      f16tof32 r15.y, r17.y
      f16tof32 r16.x, r9.w
      f16tof32 r16.y, r17.z
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r17.w
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      default 
      mov r14.x, r9.y
      mov r14.yzw, l(0,0,0,0)
      mov r15.x, r9.z
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r9.w
      mov r16.yzw, l(0,0,0,0)
      mov r9.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r6.xyzw, r11.xyzw, r14.xyzw
    add r7.xyzw, r12.xyzw, r15.xyzw
    add r8.xyzw, r13.xyzw, r16.xyzw
    add r4.xyzw, r9.xyzw, r10.xyzw
  endif 
else 
  mov r1.y, r0.y
endif 
mul r6.xyzw, r1.yyyy, r6.xyzw
mul r7.xyzw, r1.yyyy, r7.xyzw
mul r8.xyzw, r1.yyyy, r8.xyzw
mul r4.xyzw, r1.yyyy, r4.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r9.xz, r4.zzxz
else 
  mov r9.xz, r4.xxzx
endif 
switch r3.x
  case l(6)
  case l(14)
  case l(50)
  mov_sat r6.xyzw, r6.xyzw
  mad r10.xyzw, r6.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r1.y, r10.y, l(256), r10.x
  imad r1.y, r10.z, l(0x00010000), r1.y
  imad r10.x, r10.w, l(0x01000000), r1.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(256), r11.x
  imad r1.y, r11.z, l(0x00010000), r1.y
  imad r10.y, r11.w, l(0x01000000), r1.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(256), r11.x
  imad r1.y, r11.z, l(0x00010000), r1.y
  imad r10.z, r11.w, l(0x01000000), r1.y
  mov r9.yw, r4.yyyw
  mov_sat r9.xyzw, r9.xyzw
  mad r11.xyzw, r9.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(256), r11.x
  imad r1.y, r11.z, l(0x00010000), r1.y
  imad r10.w, r11.w, l(0x01000000), r1.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(7)
  case l(54)
  mov_sat r6.xyzw, r6.xyzw
  mad r10.xyzw, r6.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r1.y, r10.y, l(1024), r10.x
  imad r1.y, r10.z, l(0x00100000), r1.y
  imad r10.x, r10.w, l(0x40000000), r1.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(1024), r11.x
  imad r1.y, r11.z, l(0x00100000), r1.y
  imad r10.y, r11.w, l(0x40000000), r1.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(1024), r11.x
  imad r1.y, r11.z, l(0x00100000), r1.y
  imad r10.z, r11.w, l(0x40000000), r1.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.yw, r4.yyyw
  mad r11.xyzw, r4.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r1.y, r11.y, l(1024), r11.x
  imad r1.y, r11.z, l(0x00100000), r1.y
  imad r10.w, r11.w, l(0x40000000), r1.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(16)
  case l(55)
  mov_sat r6.xyz, r6.xyzx
  mad r10.xyz, r6.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r10.xyz, r10.xyzx
  imad r1.y, r10.y, l(2048), r10.x
  imad r10.x, r10.z, l(0x00400000), r1.y
  mov_sat r7.xyz, r7.xyzx
  mad r11.xyz, r7.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(2048), r11.x
  imad r10.y, r11.z, l(0x00400000), r1.y
  mov_sat r8.xyz, r8.xyzx
  mad r11.xyz, r8.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(2048), r11.x
  imad r10.z, r11.z, l(0x00400000), r1.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.y, r4.y
  mad r11.xyz, r4.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(2048), r11.x
  imad r10.w, r11.z, l(0x00400000), r1.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(17)
  case l(56)
  mov_sat r6.xyz, r6.xyzx
  mad r10.xyz, r6.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r10.xyz, r10.xyzx
  imad r1.y, r10.y, l(1024), r10.x
  imad r10.x, r10.z, l(0x00200000), r1.y
  mov_sat r7.xyz, r7.xyzx
  mad r11.xyz, r7.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(1024), r11.x
  imad r10.y, r11.z, l(0x00200000), r1.y
  mov_sat r8.xyz, r8.xyzx
  mad r11.xyz, r8.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(1024), r11.x
  imad r10.z, r11.z, l(0x00200000), r1.y
  mov_sat r4.xz, r9.xxzx
  mov_sat r4.y, r4.y
  mad r11.xyz, r4.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r11.xyz, r11.xyzx
  imad r1.y, r11.y, l(1024), r11.x
  imad r10.w, r11.z, l(0x00200000), r1.y
  mov r9.xyzw, r10.wyxz
  break 
  case l(25)
  mov_sat r6.xy, r6.xyxx
  mad r4.zw, r6.xxxy, l(0.000000, 0.000000, 65535.000000, 65535.000000), l(0.000000, 0.000000, 0.500000, 0.500000)
  ftou r4.zw, r4.zzzw
  imad r9.z, r4.w, l(0x00010000), r4.z
  mov_sat r7.xy, r7.xyxx
  mad r4.zw, r7.xxxy, l(0.000000, 0.000000, 65535.000000, 65535.000000), l(0.000000, 0.000000, 0.500000, 0.500000)
  ftou r4.zw, r4.zzzw
  imad r9.y, r4.w, l(0x00010000), r4.z
  mov_sat r8.xy, r8.xyxx
  mad r4.zw, r8.xxxy, l(0.000000, 0.000000, 65535.000000, 65535.000000), l(0.000000, 0.000000, 0.500000, 0.500000)
  ftou r4.zw, r4.zzzw
  imad r9.w, r4.w, l(0x00010000), r4.z
  mov_sat r4.x, r9.x
  mov_sat r4.y, r4.y
  mad r4.xz, r4.xxyx, l(65535.000000, 0.000000, 65535.000000, 0.000000), l(0.500000, 0.000000, 0.500000, 0.000000)
  ftou r4.xz, r4.xxzx
  imad r9.x, r4.z, l(0x00010000), r4.x
  break 
  case l(31)
  f32tof16 r10.x, r6.x
  f32tof16 r10.y, r7.x
  f32tof16 r10.z, r8.x
  f32tof16 r10.w, r9.x
  f32tof16 r11.x, r6.y
  f32tof16 r11.y, r7.y
  f32tof16 r11.z, r8.y
  f32tof16 r11.w, r4.y
  imad r9.xyzw, r11.wyxz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r10.wyxz
  break 
  default 
  mov r9.z, r6.x
  mov r9.y, r7.x
  mov r9.w, r8.x
  break 
endswitch 
if_nz r3.y
  ishl r4.xyzw, r9.zywx, l(8, 8, 8, 8)
  and r4.xyzw, r4.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r6.xyzw, r9.zywx, l(8, 8, 8, 8)
  and r6.xyzw, r6.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r9.xyzw, r4.wyxz, r6.wyxz
endif 
if_nz r3.z
  ushr r4.xyzw, r9.zywx, l(16, 16, 16, 16)
  bfi r9.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r9.xyzw, r4.wyxz
  mov r5.w, r9.z
  mov r9.xzw, r9.xxyw
else 
  mov r5.w, r9.z
  mov r9.xzw, r9.xxyw
endif 
if_nz r0.z
  mov r9.z, r9.w
endif 
if_nz r0.w
  mov r5.z, r5.w
endif 
iadd r4.xyzw, r1.xxxx, l(1, 2, 3, 4)
store_uav_typed U0[0].xyzw, r4.xxxx, r5.zyzz
store_uav_typed U0[0].xyzw, r4.yyyy, r5.xwxx
store_uav_typed U0[0].xyzw, r4.zzzz, r9.zwzz
movc r0.z, r2.x, l(72), l(36)
imad r0.x, r0.x, l(36), r0.z
ld_raw r5.xyzw, r0.x, T0[0].wxyz
iadd r2.xw, r0.xxxx, l(16, 0, 0, 20)
ld_raw r6.x, r2.x, T0[0].xxxx
switch r1.z
  case l(0)
  case l(1)
  ushr r11.yzw, r5.yyyy, l(0, 8, 16, 24)
  mov r11.x, r5.y
  and r11.xyzw, r11.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r7.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r11.yzw, r5.zzzz, l(0, 8, 16, 24)
  mov r11.x, r5.z
  and r11.xyzw, r11.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r8.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r11.yzw, r5.wwww, l(0, 8, 16, 24)
  mov r11.x, r5.w
  and r11.xyzw, r11.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r10.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r5.yzw, r5.xxxx, l(0, 8, 16, 24)
  and r11.xyzw, r5.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r5.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r6.yzw, r6.xxxx, l(0, 8, 16, 24)
  and r11.xyzw, r6.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r6.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r11.yzw, r5.yyyy, l(0, 10, 20, 30)
  mov r11.x, r5.y
  and r11.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r7.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r11.yzw, r5.zzzz, l(0, 10, 20, 30)
  mov r11.x, r5.z
  and r11.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r8.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r11.yzw, r5.wwww, l(0, 10, 20, 30)
  mov r11.x, r5.w
  and r11.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r10.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r5.yzw, r5.xxxx, l(0, 10, 20, 30)
  and r11.xyzw, r5.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r5.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r11.xyzw, r6.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r6.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r11.xyzw, r5.yyyz, l(10, 20, 30, 30)
  mov r4.x, r5.y
  mov r4.yz, r11.xxyx
  and r12.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r4.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r4.xyz, l(7, 7, 7, 0), r15.xyzx, r4.xyzx, l(0, 0, 0, 0)
  and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
  movc r4.xyz, r14.xyzx, r13.xyzx, r4.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
  iadd r4.xyz, r13.xyzx, r4.xyzx
  movc r7.xyz, r12.xyzx, r4.xyzx, l(0,0,0,0)
  utof r4.xy, r11.zwzz
  ushr r11.xyzw, r5.zwwz, l(10, 10, 20, 20)
  mov r12.x, r5.z
  mov r12.yz, r11.xxwx
  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 r8.xyz, r13.xyzx, r12.xyzx, l(0,0,0,0)
  mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  mov r11.x, r5.w
  and r12.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r11.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r11.xyz, l(7, 7, 7, 0), r15.xyzx, r11.xyzx, l(0, 0, 0, 0)
  and r11.xyz, r11.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r14.xyzx, r13.xyzx, r11.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r11.xyz, r11.xyzx, l(16, 16, 16, 0)
  iadd r11.xyz, r13.xyzx, r11.xyzx
  movc r10.xyz, r12.xyzx, r11.xyzx, l(0,0,0,0)
  ushr r11.xyzw, r5.wxxx, l(30, 10, 20, 30)
  utof r9.yw, r11.xxxw
  mov r11.x, r5.x
  and r12.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r11.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r11.xyz, l(7, 7, 7, 0), r15.xyzx, r11.xyzx, l(0, 0, 0, 0)
  and r11.xyz, r11.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r14.xyzx, r13.xyzx, r11.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r11.xyz, r11.xyzx, l(16, 16, 16, 0)
  iadd r11.xyz, r13.xyzx, r11.xyzx
  movc r5.xyz, r12.xyzx, r11.xyzx, l(0,0,0,0)
  mul r9.yw, r9.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r11.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r6.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r14.xyz, l(7, 7, 7, 0), r14.xyzx, r6.xyzx, l(0, 0, 0, 0)
  and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
  movc r12.xyz, r13.xyzx, r12.xyzx, r14.xyzx
  ishl r13.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r12.xyz, r12.xyzx, l(16, 16, 16, 0)
  iadd r12.xyz, r13.xyzx, r12.xyzx
  movc r6.xyz, r11.xyzx, r12.xyzx, l(0,0,0,0)
  utof r0.z, r6.w
  mul r6.w, r0.z, l(0.333333)
  mov r7.w, r4.x
  mov r8.w, r4.y
  mov r10.w, r9.y
  mov r5.w, r9.w
  break 
  case l(4)
  ishl r11.xyzw, r5.yzwx, l(16, 16, 16, 16)
  mov r12.xz, r11.xxyx
  mov r12.yw, r5.yyyz
  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 r7.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r8.xy, r12.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r5.yz, r11.zzwz
  ishr r11.xyzw, r5.ywzx, l(16, 16, 16, 16)
  itof r11.xyzw, r11.xyzw
  mul r11.xyzw, r11.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
  max r10.xy, r11.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r5.xy, r11.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  ishl r6.y, r6.x, l(16)
  ishr r4.xy, r6.yxyy, l(16, 16, 0, 0)
  itof r4.xy, r4.xyxx
  mul r4.xy, r4.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
  max r6.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r10.zw, l(0,0,0,0)
  mov r5.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r11.xyzw, r5.yzwx, l(16, 16, 16, 16)
  f16tof32 r7.x, r5.y
  f16tof32 r7.y, r11.x
  f16tof32 r8.x, r5.z
  f16tof32 r8.y, r11.y
  f16tof32 r10.x, r5.w
  f16tof32 r10.y, r11.z
  f16tof32 r5.x, r5.x
  f16tof32 r5.y, r11.w
  ushr r0.z, r6.x, l(16)
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r0.z
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r10.zw, l(0,0,0,0)
  mov r5.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  default 
  mov r7.x, r5.y
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r5.z
  mov r8.yzw, l(0,0,0,0)
  mov r10.x, r5.w
  mov r10.yzw, l(0,0,0,0)
  mov r5.yzw, l(0,0,0,0)
  mov r6.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r0.z, r0.y, l(0.500000)
  iadd r4.xy, r0.xxxx, l(2880, 2896, 0, 0)
  ld_raw r11.xyzw, r4.x, T0[0].wxyz
  ld_raw r12.x, r4.y, T0[0].xxxx
  switch r1.z
    case l(0)
    case l(1)
    ushr r16.yzw, r11.yyyy, l(0, 8, 16, 24)
    mov r16.x, r11.y
    and r16.xyzw, r16.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r13.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r16.yzw, r11.zzzz, l(0, 8, 16, 24)
    mov r16.x, r11.z
    and r16.xyzw, r16.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r14.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r16.yzw, r11.wwww, l(0, 8, 16, 24)
    mov r16.x, r11.w
    and r16.xyzw, r16.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r15.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r11.yzw, r11.xxxx, l(0, 8, 16, 24)
    and r16.xyzw, r11.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r11.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r12.yzw, r12.xxxx, l(0, 8, 16, 24)
    and r16.xyzw, r12.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r12.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r16.yzw, r11.yyyy, l(0, 10, 20, 30)
    mov r16.x, r11.y
    and r16.xyzw, r16.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r13.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r16.yzw, r11.zzzz, l(0, 10, 20, 30)
    mov r16.x, r11.z
    and r16.xyzw, r16.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r14.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r16.yzw, r11.wwww, l(0, 10, 20, 30)
    mov r16.x, r11.w
    and r16.xyzw, r16.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r15.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r11.yzw, r11.xxxx, l(0, 10, 20, 30)
    and r16.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r11.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r12.yzw, r12.xxxx, l(0, 10, 20, 30)
    and r16.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r12.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r16.xyzw, r11.yyyz, l(10, 20, 30, 30)
    mov r4.x, r11.y
    mov r4.yz, r16.xxyx
    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 r13.xyz, r17.xyzx, r4.xyzx, l(0,0,0,0)
    utof r4.xy, r16.zwzz
    ushr r16.xyzw, r11.zwwz, l(10, 10, 20, 20)
    mov r17.x, r11.z
    mov r17.yz, r16.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 r14.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
    mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r16.x, r11.w
    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 r15.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
    ushr r16.xyzw, r11.wxxx, l(30, 10, 20, 30)
    utof r9.yw, r16.xxxw
    mov r16.x, r11.x
    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 r11.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
    mul r9.yw, r9.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
    ushr r12.yzw, r12.xxxx, l(0, 10, 20, 30)
    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 r19.xyz, l(7, 7, 7, 0), r19.xyzx, r12.xyzx, l(0, 0, 0, 0)
    and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r18.xyzx, r17.xyzx, r19.xyzx
    ishl r18.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r17.xyz, r17.xyzx, l(16, 16, 16, 0)
    iadd r17.xyz, r18.xyzx, r17.xyzx
    movc r12.xyz, r16.xyzx, r17.xyzx, l(0,0,0,0)
    utof r1.y, r12.w
    mul r12.w, r1.y, l(0.333333)
    mov r13.w, r4.x
    mov r14.w, r4.y
    mov r15.w, r9.y
    mov r11.w, r9.w
    break 
    case l(4)
    ishl r16.xyzw, r11.yzwx, l(16, 16, 16, 16)
    mov r17.xz, r16.xxyx
    mov r17.yw, r11.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 r13.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r14.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r11.yz, r16.zzwz
    ishr r16.xyzw, r11.ywzx, 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 r15.xy, r16.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r11.xy, r16.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    ishl r12.y, r12.x, l(16)
    ishr r4.xy, r12.yxyy, l(16, 16, 0, 0)
    itof r4.xy, r4.xyxx
    mul r4.xy, r4.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
    max r12.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.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 r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r16.xyzw, r11.yzwx, l(16, 16, 16, 16)
    f16tof32 r13.x, r11.y
    f16tof32 r13.y, r16.x
    f16tof32 r14.x, r11.z
    f16tof32 r14.y, r16.y
    f16tof32 r15.x, r11.w
    f16tof32 r15.y, r16.z
    f16tof32 r11.x, r11.x
    f16tof32 r11.y, r16.w
    ushr r1.y, r12.x, l(16)
    f16tof32 r12.x, r12.x
    f16tof32 r12.y, r1.y
    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 r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    break 
    default 
    mov r13.x, r11.y
    mov r13.yzw, l(0,0,0,0)
    mov r14.x, r11.z
    mov r14.yzw, l(0,0,0,0)
    mov r15.x, r11.w
    mov r15.yzw, l(0,0,0,0)
    mov r11.yzw, l(0,0,0,0)
    mov r12.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r7.xyzw, r7.xyzw, r13.xyzw
  add r8.xyzw, r8.xyzw, r14.xyzw
  add r10.xyzw, r10.xyzw, r15.xyzw
  add r5.xyzw, r5.xyzw, r11.xyzw
  add r6.xyzw, r6.xyzw, r12.xyzw
  uge r1.y, r2.y, l(6)
  if_nz r1.y
    mul r0.z, r0.y, l(0.250000)
    iadd r11.xyzw, r0.xxxx, l(36, 52, 2916, 2932)
    ld_raw r12.xyzw, r11.x, T0[0].wxyz
    ld_raw r13.x, r11.y, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r17.yzw, r12.yyyy, l(0, 8, 16, 24)
      mov r17.x, r12.y
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r12.zzzz, l(0, 8, 16, 24)
      mov r17.x, r12.z
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r12.wwww, l(0, 8, 16, 24)
      mov r17.x, r12.w
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r12.yzw, r12.xxxx, l(0, 8, 16, 24)
      and r17.xyzw, r12.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r12.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r13.yzw, r13.xxxx, l(0, 8, 16, 24)
      and r17.xyzw, r13.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r13.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r17.yzw, r12.yyyy, l(0, 10, 20, 30)
      mov r17.x, r12.y
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r12.zzzz, l(0, 10, 20, 30)
      mov r17.x, r12.z
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r12.wwww, l(0, 10, 20, 30)
      mov r17.x, r12.w
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r12.yzw, r12.xxxx, l(0, 10, 20, 30)
      and r17.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r12.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r13.yzw, r13.xxxx, l(0, 10, 20, 30)
      and r17.xyzw, r13.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r13.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r17.xyzw, r12.yyyz, l(10, 20, 30, 30)
      mov r4.x, r12.y
      mov r4.yz, r17.xxyx
      and r18.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
      and r19.xyz, r4.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r21.xyzx, r4.xyzx, l(0, 0, 0, 0)
      and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
      movc r4.xyz, r20.xyzx, r19.xyzx, r4.xyzx
      ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
      iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
      iadd r4.xyz, r19.xyzx, r4.xyzx
      movc r14.xyz, r18.xyzx, r4.xyzx, l(0,0,0,0)
      utof r4.xy, r17.zwzz
      ushr r17.xyzw, r12.zwwz, l(10, 10, 20, 20)
      mov r18.x, r12.z
      mov r18.yz, r17.xxwx
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r15.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r17.x, r12.w
      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 r16.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      ushr r17.xyzw, r12.wxxx, l(30, 10, 20, 30)
      utof r9.yw, r17.xxxw
      mov r17.x, r12.x
      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 r12.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      mul r9.yw, r9.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      ushr r13.yzw, r13.xxxx, l(0, 10, 20, 30)
      and r17.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
      and r18.xyz, r13.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.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 r20.xyz, l(7, 7, 7, 0), r20.xyzx, r13.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r19.xyzx, r18.xyzx, r20.xyzx
      ishl r19.xyz, r21.xyzx, l(23, 23, 23, 0)
      iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r19.xyzx, r18.xyzx
      movc r13.xyz, r17.xyzx, r18.xyzx, l(0,0,0,0)
      utof r1.y, r13.w
      mul r13.w, r1.y, l(0.333333)
      mov r14.w, r4.x
      mov r15.w, r4.y
      mov r16.w, r9.y
      mov r12.w, r9.w
      break 
      case l(4)
      ishl r17.xyzw, r12.yzwx, l(16, 16, 16, 16)
      mov r18.xz, r17.xxyx
      mov r18.yw, r12.yyyz
      ishr r18.xyzw, r18.xyzw, l(16, 16, 16, 16)
      itof r18.xyzw, r18.xyzw
      mul r18.xyzw, r18.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r14.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r15.xy, r18.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r12.yz, r17.zzwz
      ishr r17.xyzw, r12.ywzx, 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.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r12.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r13.y, r13.x, l(16)
      ishr r4.xy, r13.yxyy, l(16, 16, 0, 0)
      itof r4.xy, r4.xyxx
      mul r4.xy, r4.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
      max r13.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r17.xyzw, r12.yzwx, l(16, 16, 16, 16)
      f16tof32 r14.x, r12.y
      f16tof32 r14.y, r17.x
      f16tof32 r15.x, r12.z
      f16tof32 r15.y, r17.y
      f16tof32 r16.x, r12.w
      f16tof32 r16.y, r17.z
      f16tof32 r12.x, r12.x
      f16tof32 r12.y, r17.w
      ushr r1.y, r13.x, l(16)
      f16tof32 r13.x, r13.x
      f16tof32 r13.y, r1.y
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      break 
      default 
      mov r14.x, r12.y
      mov r14.yzw, l(0,0,0,0)
      mov r15.x, r12.z
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r12.w
      mov r16.yzw, l(0,0,0,0)
      mov r12.yzw, l(0,0,0,0)
      mov r13.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r14.xyzw, r7.xyzw, r14.xyzw
    add r15.xyzw, r8.xyzw, r15.xyzw
    add r16.xyzw, r10.xyzw, r16.xyzw
    add r12.xyzw, r5.xyzw, r12.xyzw
    add r13.xyzw, r6.xyzw, r13.xyzw
    ld_raw r17.xyzw, r11.z, T0[0].wxyz
    ld_raw r11.x, r11.w, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r21.yzw, r17.yyyy, l(0, 8, 16, 24)
      mov r21.x, r17.y
      and r21.xyzw, r21.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r18.xyzw, r21.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r21.yzw, r17.zzzz, l(0, 8, 16, 24)
      mov r21.x, r17.z
      and r21.xyzw, r21.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r19.xyzw, r21.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r21.yzw, r17.wwww, l(0, 8, 16, 24)
      mov r21.x, r17.w
      and r21.xyzw, r21.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r20.xyzw, r21.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r17.xxxx, l(0, 8, 16, 24)
      and r21.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r17.xyzw, r21.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r11.yzw, r11.xxxx, l(0, 8, 16, 24)
      and r21.xyzw, r11.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r11.xyzw, r21.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r21.yzw, r17.yyyy, l(0, 10, 20, 30)
      mov r21.x, r17.y
      and r21.xyzw, r21.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r18.xyzw, r21.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r21.yzw, r17.zzzz, l(0, 10, 20, 30)
      mov r21.x, r17.z
      and r21.xyzw, r21.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r19.xyzw, r21.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r21.yzw, r17.wwww, l(0, 10, 20, 30)
      mov r21.x, r17.w
      and r21.xyzw, r21.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r20.xyzw, r21.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r17.xxxx, l(0, 10, 20, 30)
      and r21.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r17.xyzw, r21.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r11.yzw, r11.xxxx, l(0, 10, 20, 30)
      and r21.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r11.xyzw, r21.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r21.xyzw, r17.yyyz, l(10, 20, 30, 30)
      mov r4.x, r17.y
      mov r4.yz, r21.xxyx
      and r22.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
      and r23.xyz, r4.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
      firstbit_hi r25.xyz, r23.xyzx
      iadd r25.xyz, r25.xyzx, l(-24, -24, -24, 0)
      movc r25.xyz, r23.xyzx, r25.xyzx, l(8,8,8,0)
      iadd r26.xyz, -r25.xyzx, l(1, 1, 1, 0)
      movc r26.xyz, r24.xyzx, r24.xyzx, r26.xyzx
      bfi r4.xyz, l(7, 7, 7, 0), r25.xyzx, r4.xyzx, l(0, 0, 0, 0)
      and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
      movc r4.xyz, r24.xyzx, r23.xyzx, r4.xyzx
      ishl r23.xyz, r26.xyzx, l(23, 23, 23, 0)
      iadd r23.xyz, r23.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
      iadd r4.xyz, r23.xyzx, r4.xyzx
      movc r18.xyz, r22.xyzx, r4.xyzx, l(0,0,0,0)
      utof r4.xy, r21.zwzz
      ushr r21.xyzw, r17.zwwz, l(10, 10, 20, 20)
      mov r22.x, r17.z
      mov r22.yz, r21.xxwx
      and r23.xyz, r22.xyzx, l(1023, 1023, 1023, 0)
      and r24.xyz, r22.xyzx, l(127, 127, 127, 0)
      ubfe r25.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r22.xyzx
      firstbit_hi r26.xyz, r24.xyzx
      iadd r26.xyz, r26.xyzx, l(-24, -24, -24, 0)
      movc r26.xyz, r24.xyzx, r26.xyzx, l(8,8,8,0)
      iadd r27.xyz, -r26.xyzx, l(1, 1, 1, 0)
      movc r27.xyz, r25.xyzx, r25.xyzx, r27.xyzx
      bfi r22.xyz, l(7, 7, 7, 0), r26.xyzx, r22.xyzx, l(0, 0, 0, 0)
      and r22.xyz, r22.xyzx, l(127, 127, 127, 0)
      movc r22.xyz, r25.xyzx, r24.xyzx, r22.xyzx
      ishl r24.xyz, r27.xyzx, l(23, 23, 23, 0)
      iadd r24.xyz, r24.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r22.xyz, r22.xyzx, l(16, 16, 16, 0)
      iadd r22.xyz, r24.xyzx, r22.xyzx
      movc r19.xyz, r23.xyzx, r22.xyzx, l(0,0,0,0)
      mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r21.x, r17.w
      and r22.xyz, r21.xyzx, l(1023, 1023, 1023, 0)
      and r23.xyz, r21.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r21.xyzx
      firstbit_hi r25.xyz, r23.xyzx
      iadd r25.xyz, r25.xyzx, l(-24, -24, -24, 0)
      movc r25.xyz, r23.xyzx, r25.xyzx, l(8,8,8,0)
      iadd r26.xyz, -r25.xyzx, l(1, 1, 1, 0)
      movc r26.xyz, r24.xyzx, r24.xyzx, r26.xyzx
      bfi r21.xyz, l(7, 7, 7, 0), r25.xyzx, r21.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r21.xyz, r24.xyzx, r23.xyzx, r21.xyzx
      ishl r23.xyz, r26.xyzx, l(23, 23, 23, 0)
      iadd r23.xyz, r23.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r21.xyz, r21.xyzx, l(16, 16, 16, 0)
      iadd r21.xyz, r23.xyzx, r21.xyzx
      movc r20.xyz, r22.xyzx, r21.xyzx, l(0,0,0,0)
      ushr r21.xyzw, r17.wxxx, l(30, 10, 20, 30)
      utof r9.yw, r21.xxxw
      mov r21.x, r17.x
      and r22.xyz, r21.xyzx, l(1023, 1023, 1023, 0)
      and r23.xyz, r21.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r21.xyzx
      firstbit_hi r25.xyz, r23.xyzx
      iadd r25.xyz, r25.xyzx, l(-24, -24, -24, 0)
      movc r25.xyz, r23.xyzx, r25.xyzx, l(8,8,8,0)
      iadd r26.xyz, -r25.xyzx, l(1, 1, 1, 0)
      movc r26.xyz, r24.xyzx, r24.xyzx, r26.xyzx
      bfi r21.xyz, l(7, 7, 7, 0), r25.xyzx, r21.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r21.xyz, r24.xyzx, r23.xyzx, r21.xyzx
      ishl r23.xyz, r26.xyzx, l(23, 23, 23, 0)
      iadd r23.xyz, r23.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r21.xyz, r21.xyzx, l(16, 16, 16, 0)
      iadd r21.xyz, r23.xyzx, r21.xyzx
      movc r17.xyz, r22.xyzx, r21.xyzx, l(0,0,0,0)
      mul r9.yw, r9.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      ushr r11.yzw, r11.xxxx, l(0, 10, 20, 30)
      and r21.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r11.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.xyzx
      firstbit_hi r24.xyz, r22.xyzx
      iadd r24.xyz, r24.xyzx, l(-24, -24, -24, 0)
      movc r24.xyz, r22.xyzx, r24.xyzx, l(8,8,8,0)
      iadd r25.xyz, -r24.xyzx, l(1, 1, 1, 0)
      movc r25.xyz, r23.xyzx, r23.xyzx, r25.xyzx
      bfi r24.xyz, l(7, 7, 7, 0), r24.xyzx, r11.xyzx, l(0, 0, 0, 0)
      and r24.xyz, r24.xyzx, l(127, 127, 127, 0)
      movc r22.xyz, r23.xyzx, r22.xyzx, r24.xyzx
      ishl r23.xyz, r25.xyzx, l(23, 23, 23, 0)
      iadd r23.xyz, r23.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r22.xyz, r22.xyzx, l(16, 16, 16, 0)
      iadd r22.xyz, r23.xyzx, r22.xyzx
      movc r11.xyz, r21.xyzx, r22.xyzx, l(0,0,0,0)
      utof r1.y, r11.w
      mul r11.w, r1.y, l(0.333333)
      mov r18.w, r4.x
      mov r19.w, r4.y
      mov r20.w, r9.y
      mov r17.w, r9.w
      break 
      case l(4)
      ishl r21.xyzw, r17.yzwx, l(16, 16, 16, 16)
      mov r22.xz, r21.xxyx
      mov r22.yw, r17.yyyz
      ishr r22.xyzw, r22.xyzw, l(16, 16, 16, 16)
      itof r22.xyzw, r22.xyzw
      mul r22.xyzw, r22.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r18.xy, r22.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r19.xy, r22.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r17.yz, r21.zzwz
      ishr r21.xyzw, r17.ywzx, l(16, 16, 16, 16)
      itof r21.xyzw, r21.xyzw
      mul r21.xyzw, r21.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r20.xy, r21.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r17.xy, r21.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r11.y, r11.x, l(16)
      ishr r4.xy, r11.yxyy, l(16, 16, 0, 0)
      itof r4.xy, r4.xyxx
      mul r4.xy, r4.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
      max r11.xy, r4.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r20.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r21.xyzw, r17.yzwx, l(16, 16, 16, 16)
      f16tof32 r18.x, r17.y
      f16tof32 r18.y, r21.x
      f16tof32 r19.x, r17.z
      f16tof32 r19.y, r21.y
      f16tof32 r20.x, r17.w
      f16tof32 r20.y, r21.z
      f16tof32 r17.x, r17.x
      f16tof32 r17.y, r21.w
      ushr r1.y, r11.x, l(16)
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r1.y
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r20.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r11.zw, l(0,0,0,0)
      break 
      default 
      mov r18.x, r17.y
      mov r18.yzw, l(0,0,0,0)
      mov r19.x, r17.z
      mov r19.yzw, l(0,0,0,0)
      mov r20.x, r17.w
      mov r20.yzw, l(0,0,0,0)
      mov r17.yzw, l(0,0,0,0)
      mov r11.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r7.xyzw, r14.xyzw, r18.xyzw
    add r8.xyzw, r15.xyzw, r19.xyzw
    add r10.xyzw, r16.xyzw, r20.xyzw
    add r5.xyzw, r12.xyzw, r17.xyzw
    add r6.xyzw, r11.xyzw, r13.xyzw
  endif 
else 
  mov r0.z, r0.y
endif 
mul r7.xyzw, r0.zzzz, r7.xyzw
mul r8.xyzw, r0.zzzz, r8.xyzw
mul r10.xyzw, r0.zzzz, r10.xyzw
mul r5.xyzw, r0.zzzz, r5.xyzw
mul r6.xyzw, r0.zzzz, r6.xyzw
if_nz r1.w
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r10.xz, r10.zzxz
  mov r11.xz, r5.zzxz
  mov r6.xz, r6.zzxz
else 
  mov r11.xz, r5.xxzx
endif 
switch r3.x
  case l(6)
  case l(14)
  case l(50)
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r0.z, r12.y, l(256), r12.x
  imad r0.z, r12.z, l(0x00010000), r0.z
  imad r12.x, r12.w, l(0x01000000), r0.z
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(256), r13.x
  imad r0.z, r13.z, l(0x00010000), r0.z
  imad r12.y, r13.w, l(0x01000000), r0.z
  mov_sat r10.xyzw, r10.xyzw
  mad r13.xyzw, r10.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(256), r13.x
  imad r0.z, r13.z, l(0x00010000), r0.z
  imad r12.z, r13.w, l(0x01000000), r0.z
  mov r11.yw, r5.yyyw
  mov_sat r11.xyzw, r11.xyzw
  mad r13.xyzw, r11.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(256), r13.x
  imad r0.z, r13.z, l(0x00010000), r0.z
  imad r12.w, r13.w, l(0x01000000), r0.z
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(256), r13.x
  imad r0.z, r13.z, l(0x00010000), r0.z
  imad r6.x, r13.w, l(0x01000000), r0.z
  mov r11.xyzw, r12.wyxz
  break 
  case l(7)
  case l(54)
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r0.z, r12.y, l(1024), r12.x
  imad r0.z, r12.z, l(0x00100000), r0.z
  imad r12.x, r12.w, l(0x40000000), r0.z
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(1024), r13.x
  imad r0.z, r13.z, l(0x00100000), r0.z
  imad r12.y, r13.w, l(0x40000000), r0.z
  mov_sat r10.xyzw, r10.xyzw
  mad r13.xyzw, r10.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(1024), r13.x
  imad r0.z, r13.z, l(0x00100000), r0.z
  imad r12.z, r13.w, l(0x40000000), r0.z
  mov_sat r5.xz, r11.xxzx
  mov_sat r5.yw, r5.yyyw
  mad r13.xyzw, r5.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(1024), r13.x
  imad r0.z, r13.z, l(0x00100000), r0.z
  imad r12.w, r13.w, l(0x40000000), r0.z
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(1024), r13.x
  imad r0.z, r13.z, l(0x00100000), r0.z
  imad r6.x, r13.w, l(0x40000000), r0.z
  mov r11.xyzw, r12.wyxz
  break 
  case l(16)
  case l(55)
  mov_sat r7.xyz, r7.xyzx
  mad r4.xyz, r7.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(2048), r4.x
  imad r12.x, r4.z, l(0x00400000), r0.z
  mov_sat r8.xyz, r8.xyzx
  mad r4.xyz, r8.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(2048), r4.x
  imad r12.y, r4.z, l(0x00400000), r0.z
  mov_sat r10.xyz, r10.xyzx
  mad r4.xyz, r10.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(2048), r4.x
  imad r12.z, r4.z, l(0x00400000), r0.z
  mov_sat r5.xz, r11.xxzx
  mov_sat r5.y, r5.y
  mad r4.xyz, r5.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(2048), r4.x
  imad r12.w, r4.z, l(0x00400000), r0.z
  mov_sat r6.xyz, r6.xyzx
  mad r4.xyz, r6.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(2048), r4.x
  imad r6.x, r4.z, l(0x00400000), r0.z
  mov r11.xyzw, r12.wyxz
  break 
  case l(17)
  case l(56)
  mov_sat r7.xyz, r7.xyzx
  mad r4.xyz, r7.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(1024), r4.x
  imad r12.x, r4.z, l(0x00200000), r0.z
  mov_sat r8.xyz, r8.xyzx
  mad r4.xyz, r8.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(1024), r4.x
  imad r12.y, r4.z, l(0x00200000), r0.z
  mov_sat r10.xyz, r10.xyzx
  mad r4.xyz, r10.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(1024), r4.x
  imad r12.z, r4.z, l(0x00200000), r0.z
  mov_sat r5.xz, r11.xxzx
  mov_sat r5.y, r5.y
  mad r4.xyz, r5.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(1024), r4.x
  imad r12.w, r4.z, l(0x00200000), r0.z
  mov_sat r6.xyz, r6.xyzx
  mad r4.xyz, r6.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r4.xyz, r4.xyzx
  imad r0.z, r4.y, l(1024), r4.x
  imad r6.x, r4.z, l(0x00200000), r0.z
  mov r11.xyzw, r12.wyxz
  break 
  case l(25)
  mov_sat r7.xy, r7.xyxx
  mad r4.xy, r7.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  imad r11.z, r4.y, l(0x00010000), r4.x
  mov_sat r8.xy, r8.xyxx
  mad r4.xy, r8.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  imad r11.y, r4.y, l(0x00010000), r4.x
  mov_sat r10.xy, r10.xyxx
  mad r4.xy, r10.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  imad r11.w, r4.y, l(0x00010000), r4.x
  mov_sat r5.x, r11.x
  mov_sat r5.y, r5.y
  mad r4.xy, r5.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  imad r11.x, r4.y, l(0x00010000), r4.x
  mov_sat r6.xy, r6.xyxx
  mad r4.xy, r6.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r4.xy, r4.xyxx
  imad r6.x, r4.y, l(0x00010000), r4.x
  break 
  case l(31)
  f32tof16 r12.x, r7.x
  f32tof16 r12.y, r8.x
  f32tof16 r12.z, r10.x
  f32tof16 r12.w, r11.x
  f32tof16 r13.x, r7.y
  f32tof16 r13.y, r8.y
  f32tof16 r13.z, r10.y
  f32tof16 r13.w, r5.y
  imad r11.xyzw, r13.wyxz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r12.wyxz
  f32tof16 r0.z, r6.x
  f32tof16 r1.y, r6.y
  imad r6.x, r1.y, l(0x00010000), r0.z
  break 
  default 
  mov r11.z, r7.x
  mov r11.y, r8.x
  mov r11.w, r10.x
  break 
endswitch 
if_nz r3.y
  ishl r5.xyzw, r11.zywx, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r7.xyzw, r11.zywx, l(8, 8, 8, 8)
  and r7.xyzw, r7.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r11.xyzw, r5.wyxz, r7.wyxz
  ishl r0.z, r6.x, l(8)
  and r0.z, r0.z, l(0xff00ff00)
  ushr r1.y, r6.x, l(8)
  and r1.y, r1.y, l(0x00ff00ff)
  iadd r6.x, r0.z, r1.y
endif 
if_nz r3.z
  ushr r5.xyzw, r11.zywx, l(16, 16, 16, 16)
  bfi r11.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r11.xyzw, r5.wyxz
  ushr r0.z, r6.x, l(16)
  bfi r6.x, l(16), l(16), r6.x, r0.z
  mov r9.z, r11.z
  mov r11.zw, r11.yyyw
  mov r6.z, r11.x
else 
  mov r9.z, r11.z
  mov r11.zw, r11.yyyw
  mov r6.z, r11.x
endif 
if_nz r0.w
  mov r9.z, r6.z
  mov r11.z, r6.x
endif 
store_uav_typed U0[0].xyzw, r4.wwww, r9.xzxx
ld_raw r4.xyzw, r2.w, T0[0].wxyz
switch r1.z
  case l(0)
  case l(1)
  ushr r9.yzw, r4.yyyy, l(0, 8, 16, 24)
  mov r9.x, r4.y
  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, r4.zzzz, l(0, 8, 16, 24)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 8, 16, 24)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 8, 16, 24)
  and r9.xyzw, r4.xyzw, l(255, 255, 255, 255)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r9.yzw, r4.yyyy, l(0, 10, 20, 30)
  mov r9.x, r4.y
  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, r4.zzzz, l(0, 10, 20, 30)
  mov r9.x, r4.z
  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, r4.wwww, l(0, 10, 20, 30)
  mov r9.x, r4.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 r4.yzw, r4.xxxx, l(0, 10, 20, 30)
  and r9.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
  utof r9.xyzw, r9.xyzw
  mul r4.xyzw, r9.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r9.xyzw, r4.yyyz, l(10, 20, 30, 30)
  mov r10.x, r4.y
  mov r10.yz, r9.xxyx
  and r12.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r10.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r10.xyz, l(7, 7, 7, 0), r15.xyzx, r10.xyzx, l(0, 0, 0, 0)
  and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
  movc r10.xyz, r14.xyzx, r13.xyzx, r10.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
  iadd r10.xyz, r13.xyzx, r10.xyzx
  movc r5.xyz, r12.xyzx, r10.xyzx, l(0,0,0,0)
  utof r2.xw, r9.zzzw
  ushr r9.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r10.x, r4.z
  mov r10.yz, r9.xxwx
  and r12.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r10.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.xyzx
  firstbit_hi r15.xyz, r13.xyzx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r13.xyzx, r15.xyzx, l(8,8,8,0)
  iadd r16.xyz, -r15.xyzx, l(1, 1, 1, 0)
  movc r16.xyz, r14.xyzx, r14.xyzx, r16.xyzx
  bfi r10.xyz, l(7, 7, 7, 0), r15.xyzx, r10.xyzx, l(0, 0, 0, 0)
  and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
  movc r10.xyz, r14.xyzx, r13.xyzx, r10.xyzx
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
  iadd r10.xyz, r13.xyzx, r10.xyzx
  movc r7.xyz, r12.xyzx, r10.xyzx, l(0,0,0,0)
  mul r2.xw, r2.xxxw, l(0.333333, 0.000000, 0.000000, 0.333333)
  mov r9.x, r4.w
  and r10.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.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 r9.xyz, l(7, 7, 7, 0), r14.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r13.xyzx, r12.xyzx, r9.xyzx
  ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r12.xyzx, r9.xyzx
  movc r8.xyz, r10.xyzx, r9.xyzx, l(0,0,0,0)
  ushr r9.xyzw, r4.wxxx, l(30, 10, 20, 30)
  utof r6.yw, r9.xxxw
  mov r9.x, r4.x
  and r10.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.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 r9.xyz, l(7, 7, 7, 0), r14.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r13.xyzx, r12.xyzx, r9.xyzx
  ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r12.xyzx, r9.xyzx
  movc r4.xyz, r10.xyzx, r9.xyzx, l(0,0,0,0)
  mul r6.yw, r6.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
  mov r5.w, r2.x
  mov r7.w, r2.w
  mov r8.w, r6.y
  mov r4.w, r6.w
  break 
  case l(4)
  ishl r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  mov r10.xz, r9.xxyx
  mov r10.yw, r4.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 r5.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r4.yz, r9.zzwz
  ishr r9.xyzw, r4.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 r4.xy, r9.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r5.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r9.xyzw, r4.yzwx, l(16, 16, 16, 16)
  f16tof32 r5.x, r4.y
  f16tof32 r5.y, r9.x
  f16tof32 r7.x, r4.z
  f16tof32 r7.y, r9.y
  f16tof32 r8.x, r4.w
  f16tof32 r8.y, r9.z
  f16tof32 r4.x, r4.x
  f16tof32 r4.y, r9.w
  mov r5.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  default 
  mov r5.x, r4.y
  mov r5.yzw, l(0,0,0,0)
  mov r7.x, r4.z
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r4.w
  mov r8.yzw, l(0,0,0,0)
  mov r4.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r0.z, r0.y, l(0.500000)
  iadd r1.y, r0.x, l(2900)
  ld_raw r9.xyzw, r1.y, T0[0].wxyz
  switch r1.z
    case l(0)
    case l(1)
    ushr r14.yzw, r9.yyyy, l(0, 8, 16, 24)
    mov r14.x, r9.y
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r9.zzzz, l(0, 8, 16, 24)
    mov r14.x, r9.z
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r9.wwww, l(0, 8, 16, 24)
    mov r14.x, r9.w
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
    and r14.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r9.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r14.yzw, r9.yyyy, l(0, 10, 20, 30)
    mov r14.x, r9.y
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r9.zzzz, l(0, 10, 20, 30)
    mov r14.x, r9.z
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r9.wwww, l(0, 10, 20, 30)
    mov r14.x, r9.w
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
    and r14.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r9.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r14.xyzw, r9.yyyz, l(10, 20, 30, 30)
    mov r15.x, r9.y
    mov r15.yz, r14.xxyx
    and r2.xzw, r15.xxyz, l(1023, 0, 1023, 1023)
    and r16.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r18.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r17.xyzx, r16.xyzx, r15.xyzx
    ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r16.xyzx, r15.xyzx
    movc r10.xyz, r2.xzwx, r15.xyzx, l(0,0,0,0)
    utof r2.xz, r14.zzwz
    ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r15.x, r9.z
    mov r15.yz, r14.xxwx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mul r2.xz, r2.xxzx, l(0.333333, 0.000000, 0.333333, 0.000000)
    mov r14.x, r9.w
    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 r13.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r9.wxxx, l(30, 10, 20, 30)
    utof r6.yw, r14.xxxw
    mov r14.x, r9.x
    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 r6.yw, r6.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
    mov r10.w, r2.x
    mov r12.w, r2.z
    mov r13.w, r6.y
    mov r9.w, r6.w
    break 
    case l(4)
    ishl r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
    mov r15.xz, r14.xxyx
    mov r15.yw, r9.yyyz
    ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
    itof r15.xyzw, r15.xyzw
    mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r10.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r9.yz, r14.zzwz
    ishr r14.xyzw, r9.ywzx, 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 r13.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.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r9.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
    f16tof32 r10.x, r9.y
    f16tof32 r10.y, r14.x
    f16tof32 r12.x, r9.z
    f16tof32 r12.y, r14.y
    f16tof32 r13.x, r9.w
    f16tof32 r13.y, r14.z
    f16tof32 r9.x, r9.x
    f16tof32 r9.y, r14.w
    mov r10.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r9.zw, l(0,0,0,0)
    break 
    default 
    mov r10.x, r9.y
    mov r10.yzw, l(0,0,0,0)
    mov r12.x, r9.z
    mov r12.yzw, l(0,0,0,0)
    mov r13.x, r9.w
    mov r13.yzw, l(0,0,0,0)
    mov r9.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r5.xyzw, r5.xyzw, r10.xyzw
  add r7.xyzw, r7.xyzw, r12.xyzw
  add r8.xyzw, r8.xyzw, r13.xyzw
  add r4.xyzw, r4.xyzw, r9.xyzw
  uge r1.y, r2.y, l(6)
  if_nz r1.y
    mul r0.y, r0.y, l(0.250000)
    iadd r2.xy, r0.xxxx, l(56, 2936, 0, 0)
    ld_raw r9.xyzw, r2.x, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r14.yzw, r9.yyyy, l(0, 8, 16, 24)
      mov r14.x, r9.y
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r9.zzzz, l(0, 8, 16, 24)
      mov r14.x, r9.z
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r9.wwww, l(0, 8, 16, 24)
      mov r14.x, r9.w
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
      and r14.xyzw, r9.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r9.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r14.yzw, r9.yyyy, l(0, 10, 20, 30)
      mov r14.x, r9.y
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r9.zzzz, l(0, 10, 20, 30)
      mov r14.x, r9.z
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r9.wwww, l(0, 10, 20, 30)
      mov r14.x, r9.w
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
      and r14.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r9.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r14.xyzw, r9.yyyz, l(10, 20, 30, 30)
      mov r15.x, r9.y
      mov r15.yz, r14.xxyx
      and r2.xzw, r15.xxyz, l(1023, 0, 1023, 1023)
      and r16.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r18.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r17.xyzx, r16.xyzx, r15.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r16.xyzx, r15.xyzx
      movc r10.xyz, r2.xzwx, r15.xyzx, l(0,0,0,0)
      utof r2.xz, r14.zzwz
      ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
      mov r15.x, r9.z
      mov r15.yz, r14.xxwx
      and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r17.xyzx, r15.xyzx
      movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
      mul r2.xz, r2.xxzx, l(0.333333, 0.000000, 0.333333, 0.000000)
      mov r14.x, r9.w
      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 r13.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
      ushr r14.xyzw, r9.wxxx, l(30, 10, 20, 30)
      utof r6.yw, r14.xxxw
      mov r14.x, r9.x
      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 r6.yw, r6.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      mov r10.w, r2.x
      mov r12.w, r2.z
      mov r13.w, r6.y
      mov r9.w, r6.w
      break 
      case l(4)
      ishl r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
      mov r15.xz, r14.xxyx
      mov r15.yw, r9.yyyz
      ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
      itof r15.xyzw, r15.xyzw
      mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r10.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r9.yz, r14.zzwz
      ishr r14.xyzw, r9.ywzx, 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 r13.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.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r14.xyzw, r9.yzwx, l(16, 16, 16, 16)
      f16tof32 r10.x, r9.y
      f16tof32 r10.y, r14.x
      f16tof32 r12.x, r9.z
      f16tof32 r12.y, r14.y
      f16tof32 r13.x, r9.w
      f16tof32 r13.y, r14.z
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r14.w
      mov r10.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      default 
      mov r10.x, r9.y
      mov r10.yzw, l(0,0,0,0)
      mov r12.x, r9.z
      mov r12.yzw, l(0,0,0,0)
      mov r13.x, r9.w
      mov r13.yzw, l(0,0,0,0)
      mov r9.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r10.xyzw, r5.xyzw, r10.xyzw
    add r12.xyzw, r7.xyzw, r12.xyzw
    add r13.xyzw, r8.xyzw, r13.xyzw
    add r9.xyzw, r4.xyzw, r9.xyzw
    ld_raw r2.xyzw, r2.y, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r17.yzw, r2.yyyy, l(0, 8, 16, 24)
      mov r17.x, r2.y
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r2.zzzz, l(0, 8, 16, 24)
      mov r17.x, r2.z
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r2.wwww, l(0, 8, 16, 24)
      mov r17.x, r2.w
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r2.yzw, r2.xxxx, l(0, 8, 16, 24)
      and r17.xyzw, r2.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r2.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r17.yzw, r2.yyyy, l(0, 10, 20, 30)
      mov r17.x, r2.y
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r14.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r2.zzzz, l(0, 10, 20, 30)
      mov r17.x, r2.z
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r15.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r2.wwww, l(0, 10, 20, 30)
      mov r17.x, r2.w
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r16.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r2.yzw, r2.xxxx, l(0, 10, 20, 30)
      and r17.xyzw, r2.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r2.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r17.xyzw, r2.yyyz, l(10, 20, 30, 30)
      mov r18.x, r2.y
      mov r18.yz, r17.xxyx
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r14.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      utof r1.yz, r17.zzwz
      ushr r17.xyzw, r2.zwwz, l(10, 10, 20, 20)
      mov r18.x, r2.z
      mov r18.yz, r17.xxwx
      and r19.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      and r20.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r22.xyz, r20.xyzx
      iadd r22.xyz, r22.xyzx, l(-24, -24, -24, 0)
      movc r22.xyz, r20.xyzx, r22.xyzx, l(8,8,8,0)
      iadd r23.xyz, -r22.xyzx, l(1, 1, 1, 0)
      movc r23.xyz, r21.xyzx, r21.xyzx, r23.xyzx
      bfi r18.xyz, l(7, 7, 7, 0), r22.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r21.xyzx, r20.xyzx, r18.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r18.xyz, r18.xyzx, l(16, 16, 16, 0)
      iadd r18.xyz, r20.xyzx, r18.xyzx
      movc r15.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      mul r1.yz, r1.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r17.x, r2.w
      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 r16.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      ushr r17.xyzw, r2.wxxx, l(30, 10, 20, 30)
      utof r6.yw, r17.xxxw
      mov r17.x, r2.x
      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 r2.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      mul r6.yw, r6.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      mov r14.w, r1.y
      mov r15.w, r1.z
      mov r16.w, r6.y
      mov r2.w, r6.w
      break 
      case l(4)
      ishl r17.xyzw, r2.yzwx, l(16, 16, 16, 16)
      mov r18.xz, r17.xxyx
      mov r18.yw, r2.yyyz
      ishr r18.xyzw, r18.xyzw, l(16, 16, 16, 16)
      itof r18.xyzw, r18.xyzw
      mul r18.xyzw, r18.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r14.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r15.xy, r18.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r2.yz, r17.zzwz
      ishr r17.xyzw, r2.ywzx, 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.xy, r17.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r2.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r2.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r17.xyzw, r2.yzwx, l(16, 16, 16, 16)
      f16tof32 r14.x, r2.y
      f16tof32 r14.y, r17.x
      f16tof32 r15.x, r2.z
      f16tof32 r15.y, r17.y
      f16tof32 r16.x, r2.w
      f16tof32 r16.y, r17.z
      f16tof32 r2.x, r2.x
      f16tof32 r2.y, r17.w
      mov r14.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r2.zw, l(0,0,0,0)
      break 
      default 
      mov r14.x, r2.y
      mov r14.yzw, l(0,0,0,0)
      mov r15.x, r2.z
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r2.w
      mov r16.yzw, l(0,0,0,0)
      mov r2.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r5.xyzw, r10.xyzw, r14.xyzw
    add r7.xyzw, r12.xyzw, r15.xyzw
    add r8.xyzw, r13.xyzw, r16.xyzw
    add r4.xyzw, r2.xyzw, r9.xyzw
  else 
    mov r0.y, r0.z
  endif 
endif 
mul r2.xyzw, r0.yyyy, r5.xyzw
mul r5.xyzw, r0.yyyy, r7.xyzw
mul r7.xyzw, r0.yyyy, r8.xyzw
mul r4.xyzw, r0.yyyy, r4.xyzw
if_nz r1.w
  mov r2.xz, r2.zzxz
  mov r5.xz, r5.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r4.zzxz
else 
  mov r8.xz, r4.xxzx
endif 
switch r3.x
  case l(6)
  case l(14)
  case l(50)
  mov_sat r2.xyzw, r2.xyzw
  mad r9.xyzw, r2.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(256), r9.x
  imad r0.x, r9.z, l(0x00010000), r0.x
  imad r9.x, r9.w, l(0x01000000), r0.x
  mov_sat r5.xyzw, r5.xyzw
  mad r10.xyzw, r5.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(256), r10.x
  imad r0.x, r10.z, l(0x00010000), r0.x
  imad r9.y, r10.w, l(0x01000000), r0.x
  mov_sat r7.xyzw, r7.xyzw
  mad r10.xyzw, r7.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(256), r10.x
  imad r0.x, r10.z, l(0x00010000), r0.x
  imad r9.z, r10.w, l(0x01000000), r0.x
  mov r8.yw, r4.yyyw
  mov_sat r8.xyzw, r8.xyzw
  mad r10.xyzw, r8.xyzw, l(255.000000, 255.000000, 255.000000, 255.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(256), r10.x
  imad r0.x, r10.z, l(0x00010000), r0.x
  imad r9.w, r10.w, l(0x01000000), r0.x
  mov r8.xyzw, r9.wyxz
  break 
  case l(7)
  case l(54)
  mov_sat r2.xyzw, r2.xyzw
  mad r9.xyzw, r2.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(1024), r9.x
  imad r0.x, r9.z, l(0x00100000), r0.x
  imad r9.x, r9.w, l(0x40000000), r0.x
  mov_sat r5.xyzw, r5.xyzw
  mad r10.xyzw, r5.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(1024), r10.x
  imad r0.x, r10.z, l(0x00100000), r0.x
  imad r9.y, r10.w, l(0x40000000), r0.x
  mov_sat r7.xyzw, r7.xyzw
  mad r10.xyzw, r7.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(1024), r10.x
  imad r0.x, r10.z, l(0x00100000), r0.x
  imad r9.z, r10.w, l(0x40000000), r0.x
  mov_sat r4.xz, r8.xxzx
  mov_sat r4.yw, r4.yyyw
  mad r10.xyzw, r4.xyzw, l(1023.000000, 1023.000000, 1023.000000, 3.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r10.xyzw, r10.xyzw
  imad r0.x, r10.y, l(1024), r10.x
  imad r0.x, r10.z, l(0x00100000), r0.x
  imad r9.w, r10.w, l(0x40000000), r0.x
  mov r8.xyzw, r9.wyxz
  break 
  case l(16)
  case l(55)
  mov_sat r2.xyz, r2.xyzx
  mad r0.xyz, r2.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(2048), r0.x
  imad r9.x, r0.z, l(0x00400000), r0.x
  mov_sat r5.xyz, r5.xyzx
  mad r0.xyz, r5.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(2048), r0.x
  imad r9.y, r0.z, l(0x00400000), r0.x
  mov_sat r7.xyz, r7.xyzx
  mad r0.xyz, r7.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(2048), r0.x
  imad r9.z, r0.z, l(0x00400000), r0.x
  mov_sat r4.xz, r8.xxzx
  mov_sat r4.y, r4.y
  mad r0.xyz, r4.xyzx, l(2047.000000, 2047.000000, 1023.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(2048), r0.x
  imad r9.w, r0.z, l(0x00400000), r0.x
  mov r8.xyzw, r9.wyxz
  break 
  case l(17)
  case l(56)
  mov_sat r2.xyz, r2.xyzx
  mad r0.xyz, r2.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(1024), r0.x
  imad r9.x, r0.z, l(0x00200000), r0.x
  mov_sat r5.xyz, r5.xyzx
  mad r0.xyz, r5.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(1024), r0.x
  imad r9.y, r0.z, l(0x00200000), r0.x
  mov_sat r7.xyz, r7.xyzx
  mad r0.xyz, r7.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(1024), r0.x
  imad r9.z, r0.z, l(0x00200000), r0.x
  mov_sat r4.xz, r8.xxzx
  mov_sat r4.y, r4.y
  mad r0.xyz, r4.xyzx, l(1023.000000, 2047.000000, 2047.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r0.xyz, r0.xyzx
  imad r0.x, r0.y, l(1024), r0.x
  imad r9.w, r0.z, l(0x00200000), r0.x
  mov r8.xyzw, r9.wyxz
  break 
  case l(25)
  mov_sat r2.xy, r2.xyxx
  mad r0.xy, r2.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r8.z, r0.y, l(0x00010000), r0.x
  mov_sat r5.xy, r5.xyxx
  mad r0.xy, r5.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r8.y, r0.y, l(0x00010000), r0.x
  mov_sat r7.xy, r7.xyxx
  mad r0.xy, r7.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r8.w, r0.y, l(0x00010000), r0.x
  mov_sat r4.x, r8.x
  mov_sat r4.y, r4.y
  mad r0.xy, r4.xyxx, l(65535.000000, 65535.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r8.x, r0.y, l(0x00010000), r0.x
  break 
  case l(31)
  f32tof16 r9.x, r2.x
  f32tof16 r9.y, r5.x
  f32tof16 r9.z, r7.x
  f32tof16 r9.w, r8.x
  f32tof16 r10.x, r2.y
  f32tof16 r10.y, r5.y
  f32tof16 r10.z, r7.y
  f32tof16 r10.w, r4.y
  imad r8.xyzw, r10.wyxz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r9.wyxz
  break 
  default 
  mov r8.z, r2.x
  mov r8.y, r5.x
  mov r8.w, r7.x
  break 
endswitch 
if_nz r3.y
  ishl r2.xyzw, r8.zywx, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r4.xyzw, r8.zywx, l(8, 8, 8, 8)
  and r4.xyzw, r4.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r8.xyzw, r2.wyxz, r4.wyxz
endif 
if_nz r3.z
  ushr r2.xyzw, r8.zywx, l(16, 16, 16, 16)
  bfi r8.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r8.xyzw, r2.wyxz
endif 
if_nz r0.w
  mov r11.w, r8.z
endif 
iadd r0.xyzw, r1.xxxx, l(5, 6, 7, 8)
store_uav_typed U0[0].xyzw, r0.xxxx, r11.zwzz
store_uav_typed U0[0].xyzw, r0.yyyy, r6.zxzz
store_uav_typed U0[0].xyzw, r0.zzzz, r8.zyzz
store_uav_typed U0[0].xyzw, r0.wwww, r8.wxww
ret 
// Approximately 4123 instruction slots used
