//
// 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(2)
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(9)
  and r1.w, r1.w, l(3072)
  bfi r1.w, l(3), l(7), 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(48)
  bfi r4.zw, l(0, 0, 21, 21), l(0, 0, 9, 12), 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(7, 0, 0, 10), 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(3, 7, 0, 0)
  and r3.xy, r3.xyxx, l(112, 2048, 0, 0)
  bfi r1.w, l(3), l(1), r3.w, r3.x
  ishl r2.w, r3.x, l(1)
  bfi r2.w, l(3), l(2), r3.w, r2.w
  and r2.w, r2.w, l(224)
  bfi r3.x, l(24), l(8), 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(24, 24, 0, 0), l(11, 10, 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 r4.xz, r4.zzxz
  mov r5.xz, r5.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r6.xyzw, r6.xyzw
  mad r11.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(32), r11.x
  imad r3.y, r11.z, l(1024), r3.y
  imad r9.x, r11.w, l(0x00008000), r3.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(32), r11.x
  imad r3.y, r11.z, l(1024), r3.y
  imad r9.z, r11.w, l(0x00008000), r3.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(32), r11.x
  imad r3.y, r11.z, l(1024), r3.y
  imad r9.w, r11.w, l(0x00008000), r3.y
  mov_sat r4.xyzw, r4.xyzw
  mad r11.xyzw, r4.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(32), r11.x
  imad r3.y, r11.z, l(1024), r3.y
  imad r9.y, r11.w, l(0x00008000), r3.y
  mov_sat r5.xyzw, r5.xyzw
  mad r11.xyzw, r5.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(32), r11.x
  imad r3.y, r11.z, l(1024), r3.y
  imad r10.x, r11.w, l(0x00008000), r3.y
  break 
  case l(4)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.x, r3.w, l(2048), r3.y
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.z, r3.w, l(2048), r3.y
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.w, r3.w, l(2048), r3.y
  mov_sat r4.xyz, r4.xyzx
  mad r3.yzw, r4.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.y, r3.w, l(2048), r3.y
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(2048), r3.y
  break 
  case l(5)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.x, r3.w, l(1024), r3.y
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.z, r3.w, l(1024), r3.y
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.w, r3.w, l(1024), r3.y
  mov_sat r4.xyz, r4.xyzx
  mad r3.yzw, r4.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r9.y, r3.w, l(1024), r3.y
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r3.y, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(1024), r3.y
  break 
  case l(10)
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.x, r3.z, l(256), r3.y
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.z, r3.z, l(256), r3.y
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.w, r3.z, l(256), r3.y
  mov_sat r4.xy, r4.xyxx
  mad r3.yz, r4.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r9.y, r3.z, l(256), r3.y
  mov_sat r5.xy, r5.xyxx
  mad r3.yz, r5.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.x, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r6.xyzw, r6.xyzw
  mad r11.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(16), r11.x
  imad r3.y, r11.z, l(256), r3.y
  imad r9.x, r11.w, l(4096), r3.y
  mov_sat r7.xyzw, r7.xyzw
  mad r11.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(16), r11.x
  imad r3.y, r11.z, l(256), r3.y
  imad r9.z, r11.w, l(4096), r3.y
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(16), r11.x
  imad r3.y, r11.z, l(256), r3.y
  imad r9.w, r11.w, l(4096), r3.y
  mov_sat r4.xyzw, r4.xyzw
  mad r11.xyzw, r4.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(16), r11.x
  imad r3.y, r11.z, l(256), r3.y
  imad r9.y, r11.w, l(4096), r3.y
  mov_sat r5.xyzw, r5.xyzw
  mad r11.xyzw, r5.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r3.y, r11.y, l(16), r11.x
  imad r3.y, r11.z, l(256), r3.y
  imad r10.x, r11.w, l(4096), r3.y
  break 
  case l(24)
  mov_sat r6.x, r6.x
  mad r3.y, r6.x, l(65535.000000), l(0.500000)
  ftou r9.x, r3.y
  mov_sat r7.x, r7.x
  mad r3.y, r7.x, l(65535.000000), l(0.500000)
  ftou r9.z, r3.y
  mov_sat r8.x, r8.x
  mad r3.y, r8.x, l(65535.000000), l(0.500000)
  ftou r9.w, r3.y
  mov_sat r4.x, r4.x
  mad r3.y, r4.x, l(65535.000000), l(0.500000)
  ftou r9.y, r3.y
  mov_sat r5.x, r5.x
  mad r3.y, r5.x, l(65535.000000), l(0.500000)
  ftou r10.x, r3.y
  break 
  default 
  f32tof16 r9.x, r6.x
  f32tof16 r9.z, r7.x
  f32tof16 r9.w, r8.x
  f32tof16 r9.y, r4.x
  f32tof16 r10.x, r5.x
  break 
endswitch 
ieq r1.y, r1.y, l(1)
if_nz r1.y
  bfi r4.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r9.xzwy, l(0, 0, 0, 0)
  ushr r5.xyzw, r9.xzwy, l(8, 8, 8, 8)
  iadd r9.xyzw, r4.xwyz, r5.xwyz
  bfi r3.y, l(8), l(8), r10.x, l(0)
  ushr r3.z, r10.x, l(8)
  iadd r10.x, r3.y, r3.z
  mov r4.xy, r9.xwxx
  mov r9.xy, r9.zyzz
else 
  mov r4.xy, r9.xwxx
  mov r9.xy, r9.zyzz
endif 
ld_raw r5.xyzw, r2.w, T0[0].wxyz
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 r6.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 r7.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 r8.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)
  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 r6.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 r7.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 r8.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)
  break 
  case l(3)
  case l(12)
  ushr r11.xyzw, r5.yyyz, l(10, 20, 30, 30)
  mov r12.x, r5.y
  mov r12.yz, r11.xxyx
  and r3.yzw, r12.xxyz, l(0, 1023, 1023, 1023)
  and r13.xyz, r12.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r12.xyz, l(7, 7, 7, 0), r15.xyzx, r12.xyzx, l(0, 0, 0, 0)
  and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
  movc r12.xyz, r14.xyzx, r13.xyzx, r12.xyzx
  ishl r13.xyz, r16.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, r3.yzwy, r12.xyzx, l(0,0,0,0)
  utof r3.yz, r11.zzwz
  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 r7.xyz, r13.xyzx, r12.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 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 r8.xyz, r12.xyzx, r11.xyzx, l(0,0,0,0)
  ushr r11.xyzw, r5.wxxx, l(30, 10, 20, 30)
  utof r4.zw, 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 r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
  mov r6.w, r3.y
  mov r7.w, r3.z
  mov r8.w, r4.z
  mov r5.w, r4.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 r6.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.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 r8.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)
  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 r5.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r11.xyzw, r5.yzwx, l(16, 16, 16, 16)
  f16tof32 r6.x, r5.y
  f16tof32 r6.y, r11.x
  f16tof32 r7.x, r5.z
  f16tof32 r7.y, r11.y
  f16tof32 r8.x, r5.w
  f16tof32 r8.y, r11.z
  f16tof32 r5.x, r5.x
  f16tof32 r5.y, r11.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 r5.zw, l(0,0,0,0)
  break 
  default 
  mov r6.x, r5.y
  mov r6.yzw, l(0,0,0,0)
  mov r7.x, r5.z
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r5.w
  mov r8.yzw, l(0,0,0,0)
  mov r5.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r2.w, r0.y, l(0.500000)
  imad r3.y, r0.x, l(36), l(2900)
  ld_raw r11.xyzw, r3.y, T0[0].wxyz
  switch r1.z
    case l(0)
    case l(1)
    ushr r15.yzw, r11.yyyy, l(0, 8, 16, 24)
    mov r15.x, r11.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, r11.zzzz, l(0, 8, 16, 24)
    mov r15.x, r11.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, r11.wwww, l(0, 8, 16, 24)
    mov r15.x, r11.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 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, r11.yyyy, l(0, 10, 20, 30)
    mov r15.x, r11.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, r11.zzzz, l(0, 10, 20, 30)
    mov r15.x, r11.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, r11.wwww, l(0, 10, 20, 30)
    mov r15.x, r11.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 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, r11.yyyz, l(10, 20, 30, 30)
    mov r16.x, r11.y
    mov r16.yz, r15.xxyx
    and r3.yzw, r16.xxyz, l(0, 1023, 1023, 1023)
    and r17.xyz, r16.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.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 r16.xyz, l(7, 7, 7, 0), r19.xyzx, r16.xyzx, l(0, 0, 0, 0)
    and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
    movc r16.xyz, r18.xyzx, r17.xyzx, r16.xyzx
    ishl r17.xyz, r20.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 r12.xyz, r3.yzwy, r16.xyzx, l(0,0,0,0)
    utof r3.yz, r15.zzwz
    ushr r15.xyzw, r11.zwwz, l(10, 10, 20, 20)
    mov r16.x, r11.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.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r15.x, r11.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, r11.wxxx, l(30, 10, 20, 30)
    utof r4.zw, r15.xxxw
    mov r15.x, r11.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 r11.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r12.w, r3.y
    mov r13.w, r3.z
    mov r14.w, r4.z
    mov r11.w, r4.w
    break 
    case l(4)
    ishl r15.xyzw, r11.yzwx, l(16, 16, 16, 16)
    mov r16.xz, r15.xxyx
    mov r16.yw, r11.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 r11.yz, r15.zzwz
    ishr r15.xyzw, r11.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 r11.xy, r15.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 r11.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r15.xyzw, r11.yzwx, l(16, 16, 16, 16)
    f16tof32 r12.x, r11.y
    f16tof32 r12.y, r15.x
    f16tof32 r13.x, r11.z
    f16tof32 r13.y, r15.y
    f16tof32 r14.x, r11.w
    f16tof32 r14.y, r15.z
    f16tof32 r11.x, r11.x
    f16tof32 r11.y, r15.w
    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 r11.zw, l(0,0,0,0)
    break 
    default 
    mov r12.x, r11.y
    mov r12.yzw, l(0,0,0,0)
    mov r13.x, r11.z
    mov r13.yzw, l(0,0,0,0)
    mov r14.x, r11.w
    mov r14.yzw, l(0,0,0,0)
    mov r11.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r6.xyzw, r6.xyzw, r12.xyzw
  add r7.xyzw, r7.xyzw, r13.xyzw
  add r8.xyzw, r8.xyzw, r14.xyzw
  add r5.xyzw, r5.xyzw, r11.xyzw
  uge r3.y, r2.y, l(6)
  if_nz r3.y
    mul r2.w, r0.y, l(0.250000)
    imad r3.yz, r0.xxxx, l(0, 36, 36, 0), l(0, 56, 2936, 0)
    ld_raw r11.xyzw, r3.y, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r15.yzw, r11.yyyy, l(0, 8, 16, 24)
      mov r15.x, r11.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, r11.zzzz, l(0, 8, 16, 24)
      mov r15.x, r11.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, r11.wwww, l(0, 8, 16, 24)
      mov r15.x, r11.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 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, r11.yyyy, l(0, 10, 20, 30)
      mov r15.x, r11.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, r11.zzzz, l(0, 10, 20, 30)
      mov r15.x, r11.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, r11.wwww, l(0, 10, 20, 30)
      mov r15.x, r11.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 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, r11.yyyz, l(10, 20, 30, 30)
      mov r16.x, r11.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.yw, r15.zzzw
      ushr r15.xyzw, r11.zwwz, l(10, 10, 20, 20)
      mov r16.x, r11.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.yw, r3.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      mov r15.x, r11.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, r11.wxxx, l(30, 10, 20, 30)
      utof r4.zw, r15.xxxw
      mov r15.x, r11.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 r11.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
      mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r12.w, r3.y
      mov r13.w, r3.w
      mov r14.w, r4.z
      mov r11.w, r4.w
      break 
      case l(4)
      ishl r15.xyzw, r11.yzwx, l(16, 16, 16, 16)
      mov r16.xz, r15.xxyx
      mov r16.yw, r11.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 r11.yz, r15.zzwz
      ishr r15.xyzw, r11.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 r11.xy, r15.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 r11.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r15.xyzw, r11.yzwx, l(16, 16, 16, 16)
      f16tof32 r12.x, r11.y
      f16tof32 r12.y, r15.x
      f16tof32 r13.x, r11.z
      f16tof32 r13.y, r15.y
      f16tof32 r14.x, r11.w
      f16tof32 r14.y, r15.z
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r15.w
      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 r11.zw, l(0,0,0,0)
      break 
      default 
      mov r12.x, r11.y
      mov r12.yzw, l(0,0,0,0)
      mov r13.x, r11.z
      mov r13.yzw, l(0,0,0,0)
      mov r14.x, r11.w
      mov r14.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 r11.xyzw, r5.xyzw, r11.xyzw
    ld_raw r15.xyzw, r3.z, T0[0].wxyz
    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)
      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)
      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 r3.yzw, r20.xxyz, l(0, 1023, 1023, 1023)
      and r21.xyz, r20.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r20.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 r20.xyz, l(7, 7, 7, 0), r23.xyzx, r20.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r20.xyz, r22.xyzx, r21.xyzx, r20.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r20.xyz, r20.xyzx, l(16, 16, 16, 0)
      iadd r20.xyz, r21.xyzx, r20.xyzx
      movc r16.xyz, r3.yzwy, r20.xyzx, l(0,0,0,0)
      utof r3.yz, r19.zzwz
      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.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      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 r4.zw, r19.xxxw
      mov r19.x, r15.x
      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)
      mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r16.w, r3.y
      mov r17.w, r3.z
      mov r18.w, r4.z
      mov r15.w, r4.w
      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)
      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)
      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
      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)
      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)
      break 
    endswitch 
    add r6.xyzw, r12.xyzw, r16.xyzw
    add r7.xyzw, r13.xyzw, r17.xyzw
    add r8.xyzw, r14.xyzw, r18.xyzw
    add r5.xyzw, r11.xyzw, r15.xyzw
  endif 
else 
  mov r2.w, r0.y
endif 
mul r6.xyzw, r2.wwww, r6.xyzw
mul r7.xyzw, r2.wwww, r7.xyzw
mul r8.xyzw, r2.wwww, r8.xyzw
mul r5.xyzw, r2.wwww, r5.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r5.xz, r5.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r11.y, r12.w, l(0x00008000), r2.w
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r11.z, r12.w, l(0x00008000), r2.w
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r11.w, r12.w, l(0x00008000), r2.w
  mov_sat r5.xyzw, r5.xyzw
  mad r12.xyzw, r5.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r11.x, r12.w, l(0x00008000), r2.w
  break 
  case l(4)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.y, r3.w, l(2048), r2.w
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.z, r3.w, l(2048), r2.w
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.w, r3.w, l(2048), r2.w
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.x, r3.w, l(2048), r2.w
  break 
  case l(5)
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.y, r3.w, l(1024), r2.w
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.z, r3.w, l(1024), r2.w
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.w, r3.w, l(1024), r2.w
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r11.x, r3.w, l(1024), r2.w
  break 
  case l(10)
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.y, r3.z, l(256), r3.y
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.z, r3.z, l(256), r3.y
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.w, r3.z, l(256), r3.y
  mov_sat r5.xy, r5.xyxx
  mad r3.yz, r5.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.x, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r11.y, r12.w, l(4096), r2.w
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r11.z, r12.w, l(4096), r2.w
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r11.w, r12.w, l(4096), r2.w
  mov_sat r5.xyzw, r5.xyzw
  mad r12.xyzw, r5.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r11.x, r12.w, l(4096), r2.w
  break 
  case l(24)
  mov_sat r6.x, r6.x
  mad r2.w, r6.x, l(65535.000000), l(0.500000)
  ftou r11.y, r2.w
  mov_sat r7.x, r7.x
  mad r2.w, r7.x, l(65535.000000), l(0.500000)
  ftou r11.z, r2.w
  mov_sat r8.x, r8.x
  mad r2.w, r8.x, l(65535.000000), l(0.500000)
  ftou r11.w, r2.w
  mov_sat r5.x, r5.x
  mad r2.w, r5.x, l(65535.000000), l(0.500000)
  ftou r11.x, r2.w
  break 
  default 
  f32tof16 r11.y, r6.x
  f32tof16 r11.z, r7.x
  f32tof16 r11.w, r8.x
  f32tof16 r11.x, r5.x
  break 
endswitch 
if_nz r1.y
  bfi r5.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r11.yzwx, l(0, 0, 0, 0)
  ushr r6.xyzw, r11.yzwx, l(8, 8, 8, 8)
  iadd r11.xyzw, r5.wxyz, r6.wxyz
  mov r9.zw, r11.yyyw
  mov r10.y, r11.z
else 
  mov r9.zw, r11.yyyw
  mov r10.y, r11.z
endif 
if_nz r0.z
  mov r4.x, r9.x
  mov r9.y, r10.x
  mov r10.y, r9.w
endif 
if_nz r0.w
  mov r4.xy, r9.yzyy
  mov r9.x, r10.x
endif 
imad r4.xyzw, r9.xyxx, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r4.xyxx
store_uav_typed U0[0].xyzw, r1.xxxx, r4.xyzw
iadd r4.xyzw, r1.xxxx, l(1, 2, 3, 4)
imad r5.xyzw, r9.zwzz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r10.xyxx
store_uav_typed U0[0].xyzw, r4.xxxx, r5.xyzw
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 r10.yzw, r5.yyyy, l(0, 8, 16, 24)
  mov r10.x, r5.y
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r7.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r10.yzw, r5.zzzz, l(0, 8, 16, 24)
  mov r10.x, r5.z
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r8.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r10.yzw, r5.wwww, l(0, 8, 16, 24)
  mov r10.x, r5.w
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r9.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r5.yzw, r5.xxxx, l(0, 8, 16, 24)
  and r10.xyzw, r5.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r5.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r6.yzw, r6.xxxx, l(0, 8, 16, 24)
  and r10.xyzw, r6.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r6.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r10.yzw, r5.yyyy, l(0, 10, 20, 30)
  mov r10.x, r5.y
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r7.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r10.yzw, r5.zzzz, l(0, 10, 20, 30)
  mov r10.x, r5.z
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r8.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r10.yzw, r5.wwww, l(0, 10, 20, 30)
  mov r10.x, r5.w
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r9.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r5.yzw, r5.xxxx, l(0, 10, 20, 30)
  and r10.xyzw, r5.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r5.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r10.xyzw, r6.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r6.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r10.xyzw, r5.yyyz, l(10, 20, 30, 30)
  mov r12.x, r5.y
  mov r12.yz, r10.xxyx
  and r3.yzw, r12.xxyz, l(0, 1023, 1023, 1023)
  and r13.xyz, r12.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r12.xyz, l(7, 7, 7, 0), r15.xyzx, r12.xyzx, l(0, 0, 0, 0)
  and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
  movc r12.xyz, r14.xyzx, r13.xyzx, r12.xyzx
  ishl r13.xyz, r16.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 r7.xyz, r3.yzwy, r12.xyzx, l(0,0,0,0)
  utof r3.yz, r10.zzwz
  ushr r10.xyzw, r5.zwwz, l(10, 10, 20, 20)
  mov r12.x, r5.z
  mov r12.yz, r10.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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r10.x, r5.w
  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 r9.xyz, r12.xyzx, r10.xyzx, l(0,0,0,0)
  ushr r10.xyzw, r5.wxxx, l(30, 10, 20, 30)
  utof r11.zw, r10.xxxw
  mov r10.x, r5.x
  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)
  mul r10.xy, r11.zwzz, l(0.333333, 0.333333, 0.000000, 0.000000)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r12.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r6.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r15.xyz, l(7, 7, 7, 0), r15.xyzx, r6.xyzx, l(0, 0, 0, 0)
  and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r14.xyzx, r13.xyzx, r15.xyzx
  ishl r14.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r14.xyzx, r13.xyzx
  movc r6.xyz, r12.xyzx, r13.xyzx, l(0,0,0,0)
  utof r2.x, r6.w
  mul r6.w, r2.x, l(0.333333)
  mov r7.w, r3.y
  mov r8.w, r3.z
  mov r9.w, r10.x
  mov r5.w, r10.y
  break 
  case l(4)
  ishl r10.xyzw, r5.yzwx, l(16, 16, 16, 16)
  mov r12.xz, r10.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, r10.zzwz
  ishr r10.xyzw, r5.ywzx, 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 r9.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r5.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  ishl r6.y, r6.x, l(16)
  ishr r3.yz, r6.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 r6.xy, r3.yzyy, 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 r9.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 r10.xyzw, r5.yzwx, l(16, 16, 16, 16)
  f16tof32 r7.x, r5.y
  f16tof32 r7.y, r10.x
  f16tof32 r8.x, r5.z
  f16tof32 r8.y, r10.y
  f16tof32 r9.x, r5.w
  f16tof32 r9.y, r10.z
  f16tof32 r5.x, r5.x
  f16tof32 r5.y, r10.w
  ushr r2.x, r6.x, l(16)
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r2.x
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r9.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 r9.x, r5.w
  mov r9.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 r2.x, r0.y, l(0.500000)
  iadd r3.yz, r0.xxxx, l(0, 2880, 2896, 0)
  ld_raw r10.xyzw, r3.y, T0[0].wxyz
  ld_raw r12.x, r3.z, T0[0].xxxx
  switch r1.z
    case l(0)
    case l(1)
    ushr r16.yzw, r10.yyyy, l(0, 8, 16, 24)
    mov r16.x, r10.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, r10.zzzz, l(0, 8, 16, 24)
    mov r16.x, r10.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, r10.wwww, l(0, 8, 16, 24)
    mov r16.x, r10.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 r10.yzw, r10.xxxx, l(0, 8, 16, 24)
    and r16.xyzw, r10.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r10.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, r10.yyyy, l(0, 10, 20, 30)
    mov r16.x, r10.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, r10.zzzz, l(0, 10, 20, 30)
    mov r16.x, r10.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, r10.wwww, l(0, 10, 20, 30)
    mov r16.x, r10.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 r10.yzw, r10.xxxx, l(0, 10, 20, 30)
    and r16.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r10.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, r10.yyyz, l(10, 20, 30, 30)
    mov r17.x, r10.y
    mov r17.yz, r16.xxyx
    and r3.yzw, r17.xxyz, l(0, 1023, 1023, 1023)
    and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
    and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
    ishl r18.xyz, r21.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 r13.xyz, r3.yzwy, r17.xyzx, l(0,0,0,0)
    utof r3.yz, r16.zzwz
    ushr r16.xyzw, r10.zwwz, l(10, 10, 20, 20)
    mov r17.x, r10.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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r16.x, r10.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, r10.wxxx, l(30, 10, 20, 30)
    utof r11.zw, r16.xxxw
    mov r16.x, r10.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 r10.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
    mul r11.zw, r11.zzzw, l(0.000000, 0.000000, 0.333333, 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 r3.w, r12.w
    mul r12.w, r3.w, l(0.333333)
    mov r13.w, r3.y
    mov r14.w, r3.z
    mov r15.w, r11.z
    mov r10.w, r11.w
    break 
    case l(4)
    ishl r16.xyzw, r10.yzwx, l(16, 16, 16, 16)
    mov r17.xz, r16.xxyx
    mov r17.yw, r10.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 r10.yz, r16.zzwz
    ishr r16.xyzw, r10.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 r10.xy, r16.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    ishl r12.y, r12.x, l(16)
    ishr r3.yz, r12.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 r12.xy, r3.yzyy, 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 r10.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r16.xyzw, r10.yzwx, l(16, 16, 16, 16)
    f16tof32 r13.x, r10.y
    f16tof32 r13.y, r16.x
    f16tof32 r14.x, r10.z
    f16tof32 r14.y, r16.y
    f16tof32 r15.x, r10.w
    f16tof32 r15.y, r16.z
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r16.w
    ushr r3.y, r12.x, l(16)
    f16tof32 r12.x, r12.x
    f16tof32 r12.y, r3.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 r10.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    break 
    default 
    mov r13.x, r10.y
    mov r13.yzw, l(0,0,0,0)
    mov r14.x, r10.z
    mov r14.yzw, l(0,0,0,0)
    mov r15.x, r10.w
    mov r15.yzw, l(0,0,0,0)
    mov r10.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 r9.xyzw, r9.xyzw, r15.xyzw
  add r5.xyzw, r5.xyzw, r10.xyzw
  add r6.xyzw, r6.xyzw, r12.xyzw
  uge r3.y, r2.y, l(6)
  if_nz r3.y
    mul r2.x, r0.y, l(0.250000)
    iadd r10.xyzw, r0.xxxx, l(36, 52, 2916, 2932)
    ld_raw r12.xyzw, r10.x, T0[0].wxyz
    ld_raw r13.x, r10.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 r18.x, r12.y
      mov r18.yz, r17.xxyx
      and r3.yzw, r18.xxyz, l(0, 1023, 1023, 1023)
      and r19.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.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 r18.xyz, l(7, 7, 7, 0), r21.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r20.xyzx, r19.xyzx, r18.xyzx
      ishl r19.xyz, r22.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 r14.xyz, r3.yzwy, r18.xyzx, l(0,0,0,0)
      utof r3.yz, r17.zzwz
      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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 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 r10.xy, r17.xwxx
      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 r10.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      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 r3.w, r13.w
      mul r13.w, r3.w, l(0.333333)
      mov r14.w, r3.y
      mov r15.w, r3.z
      mov r16.w, r10.x
      mov r12.w, r10.y
      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 r3.yz, r13.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 r13.xy, r3.yzyy, 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 r3.y, r13.x, l(16)
      f16tof32 r13.x, r13.x
      f16tof32 r13.y, r3.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, r9.xyzw, r16.xyzw
    add r12.xyzw, r5.xyzw, r12.xyzw
    add r13.xyzw, r6.xyzw, r13.xyzw
    ld_raw r17.xyzw, r10.z, T0[0].wxyz
    ld_raw r10.x, r10.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 r10.yzw, r10.xxxx, l(0, 8, 16, 24)
      and r21.xyzw, r10.xyzw, l(255, 255, 255, 255)
      utof r21.xyzw, r21.xyzw
      mul r10.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 r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r21.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
      utof r21.xyzw, r21.xyzw
      mul r10.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 r22.x, r17.y
      mov r22.yz, r21.xxyx
      and r3.yzw, r22.xxyz, l(0, 1023, 1023, 1023)
      and r23.xyz, r22.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r22.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 r22.xyz, l(7, 7, 7, 0), r25.xyzx, r22.xyzx, l(0, 0, 0, 0)
      and r22.xyz, r22.xyzx, l(127, 127, 127, 0)
      movc r22.xyz, r24.xyzx, r23.xyzx, r22.xyzx
      ishl r23.xyz, r26.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 r18.xyz, r3.yzwy, r22.xyzx, l(0,0,0,0)
      utof r3.yz, r21.zzwz
      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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 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 r11.zw, 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 r11.zw, r11.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r21.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r10.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.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, r10.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 r10.xyz, r21.xyzx, r22.xyzx, l(0,0,0,0)
      utof r3.w, r10.w
      mul r10.w, r3.w, l(0.333333)
      mov r18.w, r3.y
      mov r19.w, r3.z
      mov r20.w, r11.z
      mov r17.w, r11.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 r10.y, r10.x, l(16)
      ishr r3.yz, r10.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 r10.xy, r3.yzyy, 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 r10.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 r3.y, r10.x, l(16)
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r3.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 r10.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 r10.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r7.xyzw, r14.xyzw, r18.xyzw
    add r8.xyzw, r15.xyzw, r19.xyzw
    add r9.xyzw, r16.xyzw, r20.xyzw
    add r5.xyzw, r12.xyzw, r17.xyzw
    add r6.xyzw, r10.xyzw, r13.xyzw
  endif 
else 
  mov r2.x, r0.y
endif 
mul r7.xyzw, r2.xxxx, r7.xyzw
mul r8.xyzw, r2.xxxx, r8.xyzw
mul r9.xyzw, r2.xxxx, r9.xyzw
mul r5.xyzw, r2.xxxx, r5.xyzw
mul r6.xyzw, r2.xxxx, r6.xyzw
if_nz r1.w
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r9.xz, r9.zzxz
  mov r5.xz, r5.zzxz
  mov r6.xz, r6.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r10.y, r13.w, l(0x00008000), r2.x
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r10.z, r13.w, l(0x00008000), r2.x
  mov_sat r9.xyzw, r9.xyzw
  mad r13.xyzw, r9.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r10.w, r13.w, l(0x00008000), r2.x
  mov_sat r5.xyzw, r5.xyzw
  mad r13.xyzw, r5.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r10.x, r13.w, l(0x00008000), r2.x
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r12.x, r13.w, l(0x00008000), r2.x
  break 
  case l(4)
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(2048), r2.x
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.z, r3.w, l(2048), r2.x
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.w, r3.w, l(2048), r2.x
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(2048), r2.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r12.x, r3.w, l(2048), r2.x
  break 
  case l(5)
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(1024), r2.x
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.z, r3.w, l(1024), r2.x
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.w, r3.w, l(1024), r2.x
  mov_sat r5.xyz, r5.xyzx
  mad r3.yzw, r5.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(1024), r2.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r12.x, r3.w, l(1024), r2.x
  break 
  case l(10)
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.y, r3.z, l(256), r3.y
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.z, r3.z, l(256), r3.y
  mov_sat r9.xy, r9.xyxx
  mad r3.yz, r9.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.w, r3.z, l(256), r3.y
  mov_sat r5.xy, r5.xyxx
  mad r3.yz, r5.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.x, r3.z, l(256), r3.y
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r12.x, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r10.y, r13.w, l(4096), r2.x
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r10.z, r13.w, l(4096), r2.x
  mov_sat r9.xyzw, r9.xyzw
  mad r13.xyzw, r9.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r10.w, r13.w, l(4096), r2.x
  mov_sat r5.xyzw, r5.xyzw
  mad r13.xyzw, r5.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r10.x, r13.w, l(4096), r2.x
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r12.x, r13.w, l(4096), r2.x
  break 
  case l(24)
  mov_sat r7.x, r7.x
  mad r2.x, r7.x, l(65535.000000), l(0.500000)
  ftou r10.y, r2.x
  mov_sat r8.x, r8.x
  mad r2.x, r8.x, l(65535.000000), l(0.500000)
  ftou r10.z, r2.x
  mov_sat r9.x, r9.x
  mad r2.x, r9.x, l(65535.000000), l(0.500000)
  ftou r10.w, r2.x
  mov_sat r5.x, r5.x
  mad r2.x, r5.x, l(65535.000000), l(0.500000)
  ftou r10.x, r2.x
  mov_sat r6.x, r6.x
  mad r2.x, r6.x, l(65535.000000), l(0.500000)
  ftou r12.x, r2.x
  break 
  default 
  f32tof16 r10.y, r7.x
  f32tof16 r10.z, r8.x
  f32tof16 r10.w, r9.x
  f32tof16 r10.x, r5.x
  f32tof16 r12.x, r6.x
  break 
endswitch 
if_nz r1.y
  bfi r5.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r10.yzwx, l(0, 0, 0, 0)
  ushr r6.xyzw, r10.yzwx, l(8, 8, 8, 8)
  iadd r10.xyzw, r5.wxyz, r6.wxyz
  bfi r2.x, l(8), l(8), r12.x, l(0)
  ushr r3.y, r12.x, l(8)
  iadd r12.x, r2.x, r3.y
  mov r3.yz, r10.yywy
  mov r11.y, r10.z
else 
  mov r3.yz, r10.yywy
  mov r11.y, r10.z
endif 
ld_raw r5.xyzw, r2.w, T0[0].wxyz
switch r1.z
  case l(0)
  case l(1)
  ushr r9.yzw, r5.yyyy, l(0, 8, 16, 24)
  mov r9.x, r5.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, r5.zzzz, l(0, 8, 16, 24)
  mov r9.x, r5.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, r5.wwww, l(0, 8, 16, 24)
  mov r9.x, r5.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 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, r5.yyyy, l(0, 10, 20, 30)
  mov r9.x, r5.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, r5.zzzz, l(0, 10, 20, 30)
  mov r9.x, r5.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, r5.wwww, l(0, 10, 20, 30)
  mov r9.x, r5.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 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, r5.yyyz, l(10, 20, 30, 30)
  mov r13.x, r5.y
  mov r13.yz, r9.xxyx
  and r14.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
  and r15.xyz, r13.xyzx, l(127, 127, 127, 0)
  ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r17.xyz, r15.xyzx
  iadd r17.xyz, r17.xyzx, l(-24, -24, -24, 0)
  movc r17.xyz, r15.xyzx, r17.xyzx, l(8,8,8,0)
  iadd r18.xyz, -r17.xyzx, l(1, 1, 1, 0)
  movc r18.xyz, r16.xyzx, r16.xyzx, r18.xyzx
  bfi r13.xyz, l(7, 7, 7, 0), r17.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r16.xyzx, r15.xyzx, r13.xyzx
  ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
  iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r15.xyzx, r13.xyzx
  movc r6.xyz, r14.xyzx, r13.xyzx, l(0,0,0,0)
  utof r2.xw, r9.zzzw
  ushr r9.xyzw, r5.zwwz, l(10, 10, 20, 20)
  mov r13.x, r5.z
  mov r13.yz, r9.xxwx
  and r14.xyz, r13.xyzx, l(1023, 1023, 1023, 0)
  and r15.xyz, r13.xyzx, l(127, 127, 127, 0)
  ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r17.xyz, r15.xyzx
  iadd r17.xyz, r17.xyzx, l(-24, -24, -24, 0)
  movc r17.xyz, r15.xyzx, r17.xyzx, l(8,8,8,0)
  iadd r18.xyz, -r17.xyzx, l(1, 1, 1, 0)
  movc r18.xyz, r16.xyzx, r16.xyzx, r18.xyzx
  bfi r13.xyz, l(7, 7, 7, 0), r17.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r16.xyzx, r15.xyzx, r13.xyzx
  ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
  iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r15.xyzx, r13.xyzx
  movc r7.xyz, r14.xyzx, r13.xyzx, l(0,0,0,0)
  mul r2.xw, r2.xxxw, l(0.333333, 0.000000, 0.000000, 0.333333)
  mov r9.x, r5.w
  and r13.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r14.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
  firstbit_hi r16.xyz, r14.xyzx
  iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
  movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
  iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
  movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
  bfi r9.xyz, l(7, 7, 7, 0), r16.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r15.xyzx, r14.xyzx, r9.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r14.xyzx, r9.xyzx
  movc r8.xyz, r13.xyzx, r9.xyzx, l(0,0,0,0)
  ushr r9.xyzw, r5.wxxx, l(30, 10, 20, 30)
  utof r10.zw, r9.xxxw
  mov r9.x, r5.x
  and r13.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r14.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
  firstbit_hi r16.xyz, r14.xyzx
  iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
  movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
  iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
  movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
  bfi r9.xyz, l(7, 7, 7, 0), r16.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r15.xyzx, r14.xyzx, r9.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r14.xyzx, r9.xyzx
  movc r5.xyz, r13.xyzx, r9.xyzx, l(0,0,0,0)
  mul r9.xy, r10.zwzz, l(0.333333, 0.333333, 0.000000, 0.000000)
  mov r6.w, r2.x
  mov r7.w, r2.w
  mov r8.w, r9.x
  mov r5.w, r9.y
  break 
  case l(4)
  ishl r9.xyzw, r5.yzwx, l(16, 16, 16, 16)
  mov r13.xz, r9.xxyx
  mov r13.yw, r5.yyyz
  ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
  itof r13.xyzw, r13.xyzw
  mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
  max r6.xy, r13.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.xy, r13.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r5.yz, r9.zzwz
  ishr r9.xyzw, r5.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 r5.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 r5.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r9.xyzw, r5.yzwx, l(16, 16, 16, 16)
  f16tof32 r6.x, r5.y
  f16tof32 r6.y, r9.x
  f16tof32 r7.x, r5.z
  f16tof32 r7.y, r9.y
  f16tof32 r8.x, r5.w
  f16tof32 r8.y, r9.z
  f16tof32 r5.x, r5.x
  f16tof32 r5.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 r5.zw, l(0,0,0,0)
  break 
  default 
  mov r6.x, r5.y
  mov r6.yzw, l(0,0,0,0)
  mov r7.x, r5.z
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r5.w
  mov r8.yzw, l(0,0,0,0)
  mov r5.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r2.x, r0.y, l(0.500000)
  iadd r2.w, r0.x, l(2900)
  ld_raw r9.xyzw, r2.w, T0[0].wxyz
  switch r1.z
    case l(0)
    case l(1)
    ushr r16.yzw, r9.yyyy, l(0, 8, 16, 24)
    mov r16.x, r9.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, r9.zzzz, l(0, 8, 16, 24)
    mov r16.x, r9.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, r9.wwww, l(0, 8, 16, 24)
    mov r16.x, r9.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 r9.yzw, r9.xxxx, l(0, 8, 16, 24)
    and r16.xyzw, r9.xyzw, l(255, 255, 255, 255)
    utof r16.xyzw, r16.xyzw
    mul r9.xyzw, r16.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r16.yzw, r9.yyyy, l(0, 10, 20, 30)
    mov r16.x, r9.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, r9.zzzz, l(0, 10, 20, 30)
    mov r16.x, r9.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, r9.wwww, l(0, 10, 20, 30)
    mov r16.x, r9.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 r9.yzw, r9.xxxx, l(0, 10, 20, 30)
    and r16.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
    utof r16.xyzw, r16.xyzw
    mul r9.xyzw, r16.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r16.xyzw, r9.yyyz, l(10, 20, 30, 30)
    mov r17.x, r9.y
    mov r17.yz, r16.xxyx
    and r18.xyz, r17.xyzx, l(1023, 1023, 1023, 0)
    and r19.xyz, r17.xyzx, l(127, 127, 127, 0)
    ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.xyzx
    firstbit_hi r21.xyz, r19.xyzx
    iadd r21.xyz, r21.xyzx, l(-24, -24, -24, 0)
    movc r21.xyz, r19.xyzx, r21.xyzx, l(8,8,8,0)
    iadd r22.xyz, -r21.xyzx, l(1, 1, 1, 0)
    movc r22.xyz, r20.xyzx, r20.xyzx, r22.xyzx
    bfi r17.xyz, l(7, 7, 7, 0), r21.xyzx, r17.xyzx, l(0, 0, 0, 0)
    and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r20.xyzx, r19.xyzx, r17.xyzx
    ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
    iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r17.xyz, r17.xyzx, l(16, 16, 16, 0)
    iadd r17.xyz, r19.xyzx, r17.xyzx
    movc r13.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
    utof r10.zw, r16.zzzw
    ushr r16.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r17.x, r9.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 r10.zw, r10.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r16.x, r9.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, r9.wxxx, l(30, 10, 20, 30)
    utof r11.zw, r16.xxxw
    mov r16.x, r9.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 r9.xyz, r17.xyzx, r16.xyzx, l(0,0,0,0)
    mul r11.zw, r11.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r13.w, r10.z
    mov r14.w, r10.w
    mov r15.w, r11.z
    mov r9.w, r11.w
    break 
    case l(4)
    ishl r16.xyzw, r9.yzwx, l(16, 16, 16, 16)
    mov r17.xz, r16.xxyx
    mov r17.yw, r9.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 r9.yz, r16.zzwz
    ishr r16.xyzw, r9.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 r9.xy, r16.zwzz, 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 r9.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r16.xyzw, r9.yzwx, l(16, 16, 16, 16)
    f16tof32 r13.x, r9.y
    f16tof32 r13.y, r16.x
    f16tof32 r14.x, r9.z
    f16tof32 r14.y, r16.y
    f16tof32 r15.x, r9.w
    f16tof32 r15.y, r16.z
    f16tof32 r9.x, r9.x
    f16tof32 r9.y, r16.w
    mov r13.zw, l(0,0,0,0)
    mov r14.zw, l(0,0,0,0)
    mov r15.zw, l(0,0,0,0)
    mov r9.zw, l(0,0,0,0)
    break 
    default 
    mov r13.x, r9.y
    mov r13.yzw, l(0,0,0,0)
    mov r14.x, r9.z
    mov r14.yzw, l(0,0,0,0)
    mov r15.x, r9.w
    mov r15.yzw, l(0,0,0,0)
    mov r9.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r6.xyzw, r6.xyzw, r13.xyzw
  add r7.xyzw, r7.xyzw, r14.xyzw
  add r8.xyzw, r8.xyzw, r15.xyzw
  add r5.xyzw, r5.xyzw, r9.xyzw
  uge r2.w, r2.y, l(6)
  if_nz r2.w
    mul r2.x, r0.y, l(0.250000)
    iadd r9.xy, r0.xxxx, l(56, 2936, 0, 0)
    ld_raw r13.xyzw, r9.x, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r17.yzw, r13.yyyy, l(0, 8, 16, 24)
      mov r17.x, r13.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, r13.zzzz, l(0, 8, 16, 24)
      mov r17.x, r13.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, r13.wwww, l(0, 8, 16, 24)
      mov r17.x, r13.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 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, r13.yyyy, l(0, 10, 20, 30)
      mov r17.x, r13.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, r13.zzzz, l(0, 10, 20, 30)
      mov r17.x, r13.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, r13.wwww, l(0, 10, 20, 30)
      mov r17.x, r13.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 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, r13.yyyz, l(10, 20, 30, 30)
      mov r18.x, r13.y
      mov r18.yz, r17.xxyx
      and r9.xzw, r18.xxyz, l(1023, 0, 1023, 1023)
      and r19.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.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 r18.xyz, l(7, 7, 7, 0), r21.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r20.xyzx, r19.xyzx, r18.xyzx
      ishl r19.xyz, r22.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 r14.xyz, r9.xzwx, r18.xyzx, l(0,0,0,0)
      utof r9.xz, r17.zzwz
      ushr r17.xyzw, r13.zwwz, l(10, 10, 20, 20)
      mov r18.x, r13.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 r9.xz, r9.xxzx, l(0.333333, 0.000000, 0.333333, 0.000000)
      mov r17.x, r13.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, r13.wxxx, l(30, 10, 20, 30)
      utof r10.zw, r17.xxxw
      mov r17.x, r13.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 r13.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      mul r10.zw, r10.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r14.w, r9.x
      mov r15.w, r9.z
      mov r16.w, r10.z
      mov r13.w, r10.w
      break 
      case l(4)
      ishl r17.xyzw, r13.yzwx, l(16, 16, 16, 16)
      mov r18.xz, r17.xxyx
      mov r18.yw, r13.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 r13.yz, r17.zzwz
      ishr r17.xyzw, r13.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 r13.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 r13.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r17.xyzw, r13.yzwx, l(16, 16, 16, 16)
      f16tof32 r14.x, r13.y
      f16tof32 r14.y, r17.x
      f16tof32 r15.x, r13.z
      f16tof32 r15.y, r17.y
      f16tof32 r16.x, r13.w
      f16tof32 r16.y, r17.z
      f16tof32 r13.x, r13.x
      f16tof32 r13.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 r13.zw, l(0,0,0,0)
      break 
      default 
      mov r14.x, r13.y
      mov r14.yzw, l(0,0,0,0)
      mov r15.x, r13.z
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r13.w
      mov r16.yzw, l(0,0,0,0)
      mov r13.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r14.xyzw, r6.xyzw, r14.xyzw
    add r15.xyzw, r7.xyzw, r15.xyzw
    add r16.xyzw, r8.xyzw, r16.xyzw
    add r13.xyzw, r5.xyzw, r13.xyzw
    ld_raw r9.xyzw, r9.y, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r20.yzw, r9.yyyy, l(0, 8, 16, 24)
      mov r20.x, r9.y
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r17.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r20.yzw, r9.zzzz, l(0, 8, 16, 24)
      mov r20.x, r9.z
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r18.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r20.yzw, r9.wwww, l(0, 8, 16, 24)
      mov r20.x, r9.w
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r19.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r9.yzw, r9.xxxx, l(0, 8, 16, 24)
      and r20.xyzw, r9.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r9.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r20.yzw, r9.yyyy, l(0, 10, 20, 30)
      mov r20.x, r9.y
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r17.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r20.yzw, r9.zzzz, l(0, 10, 20, 30)
      mov r20.x, r9.z
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r18.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r20.yzw, r9.wwww, l(0, 10, 20, 30)
      mov r20.x, r9.w
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r19.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r9.yzw, r9.xxxx, l(0, 10, 20, 30)
      and r20.xyzw, r9.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r9.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r20.xyzw, r9.yyyz, l(10, 20, 30, 30)
      mov r21.x, r9.y
      mov r21.yz, r20.xxyx
      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)
      utof r10.zw, r20.zzzw
      ushr r20.xyzw, r9.zwwz, l(10, 10, 20, 20)
      mov r21.x, r9.z
      mov r21.yz, r20.xxwx
      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 r18.xyz, r22.xyzx, r21.xyzx, l(0,0,0,0)
      mul r10.zw, r10.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r20.x, r9.w
      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 r19.xyz, r21.xyzx, r20.xyzx, l(0,0,0,0)
      ushr r20.xyzw, r9.wxxx, l(30, 10, 20, 30)
      utof r11.zw, r20.xxxw
      mov r20.x, r9.x
      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 r9.xyz, r21.xyzx, r20.xyzx, l(0,0,0,0)
      mul r11.zw, r11.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r17.w, r10.z
      mov r18.w, r10.w
      mov r19.w, r11.z
      mov r9.w, r11.w
      break 
      case l(4)
      ishl r20.xyzw, r9.yzwx, l(16, 16, 16, 16)
      mov r21.xz, r20.xxyx
      mov r21.yw, r9.yyyz
      ishr r21.xyzw, r21.xyzw, 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 r17.xy, r21.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r18.xy, r21.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r9.yz, r20.zzwz
      ishr r20.xyzw, r9.ywzx, 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 r19.xy, r20.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r9.xy, r20.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r20.xyzw, r9.yzwx, l(16, 16, 16, 16)
      f16tof32 r17.x, r9.y
      f16tof32 r17.y, r20.x
      f16tof32 r18.x, r9.z
      f16tof32 r18.y, r20.y
      f16tof32 r19.x, r9.w
      f16tof32 r19.y, r20.z
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r20.w
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r9.zw, l(0,0,0,0)
      break 
      default 
      mov r17.x, r9.y
      mov r17.yzw, l(0,0,0,0)
      mov r18.x, r9.z
      mov r18.yzw, l(0,0,0,0)
      mov r19.x, r9.w
      mov r19.yzw, l(0,0,0,0)
      mov r9.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r6.xyzw, r14.xyzw, r17.xyzw
    add r7.xyzw, r15.xyzw, r18.xyzw
    add r8.xyzw, r16.xyzw, r19.xyzw
    add r5.xyzw, r9.xyzw, r13.xyzw
  endif 
else 
  mov r2.x, r0.y
endif 
mul r6.xyzw, r2.xxxx, r6.xyzw
mul r7.xyzw, r2.xxxx, r7.xyzw
mul r8.xyzw, r2.xxxx, r8.xyzw
mul r5.xyzw, r2.xxxx, r5.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r5.xz, r5.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r9.z, r13.w, l(0x00008000), r2.x
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r9.w, r13.w, l(0x00008000), r2.x
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r9.x, r13.w, l(0x00008000), r2.x
  mov_sat r5.xyzw, r5.xyzw
  mad r13.xyzw, r5.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(32), r13.x
  imad r2.x, r13.z, l(1024), r2.x
  imad r9.y, r13.w, l(0x00008000), r2.x
  break 
  case l(4)
  mov_sat r6.xyz, r6.xyzx
  mad r13.xyz, r6.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.z, r13.z, l(2048), r2.x
  mov_sat r7.xyz, r7.xyzx
  mad r13.xyz, r7.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.w, r13.z, l(2048), r2.x
  mov_sat r8.xyz, r8.xyzx
  mad r13.xyz, r8.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.x, r13.z, l(2048), r2.x
  mov_sat r5.xyz, r5.xyzx
  mad r13.xyz, r5.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.y, r13.z, l(2048), r2.x
  break 
  case l(5)
  mov_sat r6.xyz, r6.xyzx
  mad r13.xyz, r6.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.z, r13.z, l(1024), r2.x
  mov_sat r7.xyz, r7.xyzx
  mad r13.xyz, r7.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.w, r13.z, l(1024), r2.x
  mov_sat r8.xyz, r8.xyzx
  mad r13.xyz, r8.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.x, r13.z, l(1024), r2.x
  mov_sat r5.xyz, r5.xyzx
  mad r13.xyz, r5.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r13.xyz, r13.xyzx
  imad r2.x, r13.y, l(32), r13.x
  imad r9.y, r13.z, l(1024), r2.x
  break 
  case l(10)
  mov_sat r6.xy, r6.xyxx
  mad r2.xw, r6.xxxy, l(255.000000, 0.000000, 0.000000, 255.000000), l(0.500000, 0.000000, 0.000000, 0.500000)
  ftou r2.xw, r2.xxxw
  imad r9.z, r2.w, l(256), r2.x
  mov_sat r7.xy, r7.xyxx
  mad r2.xw, r7.xxxy, l(255.000000, 0.000000, 0.000000, 255.000000), l(0.500000, 0.000000, 0.000000, 0.500000)
  ftou r2.xw, r2.xxxw
  imad r9.w, r2.w, l(256), r2.x
  mov_sat r8.xy, r8.xyxx
  mad r2.xw, r8.xxxy, l(255.000000, 0.000000, 0.000000, 255.000000), l(0.500000, 0.000000, 0.000000, 0.500000)
  ftou r2.xw, r2.xxxw
  imad r9.x, r2.w, l(256), r2.x
  mov_sat r5.xy, r5.xyxx
  mad r2.xw, r5.xxxy, l(255.000000, 0.000000, 0.000000, 255.000000), l(0.500000, 0.000000, 0.000000, 0.500000)
  ftou r2.xw, r2.xxxw
  imad r9.y, r2.w, l(256), r2.x
  break 
  case l(15)
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r9.z, r13.w, l(4096), r2.x
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r9.w, r13.w, l(4096), r2.x
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r9.x, r13.w, l(4096), r2.x
  mov_sat r5.xyzw, r5.xyzw
  mad r13.xyzw, r5.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r2.x, r13.y, l(16), r13.x
  imad r2.x, r13.z, l(256), r2.x
  imad r9.y, r13.w, l(4096), r2.x
  break 
  case l(24)
  mov_sat r6.x, r6.x
  mad r2.x, r6.x, l(65535.000000), l(0.500000)
  ftou r9.z, r2.x
  mov_sat r7.x, r7.x
  mad r2.x, r7.x, l(65535.000000), l(0.500000)
  ftou r9.w, r2.x
  mov_sat r8.x, r8.x
  mad r2.x, r8.x, l(65535.000000), l(0.500000)
  ftou r9.x, r2.x
  mov_sat r5.x, r5.x
  mad r2.x, r5.x, l(65535.000000), l(0.500000)
  ftou r9.y, r2.x
  break 
  default 
  f32tof16 r9.z, r6.x
  f32tof16 r9.w, r7.x
  f32tof16 r9.x, r8.x
  f32tof16 r9.y, r5.x
  break 
endswitch 
if_nz r1.y
  bfi r5.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r9.zwxy, l(0, 0, 0, 0)
  ushr r6.xyzw, r9.zwxy, l(8, 8, 8, 8)
  iadd r9.xyzw, r5.zwxy, r6.zwxy
  mov r10.y, r9.z
  mov r12.y, r9.w
else 
  mov r10.y, r9.z
  mov r12.y, r9.w
endif 
if_nz r0.w
  mov r3.yz, r10.xxyx
  mov r11.y, r12.x
endif 
imad r5.xyzw, r3.yzyy, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r11.xyxx
store_uav_typed U0[0].xyzw, r4.yyyy, r5.xyzw
imad r5.xyzw, r12.xyxx, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r10.xyxx
store_uav_typed U0[0].xyzw, r4.zzzz, r5.xyzw
imad r5.xzw, r9.yyyy, l(0x00010000, 0, 0x00010000, 0x00010000), r9.xxxx
iadd r0.x, r0.z, r0.x
ld_raw r6.xyzw, r0.x, T0[0].wxyz
iadd r2.xw, r0.xxxx, l(16, 0, 0, 20)
ld_raw r7.x, r2.x, T0[0].xxxx
switch r1.z
  case l(0)
  case l(1)
  ushr r11.yzw, r6.yyyy, l(0, 8, 16, 24)
  mov r11.x, r6.y
  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, r6.zzzz, l(0, 8, 16, 24)
  mov r11.x, r6.z
  and r11.xyzw, r11.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r9.xyzw, r11.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r11.yzw, r6.wwww, l(0, 8, 16, 24)
  mov r11.x, r6.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 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)
  ushr r7.yzw, r7.xxxx, l(0, 8, 16, 24)
  and r11.xyzw, r7.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)
  break 
  case l(2)
  case l(10)
  ushr r11.yzw, r6.yyyy, l(0, 10, 20, 30)
  mov r11.x, r6.y
  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, r6.zzzz, l(0, 10, 20, 30)
  mov r11.x, r6.z
  and r11.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r9.xyzw, r11.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r11.yzw, r6.wwww, l(0, 10, 20, 30)
  mov r11.x, r6.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 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)
  ushr r7.yzw, r7.xxxx, l(0, 10, 20, 30)
  and r11.xyzw, r7.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)
  break 
  case l(3)
  case l(12)
  ushr r11.xyzw, r6.yyyz, l(10, 20, 30, 30)
  mov r4.x, r6.y
  mov r4.yz, r11.xxyx
  and r3.yzw, r4.xxyz, l(0, 1023, 1023, 1023)
  and r12.xyz, r4.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r14.xyzx, r4.xyzx, l(0, 0, 0, 0)
  and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
  movc r4.xyz, r13.xyzx, r12.xyzx, r4.xyzx
  ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
  iadd r4.xyz, r12.xyzx, r4.xyzx
  movc r8.xyz, r3.yzwy, r4.xyzx, l(0,0,0,0)
  utof r3.yz, r11.zzwz
  ushr r11.xyzw, r6.zwwz, l(10, 10, 20, 20)
  mov r4.x, r6.z
  mov r4.yz, r11.xxwx
  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 r9.xyz, r12.xyzx, r4.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r11.x, r6.w
  and r4.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r11.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.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 r11.xyz, l(7, 7, 7, 0), r14.xyzx, r11.xyzx, l(0, 0, 0, 0)
  and r11.xyz, r11.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r13.xyzx, r12.xyzx, r11.xyzx
  ishl r12.xyz, r15.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 r10.xyz, r4.xyzx, r11.xyzx, l(0,0,0,0)
  ushr r11.xyzw, r6.wxxx, l(30, 10, 20, 30)
  utof r4.xy, r11.xwxx
  mov r11.x, r6.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 r6.xyz, r12.xyzx, r11.xyzx, l(0,0,0,0)
  mul r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  ushr r7.yzw, r7.xxxx, l(0, 10, 20, 30)
  and r11.xyz, r7.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r7.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r7.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, r7.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 r7.xyz, r11.xyzx, r12.xyzx, l(0,0,0,0)
  utof r2.x, r7.w
  mul r7.w, r2.x, l(0.333333)
  mov r8.w, r3.y
  mov r9.w, r3.z
  mov r10.w, r4.x
  mov r6.w, r4.y
  break 
  case l(4)
  ishl r11.xyzw, r6.yzwx, l(16, 16, 16, 16)
  mov r12.xz, r11.xxyx
  mov r12.yw, r6.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 r8.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r9.xy, r12.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r6.yz, r11.zzwz
  ishr r11.xyzw, r6.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 r6.xy, r11.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  ishl r7.y, r7.x, l(16)
  ishr r3.yz, r7.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 r7.xy, r3.yzyy, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r10.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r11.xyzw, r6.yzwx, l(16, 16, 16, 16)
  f16tof32 r8.x, r6.y
  f16tof32 r8.y, r11.x
  f16tof32 r9.x, r6.z
  f16tof32 r9.y, r11.y
  f16tof32 r10.x, r6.w
  f16tof32 r10.y, r11.z
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r11.w
  ushr r2.x, r7.x, l(16)
  f16tof32 r7.x, r7.x
  f16tof32 r7.y, r2.x
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r10.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  break 
  default 
  mov r8.x, r6.y
  mov r8.yzw, l(0,0,0,0)
  mov r9.x, r6.z
  mov r9.yzw, l(0,0,0,0)
  mov r10.x, r6.w
  mov r10.yzw, l(0,0,0,0)
  mov r6.yzw, l(0,0,0,0)
  mov r7.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r2.x, r0.y, l(0.500000)
  iadd r3.yz, r0.xxxx, l(0, 2880, 2896, 0)
  ld_raw r11.xyzw, r3.y, T0[0].wxyz
  ld_raw r12.x, r3.z, 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 r3.yzw, r4.xxyz, l(0, 1023, 1023, 1023)
    and r17.xyz, r4.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r19.xyzx, r4.xyzx, l(0, 0, 0, 0)
    and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
    movc r4.xyz, r18.xyzx, r17.xyzx, r4.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
    iadd r4.xyz, r17.xyzx, r4.xyzx
    movc r13.xyz, r3.yzwy, r4.xyzx, l(0,0,0,0)
    utof r3.yz, r16.zzwz
    ushr r16.xyzw, r11.zwwz, l(10, 10, 20, 20)
    mov r4.x, r11.z
    mov r4.yz, r16.xxwx
    and r17.xyz, r4.xyzx, l(1023, 1023, 1023, 0)
    and r18.xyz, r4.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
    firstbit_hi r20.xyz, r18.xyzx
    iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
    movc r20.xyz, r18.xyzx, r20.xyzx, l(8,8,8,0)
    iadd r21.xyz, -r20.xyzx, l(1, 1, 1, 0)
    movc r21.xyz, r19.xyzx, r19.xyzx, r21.xyzx
    bfi r4.xyz, l(7, 7, 7, 0), r20.xyzx, r4.xyzx, l(0, 0, 0, 0)
    and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
    movc r4.xyz, r19.xyzx, r18.xyzx, r4.xyzx
    ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
    iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
    iadd r4.xyz, r18.xyzx, r4.xyzx
    movc r14.xyz, r17.xyzx, r4.xyzx, l(0,0,0,0)
    mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r16.x, r11.w
    and r4.xyz, r16.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r16.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.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 r16.xyz, l(7, 7, 7, 0), r19.xyzx, r16.xyzx, l(0, 0, 0, 0)
    and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
    movc r16.xyz, r18.xyzx, r17.xyzx, r16.xyzx
    ishl r17.xyz, r20.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 r15.xyz, r4.xyzx, r16.xyzx, l(0,0,0,0)
    ushr r16.xyzw, r11.wxxx, l(30, 10, 20, 30)
    utof r4.xy, r16.xwxx
    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 r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    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 r3.w, r12.w
    mul r12.w, r3.w, l(0.333333)
    mov r13.w, r3.y
    mov r14.w, r3.z
    mov r15.w, r4.x
    mov r11.w, r4.y
    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 r3.yz, r12.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 r12.xy, r3.yzyy, 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 r3.y, r12.x, l(16)
    f16tof32 r12.x, r12.x
    f16tof32 r12.y, r3.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 r8.xyzw, r8.xyzw, r13.xyzw
  add r9.xyzw, r9.xyzw, r14.xyzw
  add r10.xyzw, r10.xyzw, r15.xyzw
  add r6.xyzw, r6.xyzw, r11.xyzw
  add r7.xyzw, r7.xyzw, r12.xyzw
  uge r3.y, r2.y, l(6)
  if_nz r3.y
    mul r2.x, 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 r3.yzw, r4.xxyz, l(0, 1023, 1023, 1023)
      and r18.xyz, r4.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.xyzx
      firstbit_hi r20.xyz, r18.xyzx
      iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
      movc r20.xyz, r18.xyzx, r20.xyzx, l(8,8,8,0)
      iadd r21.xyz, -r20.xyzx, l(1, 1, 1, 0)
      movc r21.xyz, r19.xyzx, r19.xyzx, r21.xyzx
      bfi r4.xyz, l(7, 7, 7, 0), r20.xyzx, r4.xyzx, l(0, 0, 0, 0)
      and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
      movc r4.xyz, r19.xyzx, r18.xyzx, r4.xyzx
      ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
      iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
      iadd r4.xyz, r18.xyzx, r4.xyzx
      movc r14.xyz, r3.yzwy, r4.xyzx, l(0,0,0,0)
      utof r3.yz, r17.zzwz
      ushr r17.xyzw, r12.zwwz, l(10, 10, 20, 20)
      mov r4.x, r12.z
      mov r4.yz, r17.xxwx
      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 r15.xyz, r18.xyzx, r4.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r17.x, r12.w
      and r4.xyz, r17.xyzx, l(1023, 1023, 1023, 0)
      and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
      and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
      movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
      ishl r18.xyz, r21.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 r16.xyz, r4.xyzx, r17.xyzx, l(0,0,0,0)
      ushr r17.xyzw, r12.wxxx, l(30, 10, 20, 30)
      utof r4.xy, r17.xwxx
      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 r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      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 r3.w, r13.w
      mul r13.w, r3.w, l(0.333333)
      mov r14.w, r3.y
      mov r15.w, r3.z
      mov r16.w, r4.x
      mov r12.w, r4.y
      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 r3.yz, r13.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 r13.xy, r3.yzyy, 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 r3.y, r13.x, l(16)
      f16tof32 r13.x, r13.x
      f16tof32 r13.y, r3.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, r8.xyzw, r14.xyzw
    add r15.xyzw, r9.xyzw, r15.xyzw
    add r16.xyzw, r10.xyzw, r16.xyzw
    add r12.xyzw, r6.xyzw, r12.xyzw
    add r13.xyzw, r7.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 r3.yzw, r4.xxyz, l(0, 1023, 1023, 1023)
      and r22.xyz, r4.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r4.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 r4.xyz, l(7, 7, 7, 0), r24.xyzx, r4.xyzx, l(0, 0, 0, 0)
      and r4.xyz, r4.xyzx, l(127, 127, 127, 0)
      movc r4.xyz, r23.xyzx, r22.xyzx, r4.xyzx
      ishl r22.xyz, r25.xyzx, l(23, 23, 23, 0)
      iadd r22.xyz, r22.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r4.xyz, r4.xyzx, l(16, 16, 16, 0)
      iadd r4.xyz, r22.xyzx, r4.xyzx
      movc r18.xyz, r3.yzwy, r4.xyzx, l(0,0,0,0)
      utof r3.yz, r21.zzwz
      ushr r21.xyzw, r17.zwwz, l(10, 10, 20, 20)
      mov r4.x, r17.z
      mov r4.yz, r21.xxwx
      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 r19.xyz, r22.xyzx, r4.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r21.x, r17.w
      and r4.xyz, r21.xyzx, l(1023, 1023, 1023, 0)
      and r22.xyz, r21.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r21.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 r21.xyz, l(7, 7, 7, 0), r24.xyzx, r21.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r21.xyz, r23.xyzx, r22.xyzx, r21.xyzx
      ishl r22.xyz, r25.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 r20.xyz, r4.xyzx, r21.xyzx, l(0,0,0,0)
      ushr r21.xyzw, r17.wxxx, l(30, 10, 20, 30)
      utof r4.xy, r21.xwxx
      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 r4.xy, r4.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      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 r3.w, r11.w
      mul r11.w, r3.w, l(0.333333)
      mov r18.w, r3.y
      mov r19.w, r3.z
      mov r20.w, r4.x
      mov r17.w, r4.y
      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 r3.yz, r11.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 r11.xy, r3.yzyy, 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 r3.y, r11.x, l(16)
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r3.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 r8.xyzw, r14.xyzw, r18.xyzw
    add r9.xyzw, r15.xyzw, r19.xyzw
    add r10.xyzw, r16.xyzw, r20.xyzw
    add r6.xyzw, r12.xyzw, r17.xyzw
    add r7.xyzw, r11.xyzw, r13.xyzw
  endif 
else 
  mov r2.x, r0.y
endif 
mul r8.xyzw, r2.xxxx, r8.xyzw
mul r9.xyzw, r2.xxxx, r9.xyzw
mul r10.xyzw, r2.xxxx, r10.xyzw
mul r6.xyzw, r2.xxxx, r6.xyzw
mul r7.xyzw, r2.xxxx, r7.xyzw
if_nz r1.w
  mov r8.xz, r8.zzxz
  mov r9.xz, r9.zzxz
  mov r10.xz, r10.zzxz
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(32), r12.x
  imad r2.x, r12.z, l(1024), r2.x
  imad r11.y, r12.w, l(0x00008000), r2.x
  mov_sat r9.xyzw, r9.xyzw
  mad r12.xyzw, r9.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(32), r12.x
  imad r2.x, r12.z, l(1024), r2.x
  imad r11.x, r12.w, l(0x00008000), r2.x
  mov_sat r10.xyzw, r10.xyzw
  mad r12.xyzw, r10.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(32), r12.x
  imad r2.x, r12.z, l(1024), r2.x
  imad r11.z, r12.w, l(0x00008000), r2.x
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(32), r12.x
  imad r2.x, r12.z, l(1024), r2.x
  imad r11.w, r12.w, l(0x00008000), r2.x
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(32), r12.x
  imad r2.x, r12.z, l(1024), r2.x
  imad r4.y, r12.w, l(0x00008000), r2.x
  break 
  case l(4)
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.y, r3.w, l(2048), r2.x
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.x, r3.w, l(2048), r2.x
  mov_sat r10.xyz, r10.xyzx
  mad r3.yzw, r10.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.z, r3.w, l(2048), r2.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.w, r3.w, l(2048), r2.x
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r4.y, r3.w, l(2048), r2.x
  break 
  case l(5)
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.y, r3.w, l(1024), r2.x
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.x, r3.w, l(1024), r2.x
  mov_sat r10.xyz, r10.xyzx
  mad r3.yzw, r10.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.z, r3.w, l(1024), r2.x
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r11.w, r3.w, l(1024), r2.x
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.x, r3.z, l(32), r3.y
  imad r4.y, r3.w, l(1024), r2.x
  break 
  case l(10)
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.y, r3.z, l(256), r3.y
  mov_sat r9.xy, r9.xyxx
  mad r3.yz, r9.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.x, r3.z, l(256), r3.y
  mov_sat r10.xy, r10.xyxx
  mad r3.yz, r10.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.z, r3.z, l(256), r3.y
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r11.w, r3.z, l(256), r3.y
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r4.y, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(16), r12.x
  imad r2.x, r12.z, l(256), r2.x
  imad r11.y, r12.w, l(4096), r2.x
  mov_sat r9.xyzw, r9.xyzw
  mad r12.xyzw, r9.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(16), r12.x
  imad r2.x, r12.z, l(256), r2.x
  imad r11.x, r12.w, l(4096), r2.x
  mov_sat r10.xyzw, r10.xyzw
  mad r12.xyzw, r10.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(16), r12.x
  imad r2.x, r12.z, l(256), r2.x
  imad r11.z, r12.w, l(4096), r2.x
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(16), r12.x
  imad r2.x, r12.z, l(256), r2.x
  imad r11.w, r12.w, l(4096), r2.x
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.x, r12.y, l(16), r12.x
  imad r2.x, r12.z, l(256), r2.x
  imad r4.y, r12.w, l(4096), r2.x
  break 
  case l(24)
  mov_sat r8.x, r8.x
  mad r2.x, r8.x, l(65535.000000), l(0.500000)
  ftou r11.y, r2.x
  mov_sat r9.x, r9.x
  mad r2.x, r9.x, l(65535.000000), l(0.500000)
  ftou r11.x, r2.x
  mov_sat r10.x, r10.x
  mad r2.x, r10.x, l(65535.000000), l(0.500000)
  ftou r11.z, r2.x
  mov_sat r6.x, r6.x
  mad r2.x, r6.x, l(65535.000000), l(0.500000)
  ftou r11.w, r2.x
  mov_sat r7.x, r7.x
  mad r2.x, r7.x, l(65535.000000), l(0.500000)
  ftou r4.y, r2.x
  break 
  default 
  f32tof16 r11.y, r8.x
  f32tof16 r11.x, r9.x
  f32tof16 r11.z, r10.x
  f32tof16 r11.w, r6.x
  f32tof16 r4.y, r7.x
  break 
endswitch 
if_nz r1.y
  bfi r6.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r11.yxzw, l(0, 0, 0, 0)
  ushr r7.xyzw, r11.yxzw, l(8, 8, 8, 8)
  iadd r11.xyzw, r6.yxzw, r7.yxzw
  bfi r2.x, l(8), l(8), r4.y, l(0)
  ushr r3.y, r4.y, l(8)
  iadd r4.y, r2.x, r3.y
  mov r2.x, r11.y
  mov r4.x, r11.z
else 
  mov r2.x, r11.y
  mov r4.x, r11.z
endif 
ld_raw r6.xyzw, r2.w, T0[0].wxyz
switch r1.z
  case l(0)
  case l(1)
  ushr r10.yzw, r6.yyyy, l(0, 8, 16, 24)
  mov r10.x, r6.y
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r7.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r10.yzw, r6.zzzz, l(0, 8, 16, 24)
  mov r10.x, r6.z
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r8.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r10.yzw, r6.wwww, l(0, 8, 16, 24)
  mov r10.x, r6.w
  and r10.xyzw, r10.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r9.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r6.yzw, r6.xxxx, l(0, 8, 16, 24)
  and r10.xyzw, r6.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r6.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r10.yzw, r6.yyyy, l(0, 10, 20, 30)
  mov r10.x, r6.y
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r7.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r10.yzw, r6.zzzz, l(0, 10, 20, 30)
  mov r10.x, r6.z
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r8.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r10.yzw, r6.wwww, l(0, 10, 20, 30)
  mov r10.x, r6.w
  and r10.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r9.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r10.xyzw, r6.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r6.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r10.xyzw, r6.yyyz, l(10, 20, 30, 30)
  mov r12.x, r6.y
  mov r12.yz, r10.xxyx
  and r3.yzw, r12.xxyz, l(0, 1023, 1023, 1023)
  and r13.xyz, r12.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r12.xyz, l(7, 7, 7, 0), r15.xyzx, r12.xyzx, l(0, 0, 0, 0)
  and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
  movc r12.xyz, r14.xyzx, r13.xyzx, r12.xyzx
  ishl r13.xyz, r16.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 r7.xyz, r3.yzwy, r12.xyzx, l(0,0,0,0)
  utof r3.yz, r10.zzwz
  ushr r10.xyzw, r6.zwwz, l(10, 10, 20, 20)
  mov r12.x, r6.z
  mov r12.yz, r10.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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r10.x, r6.w
  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 r9.xyz, r12.xyzx, r10.xyzx, l(0,0,0,0)
  ushr r10.xyzw, r6.wxxx, l(30, 10, 20, 30)
  utof r12.xy, r10.xwxx
  mov r10.x, r6.x
  and r13.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  and r14.xyz, r10.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.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 r10.xyz, l(7, 7, 7, 0), r16.xyzx, r10.xyzx, l(0, 0, 0, 0)
  and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
  movc r10.xyz, r15.xyzx, r14.xyzx, r10.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r10.xyz, r10.xyzx, l(16, 16, 16, 0)
  iadd r10.xyz, r14.xyzx, r10.xyzx
  movc r6.xyz, r13.xyzx, r10.xyzx, l(0,0,0,0)
  mul r10.xy, r12.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  mov r7.w, r3.y
  mov r8.w, r3.z
  mov r9.w, r10.x
  mov r6.w, r10.y
  break 
  case l(4)
  ishl r10.xyzw, r6.yzwx, l(16, 16, 16, 16)
  mov r12.xz, r10.xxyx
  mov r12.yw, r6.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 r6.yz, r10.zzwz
  ishr r10.xyzw, r6.ywzx, 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 r9.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r6.xy, r10.zwzz, 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 r9.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r10.xyzw, r6.yzwx, l(16, 16, 16, 16)
  f16tof32 r7.x, r6.y
  f16tof32 r7.y, r10.x
  f16tof32 r8.x, r6.z
  f16tof32 r8.y, r10.y
  f16tof32 r9.x, r6.w
  f16tof32 r9.y, r10.z
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r10.w
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  default 
  mov r7.x, r6.y
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r6.z
  mov r8.yzw, l(0,0,0,0)
  mov r9.x, r6.w
  mov r9.yzw, l(0,0,0,0)
  mov r6.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r2.w, r0.y, l(0.500000)
  iadd r3.y, r0.x, l(2900)
  ld_raw r10.xyzw, r3.y, T0[0].wxyz
  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)
    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)
    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 r3.yzw, r16.xxyz, l(0, 1023, 1023, 1023)
    and r17.xyz, r16.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.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 r16.xyz, l(7, 7, 7, 0), r19.xyzx, r16.xyzx, l(0, 0, 0, 0)
    and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
    movc r16.xyz, r18.xyzx, r17.xyzx, r16.xyzx
    ishl r17.xyz, r20.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 r12.xyz, r3.yzwy, r16.xyzx, l(0,0,0,0)
    utof r3.yz, r15.zzwz
    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.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    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 r16.xy, r15.xwxx
    mov r15.x, r10.x
    and r17.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r18.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r20.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r19.xyzx, r18.xyzx, r15.xyzx
    ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
    iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r18.xyzx, r15.xyzx
    movc r10.xyz, r17.xyzx, r15.xyzx, l(0,0,0,0)
    mul r15.xy, r16.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r12.w, r3.y
    mov r13.w, r3.z
    mov r14.w, r15.x
    mov r10.w, r15.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)
    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)
    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
    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)
    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)
    break 
  endswitch 
  add r7.xyzw, r7.xyzw, r12.xyzw
  add r8.xyzw, r8.xyzw, r13.xyzw
  add r9.xyzw, r9.xyzw, r14.xyzw
  add r6.xyzw, r6.xyzw, r10.xyzw
  uge r3.y, r2.y, l(6)
  if_nz r3.y
    mul r2.w, r0.y, l(0.250000)
    iadd r3.yz, r0.xxxx, l(0, 56, 2936, 0)
    ld_raw r10.xyzw, r3.y, T0[0].wxyz
    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)
      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)
      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.yw, 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.yw, r3.yyyw, l(0.000000, 0.333333, 0.000000, 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 r16.xy, r15.xwxx
      mov r15.x, r10.x
      and r17.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
      and r18.xyz, r15.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.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 r15.xyz, l(7, 7, 7, 0), r20.xyzx, r15.xyzx, l(0, 0, 0, 0)
      and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
      movc r15.xyz, r19.xyzx, r18.xyzx, r15.xyzx
      ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
      iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
      iadd r15.xyz, r18.xyzx, r15.xyzx
      movc r10.xyz, r17.xyzx, r15.xyzx, l(0,0,0,0)
      mul r15.xy, r16.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r12.w, r3.y
      mov r13.w, r3.w
      mov r14.w, r15.x
      mov r10.w, r15.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)
      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)
      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
      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)
      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)
      break 
    endswitch 
    add r12.xyzw, r7.xyzw, r12.xyzw
    add r13.xyzw, r8.xyzw, r13.xyzw
    add r14.xyzw, r9.xyzw, r14.xyzw
    add r10.xyzw, r6.xyzw, r10.xyzw
    ld_raw r15.xyzw, r3.z, T0[0].wxyz
    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)
      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)
      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 r3.yzw, r20.xxyz, l(0, 1023, 1023, 1023)
      and r21.xyz, r20.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r20.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 r20.xyz, l(7, 7, 7, 0), r23.xyzx, r20.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r20.xyz, r22.xyzx, r21.xyzx, r20.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r20.xyz, r20.xyzx, l(16, 16, 16, 0)
      iadd r20.xyz, r21.xyzx, r20.xyzx
      movc r16.xyz, r3.yzwy, r20.xyzx, l(0,0,0,0)
      utof r3.yz, r19.zzwz
      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.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      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)
      mov r16.w, r3.y
      mov r17.w, r3.z
      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)
      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)
      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
      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)
      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)
      break 
    endswitch 
    add r7.xyzw, r12.xyzw, r16.xyzw
    add r8.xyzw, r13.xyzw, r17.xyzw
    add r9.xyzw, r14.xyzw, r18.xyzw
    add r6.xyzw, r10.xyzw, r15.xyzw
  endif 
else 
  mov r2.w, r0.y
endif 
mul r7.xyzw, r2.wwww, r7.xyzw
mul r8.xyzw, r2.wwww, r8.xyzw
mul r9.xyzw, r2.wwww, r9.xyzw
mul r6.xyzw, r2.wwww, r6.xyzw
if_nz r1.w
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r9.xz, r9.zzxz
  mov r6.xz, r6.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r10.w, r12.w, l(0x00008000), r2.w
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r10.x, r12.w, l(0x00008000), r2.w
  mov_sat r9.xyzw, r9.xyzw
  mad r12.xyzw, r9.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r10.y, r12.w, l(0x00008000), r2.w
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(32), r12.x
  imad r2.w, r12.z, l(1024), r2.w
  imad r10.z, r12.w, l(0x00008000), r2.w
  break 
  case l(4)
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.w, r3.w, l(2048), r2.w
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(2048), r2.w
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(2048), r2.w
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.z, r3.w, l(2048), r2.w
  break 
  case l(5)
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.w, r3.w, l(1024), r2.w
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.x, r3.w, l(1024), r2.w
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(1024), r2.w
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r2.w, r3.z, l(32), r3.y
  imad r10.z, r3.w, l(1024), r2.w
  break 
  case l(10)
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.w, r3.z, l(256), r3.y
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.x, r3.z, l(256), r3.y
  mov_sat r9.xy, r9.xyxx
  mad r3.yz, r9.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.y, r3.z, l(256), r3.y
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.z, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r7.xyzw, r7.xyzw
  mad r12.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r10.w, r12.w, l(4096), r2.w
  mov_sat r8.xyzw, r8.xyzw
  mad r12.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r10.x, r12.w, l(4096), r2.w
  mov_sat r9.xyzw, r9.xyzw
  mad r12.xyzw, r9.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r10.y, r12.w, l(4096), r2.w
  mov_sat r6.xyzw, r6.xyzw
  mad r12.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r12.xyzw, r12.xyzw
  imad r2.w, r12.y, l(16), r12.x
  imad r2.w, r12.z, l(256), r2.w
  imad r10.z, r12.w, l(4096), r2.w
  break 
  case l(24)
  mov_sat r7.x, r7.x
  mad r2.w, r7.x, l(65535.000000), l(0.500000)
  ftou r10.w, r2.w
  mov_sat r8.x, r8.x
  mad r2.w, r8.x, l(65535.000000), l(0.500000)
  ftou r10.x, r2.w
  mov_sat r9.x, r9.x
  mad r2.w, r9.x, l(65535.000000), l(0.500000)
  ftou r10.y, r2.w
  mov_sat r6.x, r6.x
  mad r2.w, r6.x, l(65535.000000), l(0.500000)
  ftou r10.z, r2.w
  break 
  default 
  f32tof16 r10.w, r7.x
  f32tof16 r10.x, r8.x
  f32tof16 r10.y, r9.x
  f32tof16 r10.z, r6.x
  break 
endswitch 
if_nz r1.y
  bfi r6.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r10.wxyz, l(0, 0, 0, 0)
  ushr r7.xyzw, r10.wxyz, l(8, 8, 8, 8)
  iadd r10.xyzw, r6.yzwx, r7.yzwx
  mov r11.y, r10.w
else 
  mov r11.y, r10.w
endif 
if_nz r0.w
  mov r2.x, r11.w
  mov r11.x, r4.y
  mov r4.x, r11.y
endif 
imad r5.y, r11.x, l(0x00010000), r2.x
store_uav_typed U0[0].xyzw, r4.wwww, r5.xyzw
iadd r5.xyzw, r1.xxxx, l(5, 6, 7, 8)
imad r4.xyzw, r11.wyww, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r4.xyxx
store_uav_typed U0[0].xyzw, r5.xxxx, r4.xyzw
imad r4.xzw, r10.yyyy, l(0x00010000, 0, 0x00010000, 0x00010000), r10.xxxx
iadd r0.x, r0.z, r0.x
ld_raw r6.xyzw, r0.x, T0[0].wxyz
iadd r2.xw, r0.xxxx, l(16, 0, 0, 20)
ld_raw r7.x, r2.x, T0[0].xxxx
switch r1.z
  case l(0)
  case l(1)
  ushr r12.yzw, r6.yyyy, l(0, 8, 16, 24)
  mov r12.x, r6.y
  and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
  utof r12.xyzw, r12.xyzw
  mul r8.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r12.yzw, r6.zzzz, l(0, 8, 16, 24)
  mov r12.x, r6.z
  and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
  utof r12.xyzw, r12.xyzw
  mul r9.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r12.yzw, r6.wwww, l(0, 8, 16, 24)
  mov r12.x, r6.w
  and r12.xyzw, r12.xyzw, l(255, 255, 255, 255)
  utof r12.xyzw, r12.xyzw
  mul r11.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r6.yzw, r6.xxxx, l(0, 8, 16, 24)
  and r12.xyzw, r6.xyzw, l(255, 255, 255, 255)
  utof r12.xyzw, r12.xyzw
  mul r6.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  ushr r7.yzw, r7.xxxx, l(0, 8, 16, 24)
  and r12.xyzw, r7.xyzw, l(255, 255, 255, 255)
  utof r12.xyzw, r12.xyzw
  mul r7.xyzw, r12.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r12.yzw, r6.yyyy, l(0, 10, 20, 30)
  mov r12.x, r6.y
  and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
  utof r12.xyzw, r12.xyzw
  mul r8.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r12.yzw, r6.zzzz, l(0, 10, 20, 30)
  mov r12.x, r6.z
  and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
  utof r12.xyzw, r12.xyzw
  mul r9.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r12.yzw, r6.wwww, l(0, 10, 20, 30)
  mov r12.x, r6.w
  and r12.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
  utof r12.xyzw, r12.xyzw
  mul r11.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r6.yzw, r6.xxxx, l(0, 10, 20, 30)
  and r12.xyzw, r6.xyzw, l(1023, 1023, 1023, 3)
  utof r12.xyzw, r12.xyzw
  mul r6.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  ushr r7.yzw, r7.xxxx, l(0, 10, 20, 30)
  and r12.xyzw, r7.xyzw, l(1023, 1023, 1023, 3)
  utof r12.xyzw, r12.xyzw
  mul r7.xyzw, r12.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r12.xyzw, r6.yyyz, l(10, 20, 30, 30)
  mov r13.x, r6.y
  mov r13.yz, r12.xxyx
  and r3.yzw, r13.xxyz, l(0, 1023, 1023, 1023)
  and r10.xyw, r13.xyxz, l(127, 127, 0, 127)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r15.xyz, r10.xywx
  iadd r15.xyz, r15.xyzx, l(-24, -24, -24, 0)
  movc r15.xyz, r10.xywx, 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 r13.xyz, l(7, 7, 7, 0), r15.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r10.xyw, r14.xyxz, r10.xyxw, r13.xyxz
  ishl r13.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r13.xyz, r13.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r10.xyw, r10.xyxw, l(16, 16, 0, 16)
  iadd r10.xyw, r13.xyxz, r10.xyxw
  movc r8.xyz, r3.yzwy, r10.xywx, l(0,0,0,0)
  utof r3.yz, r12.zzwz
  ushr r12.xyzw, r6.zwwz, l(10, 10, 20, 20)
  mov r13.x, r6.z
  mov r13.yz, r12.xxwx
  and r10.xyw, r13.xyxz, l(1023, 1023, 0, 1023)
  and r14.xyz, r13.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r16.xyz, r14.xyzx
  iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
  movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
  iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
  movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
  bfi r13.xyz, l(7, 7, 7, 0), r16.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r15.xyzx, r14.xyzx, r13.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r14.xyzx, r13.xyzx
  movc r9.xyz, r10.xywx, r13.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r12.x, r6.w
  and r10.xyw, r12.xyxz, l(1023, 1023, 0, 1023)
  and r13.xyz, r12.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r12.xyz, l(7, 7, 7, 0), r15.xyzx, r12.xyzx, l(0, 0, 0, 0)
  and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
  movc r12.xyz, r14.xyzx, r13.xyzx, r12.xyzx
  ishl r13.xyz, r16.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 r11.xyz, r10.xywx, r12.xyzx, l(0,0,0,0)
  ushr r12.xyzw, r6.wxxx, l(30, 10, 20, 30)
  utof r10.xy, r12.xwxx
  mov r12.x, r6.x
  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 r6.xyz, r13.xyzx, r12.xyzx, l(0,0,0,0)
  mul r10.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  ushr r7.yzw, r7.xxxx, l(0, 10, 20, 30)
  and r12.xyz, r7.xyzx, l(1023, 1023, 1023, 0)
  and r13.xyz, r7.xyzx, l(127, 127, 127, 0)
  ubfe r14.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r7.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 r15.xyz, l(7, 7, 7, 0), r15.xyzx, r7.xyzx, l(0, 0, 0, 0)
  and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r14.xyzx, r13.xyzx, r15.xyzx
  ishl r14.xyz, r16.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r14.xyzx, r13.xyzx
  movc r7.xyz, r12.xyzx, r13.xyzx, l(0,0,0,0)
  utof r0.z, r7.w
  mul r7.w, r0.z, l(0.333333)
  mov r8.w, r3.y
  mov r9.w, r3.z
  mov r11.w, r10.x
  mov r6.w, r10.y
  break 
  case l(4)
  ishl r12.xyzw, r6.yzwx, l(16, 16, 16, 16)
  mov r13.xz, r12.xxyx
  mov r13.yw, r6.yyyz
  ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
  itof r13.xyzw, r13.xyzw
  mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
  max r8.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 r6.yz, r12.zzwz
  ishr r12.xyzw, r6.ywzx, l(16, 16, 16, 16)
  itof r12.xyzw, r12.xyzw
  mul r12.xyzw, r12.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
  max r11.xy, r12.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r6.xy, r12.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  ishl r7.y, r7.x, l(16)
  ishr r3.yz, r7.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 r7.xy, r3.yzyy, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r11.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r12.xyzw, r6.yzwx, l(16, 16, 16, 16)
  f16tof32 r8.x, r6.y
  f16tof32 r8.y, r12.x
  f16tof32 r9.x, r6.z
  f16tof32 r9.y, r12.y
  f16tof32 r11.x, r6.w
  f16tof32 r11.y, r12.z
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r12.w
  ushr r0.z, r7.x, l(16)
  f16tof32 r7.x, r7.x
  f16tof32 r7.y, r0.z
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r11.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  break 
  default 
  mov r8.x, r6.y
  mov r8.yzw, l(0,0,0,0)
  mov r9.x, r6.z
  mov r9.yzw, l(0,0,0,0)
  mov r11.x, r6.w
  mov r11.yzw, l(0,0,0,0)
  mov r6.yzw, l(0,0,0,0)
  mov r7.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r0.z, r0.y, l(0.500000)
  iadd r3.yz, r0.xxxx, l(0, 2880, 2896, 0)
  ld_raw r12.xyzw, r3.y, T0[0].wxyz
  ld_raw r13.x, r3.z, 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 r18.x, r12.y
    mov r18.yz, r17.xxyx
    and r3.yzw, r18.xxyz, l(0, 1023, 1023, 1023)
    and r10.xyw, r18.xyxz, l(127, 127, 0, 127)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
    firstbit_hi r20.xyz, r10.xywx
    iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
    movc r20.xyz, r10.xywx, 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 r18.xyz, l(7, 7, 7, 0), r20.xyzx, r18.xyzx, l(0, 0, 0, 0)
    and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
    movc r10.xyw, r19.xyxz, r10.xyxw, r18.xyxz
    ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
    iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r10.xyw, r10.xyxw, l(16, 16, 0, 16)
    iadd r10.xyw, r18.xyxz, r10.xyxw
    movc r14.xyz, r3.yzwy, r10.xywx, l(0,0,0,0)
    utof r3.yz, r17.zzwz
    ushr r17.xyzw, r12.zwwz, l(10, 10, 20, 20)
    mov r18.x, r12.z
    mov r18.yz, r17.xxwx
    and r10.xyw, r18.xyxz, l(1023, 1023, 0, 1023)
    and r19.xyz, r18.xyzx, l(127, 127, 127, 0)
    ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.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 r18.xyz, l(7, 7, 7, 0), r21.xyzx, r18.xyzx, l(0, 0, 0, 0)
    and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
    movc r18.xyz, r20.xyzx, r19.xyzx, r18.xyzx
    ishl r19.xyz, r22.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 r15.xyz, r10.xywx, r18.xyzx, l(0,0,0,0)
    mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r17.x, r12.w
    and r10.xyw, r17.xyxz, l(1023, 1023, 0, 1023)
    and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
    and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
    ishl r18.xyz, r21.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 r16.xyz, r10.xywx, r17.xyzx, l(0,0,0,0)
    ushr r17.xyzw, r12.wxxx, l(30, 10, 20, 30)
    utof r10.xy, r17.xwxx
    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 r10.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    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 r2.x, r13.w
    mul r13.w, r2.x, l(0.333333)
    mov r14.w, r3.y
    mov r15.w, r3.z
    mov r16.w, r10.x
    mov r12.w, r10.y
    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 r3.yz, r13.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 r13.xy, r3.yzyy, 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 r2.x, r13.x, l(16)
    f16tof32 r13.x, r13.x
    f16tof32 r13.y, r2.x
    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 r8.xyzw, r8.xyzw, r14.xyzw
  add r9.xyzw, r9.xyzw, r15.xyzw
  add r11.xyzw, r11.xyzw, r16.xyzw
  add r6.xyzw, r6.xyzw, r12.xyzw
  add r7.xyzw, r7.xyzw, r13.xyzw
  uge r2.x, r2.y, l(6)
  if_nz r2.x
    mul r0.z, r0.y, l(0.250000)
    iadd r12.xyzw, r0.xxxx, l(36, 52, 2916, 2932)
    ld_raw r13.xyzw, r12.x, T0[0].wxyz
    ld_raw r14.x, r12.y, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r18.yzw, r13.yyyy, l(0, 8, 16, 24)
      mov r18.x, r13.y
      and r18.xyzw, r18.xyzw, l(255, 255, 255, 255)
      utof r18.xyzw, r18.xyzw
      mul r15.xyzw, r18.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r18.yzw, r13.zzzz, l(0, 8, 16, 24)
      mov r18.x, r13.z
      and r18.xyzw, r18.xyzw, l(255, 255, 255, 255)
      utof r18.xyzw, r18.xyzw
      mul r16.xyzw, r18.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r18.yzw, r13.wwww, l(0, 8, 16, 24)
      mov r18.x, r13.w
      and r18.xyzw, r18.xyzw, l(255, 255, 255, 255)
      utof r18.xyzw, r18.xyzw
      mul r17.xyzw, r18.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r13.yzw, r13.xxxx, l(0, 8, 16, 24)
      and r18.xyzw, r13.xyzw, l(255, 255, 255, 255)
      utof r18.xyzw, r18.xyzw
      mul r13.xyzw, r18.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r14.xxxx, l(0, 8, 16, 24)
      and r18.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r18.xyzw, r18.xyzw
      mul r14.xyzw, r18.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r18.yzw, r13.yyyy, l(0, 10, 20, 30)
      mov r18.x, r13.y
      and r18.xyzw, r18.xyzw, l(1023, 1023, 1023, 3)
      utof r18.xyzw, r18.xyzw
      mul r15.xyzw, r18.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r18.yzw, r13.zzzz, l(0, 10, 20, 30)
      mov r18.x, r13.z
      and r18.xyzw, r18.xyzw, l(1023, 1023, 1023, 3)
      utof r18.xyzw, r18.xyzw
      mul r16.xyzw, r18.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r18.yzw, r13.wwww, l(0, 10, 20, 30)
      mov r18.x, r13.w
      and r18.xyzw, r18.xyzw, l(1023, 1023, 1023, 3)
      utof r18.xyzw, r18.xyzw
      mul r17.xyzw, r18.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r13.yzw, r13.xxxx, l(0, 10, 20, 30)
      and r18.xyzw, r13.xyzw, l(1023, 1023, 1023, 3)
      utof r18.xyzw, r18.xyzw
      mul r13.xyzw, r18.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r14.xxxx, l(0, 10, 20, 30)
      and r18.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r18.xyzw, r18.xyzw
      mul r14.xyzw, r18.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r18.xyzw, r13.yyyz, l(10, 20, 30, 30)
      mov r19.x, r13.y
      mov r19.yz, r18.xxyx
      and r3.yzw, r19.xxyz, l(0, 1023, 1023, 1023)
      and r10.xyw, r19.xyxz, l(127, 127, 0, 127)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r19.xyzx
      firstbit_hi r21.xyz, r10.xywx
      iadd r21.xyz, r21.xyzx, l(-24, -24, -24, 0)
      movc r21.xyz, r10.xywx, 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 r19.xyz, l(7, 7, 7, 0), r21.xyzx, r19.xyzx, l(0, 0, 0, 0)
      and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
      movc r10.xyw, r20.xyxz, r10.xyxw, r19.xyxz
      ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
      iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r10.xyw, r10.xyxw, l(16, 16, 0, 16)
      iadd r10.xyw, r19.xyxz, r10.xyxw
      movc r15.xyz, r3.yzwy, r10.xywx, l(0,0,0,0)
      utof r3.yz, r18.zzwz
      ushr r18.xyzw, r13.zwwz, l(10, 10, 20, 20)
      mov r19.x, r13.z
      mov r19.yz, r18.xxwx
      and r10.xyw, r19.xyxz, l(1023, 1023, 0, 1023)
      and r20.xyz, r19.xyzx, l(127, 127, 127, 0)
      ubfe r21.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r19.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 r19.xyz, l(7, 7, 7, 0), r22.xyzx, r19.xyzx, l(0, 0, 0, 0)
      and r19.xyz, r19.xyzx, l(127, 127, 127, 0)
      movc r19.xyz, r21.xyzx, r20.xyzx, r19.xyzx
      ishl r20.xyz, r23.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r19.xyz, r19.xyzx, l(16, 16, 16, 0)
      iadd r19.xyz, r20.xyzx, r19.xyzx
      movc r16.xyz, r10.xywx, r19.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r18.x, r13.w
      and r10.xyw, r18.xyxz, l(1023, 1023, 0, 1023)
      and r19.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.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 r18.xyz, l(7, 7, 7, 0), r21.xyzx, r18.xyzx, l(0, 0, 0, 0)
      and r18.xyz, r18.xyzx, l(127, 127, 127, 0)
      movc r18.xyz, r20.xyzx, r19.xyzx, r18.xyzx
      ishl r19.xyz, r22.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 r17.xyz, r10.xywx, r18.xyzx, l(0,0,0,0)
      ushr r18.xyzw, r13.wxxx, l(30, 10, 20, 30)
      utof r10.xy, r18.xwxx
      mov r18.x, r13.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 r13.xyz, r19.xyzx, r18.xyzx, l(0,0,0,0)
      mul r10.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      ushr r14.yzw, r14.xxxx, l(0, 10, 20, 30)
      and r18.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r19.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r21.xyz, l(7, 7, 7, 0), r21.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r19.xyz, r20.xyzx, r19.xyzx, r21.xyzx
      ishl r20.xyz, r22.xyzx, l(23, 23, 23, 0)
      iadd r20.xyz, r20.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r19.xyz, r19.xyzx, l(16, 16, 16, 0)
      iadd r19.xyz, r20.xyzx, r19.xyzx
      movc r14.xyz, r18.xyzx, r19.xyzx, l(0,0,0,0)
      utof r2.x, r14.w
      mul r14.w, r2.x, l(0.333333)
      mov r15.w, r3.y
      mov r16.w, r3.z
      mov r17.w, r10.x
      mov r13.w, r10.y
      break 
      case l(4)
      ishl r18.xyzw, r13.yzwx, l(16, 16, 16, 16)
      mov r19.xz, r18.xxyx
      mov r19.yw, r13.yyyz
      ishr r19.xyzw, r19.xyzw, 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 r15.xy, r19.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r16.xy, r19.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r13.yz, r18.zzwz
      ishr r18.xyzw, r13.ywzx, 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 r17.xy, r18.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r13.xy, r18.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r14.y, r14.x, l(16)
      ishr r3.yz, r14.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 r14.xy, r3.yzyy, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r18.xyzw, r13.yzwx, l(16, 16, 16, 16)
      f16tof32 r15.x, r13.y
      f16tof32 r15.y, r18.x
      f16tof32 r16.x, r13.z
      f16tof32 r16.y, r18.y
      f16tof32 r17.x, r13.w
      f16tof32 r17.y, r18.z
      f16tof32 r13.x, r13.x
      f16tof32 r13.y, r18.w
      ushr r2.x, r14.x, l(16)
      f16tof32 r14.x, r14.x
      f16tof32 r14.y, r2.x
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r17.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      break 
      default 
      mov r15.x, r13.y
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r13.z
      mov r16.yzw, l(0,0,0,0)
      mov r17.x, r13.w
      mov r17.yzw, l(0,0,0,0)
      mov r13.yzw, l(0,0,0,0)
      mov r14.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r15.xyzw, r8.xyzw, r15.xyzw
    add r16.xyzw, r9.xyzw, r16.xyzw
    add r17.xyzw, r11.xyzw, r17.xyzw
    add r13.xyzw, r6.xyzw, r13.xyzw
    add r14.xyzw, r7.xyzw, r14.xyzw
    ld_raw r18.xyzw, r12.z, T0[0].wxyz
    ld_raw r12.x, r12.w, T0[0].xxxx
    switch r1.z
      case l(0)
      case l(1)
      ushr r22.yzw, r18.yyyy, l(0, 8, 16, 24)
      mov r22.x, r18.y
      and r22.xyzw, r22.xyzw, l(255, 255, 255, 255)
      utof r22.xyzw, r22.xyzw
      mul r19.xyzw, r22.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r22.yzw, r18.zzzz, l(0, 8, 16, 24)
      mov r22.x, r18.z
      and r22.xyzw, r22.xyzw, l(255, 255, 255, 255)
      utof r22.xyzw, r22.xyzw
      mul r20.xyzw, r22.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r22.yzw, r18.wwww, l(0, 8, 16, 24)
      mov r22.x, r18.w
      and r22.xyzw, r22.xyzw, l(255, 255, 255, 255)
      utof r22.xyzw, r22.xyzw
      mul r21.xyzw, r22.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r18.yzw, r18.xxxx, l(0, 8, 16, 24)
      and r22.xyzw, r18.xyzw, l(255, 255, 255, 255)
      utof r22.xyzw, r22.xyzw
      mul r18.xyzw, r22.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r12.yzw, r12.xxxx, l(0, 8, 16, 24)
      and r22.xyzw, r12.xyzw, l(255, 255, 255, 255)
      utof r22.xyzw, r22.xyzw
      mul r12.xyzw, r22.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r22.yzw, r18.yyyy, l(0, 10, 20, 30)
      mov r22.x, r18.y
      and r22.xyzw, r22.xyzw, l(1023, 1023, 1023, 3)
      utof r22.xyzw, r22.xyzw
      mul r19.xyzw, r22.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r22.yzw, r18.zzzz, l(0, 10, 20, 30)
      mov r22.x, r18.z
      and r22.xyzw, r22.xyzw, l(1023, 1023, 1023, 3)
      utof r22.xyzw, r22.xyzw
      mul r20.xyzw, r22.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r22.yzw, r18.wwww, l(0, 10, 20, 30)
      mov r22.x, r18.w
      and r22.xyzw, r22.xyzw, l(1023, 1023, 1023, 3)
      utof r22.xyzw, r22.xyzw
      mul r21.xyzw, r22.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r18.yzw, r18.xxxx, l(0, 10, 20, 30)
      and r22.xyzw, r18.xyzw, l(1023, 1023, 1023, 3)
      utof r22.xyzw, r22.xyzw
      mul r18.xyzw, r22.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r12.yzw, r12.xxxx, l(0, 10, 20, 30)
      and r22.xyzw, r12.xyzw, l(1023, 1023, 1023, 3)
      utof r22.xyzw, r22.xyzw
      mul r12.xyzw, r22.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r22.xyzw, r18.yyyz, l(10, 20, 30, 30)
      mov r23.x, r18.y
      mov r23.yz, r22.xxyx
      and r3.yzw, r23.xxyz, l(0, 1023, 1023, 1023)
      and r10.xyw, r23.xyxz, l(127, 127, 0, 127)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r23.xyzx
      firstbit_hi r25.xyz, r10.xywx
      iadd r25.xyz, r25.xyzx, l(-24, -24, -24, 0)
      movc r25.xyz, r10.xywx, 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 r23.xyz, l(7, 7, 7, 0), r25.xyzx, r23.xyzx, l(0, 0, 0, 0)
      and r23.xyz, r23.xyzx, l(127, 127, 127, 0)
      movc r10.xyw, r24.xyxz, r10.xyxw, r23.xyxz
      ishl r23.xyz, r26.xyzx, l(23, 23, 23, 0)
      iadd r23.xyz, r23.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r10.xyw, r10.xyxw, l(16, 16, 0, 16)
      iadd r10.xyw, r23.xyxz, r10.xyxw
      movc r19.xyz, r3.yzwy, r10.xywx, l(0,0,0,0)
      utof r3.yz, r22.zzwz
      ushr r22.xyzw, r18.zwwz, l(10, 10, 20, 20)
      mov r23.x, r18.z
      mov r23.yz, r22.xxwx
      and r10.xyw, r23.xyxz, l(1023, 1023, 0, 1023)
      and r24.xyz, r23.xyzx, l(127, 127, 127, 0)
      ubfe r25.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r23.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 r23.xyz, l(7, 7, 7, 0), r26.xyzx, r23.xyzx, l(0, 0, 0, 0)
      and r23.xyz, r23.xyzx, l(127, 127, 127, 0)
      movc r23.xyz, r25.xyzx, r24.xyzx, r23.xyzx
      ishl r24.xyz, r27.xyzx, l(23, 23, 23, 0)
      iadd r24.xyz, r24.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r23.xyz, r23.xyzx, l(16, 16, 16, 0)
      iadd r23.xyz, r24.xyzx, r23.xyzx
      movc r20.xyz, r10.xywx, r23.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r22.x, r18.w
      and r10.xyw, r22.xyxz, l(1023, 1023, 0, 1023)
      and r23.xyz, r22.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r22.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 r22.xyz, l(7, 7, 7, 0), r25.xyzx, r22.xyzx, l(0, 0, 0, 0)
      and r22.xyz, r22.xyzx, l(127, 127, 127, 0)
      movc r22.xyz, r24.xyzx, r23.xyzx, r22.xyzx
      ishl r23.xyz, r26.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 r21.xyz, r10.xywx, r22.xyzx, l(0,0,0,0)
      ushr r22.xyzw, r18.wxxx, l(30, 10, 20, 30)
      utof r10.xy, r22.xwxx
      mov r22.x, r18.x
      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 r18.xyz, r23.xyzx, r22.xyzx, l(0,0,0,0)
      mul r10.xy, r10.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      ushr r12.yzw, r12.xxxx, l(0, 10, 20, 30)
      and r22.xyz, r12.xyzx, l(1023, 1023, 1023, 0)
      and r23.xyz, r12.xyzx, l(127, 127, 127, 0)
      ubfe r24.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r12.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 r25.xyz, l(7, 7, 7, 0), r25.xyzx, r12.xyzx, l(0, 0, 0, 0)
      and r25.xyz, r25.xyzx, l(127, 127, 127, 0)
      movc r23.xyz, r24.xyzx, r23.xyzx, r25.xyzx
      ishl r24.xyz, r26.xyzx, l(23, 23, 23, 0)
      iadd r24.xyz, r24.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r23.xyz, r23.xyzx, l(16, 16, 16, 0)
      iadd r23.xyz, r24.xyzx, r23.xyzx
      movc r12.xyz, r22.xyzx, r23.xyzx, l(0,0,0,0)
      utof r2.x, r12.w
      mul r12.w, r2.x, l(0.333333)
      mov r19.w, r3.y
      mov r20.w, r3.z
      mov r21.w, r10.x
      mov r18.w, r10.y
      break 
      case l(4)
      ishl r22.xyzw, r18.yzwx, l(16, 16, 16, 16)
      mov r23.xz, r22.xxyx
      mov r23.yw, r18.yyyz
      ishr r23.xyzw, r23.xyzw, l(16, 16, 16, 16)
      itof r23.xyzw, r23.xyzw
      mul r23.xyzw, r23.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r19.xy, r23.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r20.xy, r23.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r18.yz, r22.zzwz
      ishr r22.xyzw, r18.ywzx, 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 r21.xy, r22.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r18.xy, r22.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      ishl r12.y, r12.x, l(16)
      ishr r3.yz, r12.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 r12.xy, r3.yzyy, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r19.zw, l(0,0,0,0)
      mov r20.zw, l(0,0,0,0)
      mov r21.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r22.xyzw, r18.yzwx, l(16, 16, 16, 16)
      f16tof32 r19.x, r18.y
      f16tof32 r19.y, r22.x
      f16tof32 r20.x, r18.z
      f16tof32 r20.y, r22.y
      f16tof32 r21.x, r18.w
      f16tof32 r21.y, r22.z
      f16tof32 r18.x, r18.x
      f16tof32 r18.y, r22.w
      ushr r2.x, r12.x, l(16)
      f16tof32 r12.x, r12.x
      f16tof32 r12.y, r2.x
      mov r19.zw, l(0,0,0,0)
      mov r20.zw, l(0,0,0,0)
      mov r21.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      break 
      default 
      mov r19.x, r18.y
      mov r19.yzw, l(0,0,0,0)
      mov r20.x, r18.z
      mov r20.yzw, l(0,0,0,0)
      mov r21.x, r18.w
      mov r21.yzw, l(0,0,0,0)
      mov r18.yzw, l(0,0,0,0)
      mov r12.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r8.xyzw, r15.xyzw, r19.xyzw
    add r9.xyzw, r16.xyzw, r20.xyzw
    add r11.xyzw, r17.xyzw, r21.xyzw
    add r6.xyzw, r13.xyzw, r18.xyzw
    add r7.xyzw, r12.xyzw, r14.xyzw
  endif 
else 
  mov r0.z, r0.y
endif 
mul r8.xyzw, r0.zzzz, r8.xyzw
mul r9.xyzw, r0.zzzz, r9.xyzw
mul r11.xyzw, r0.zzzz, r11.xyzw
mul r6.xyzw, r0.zzzz, r6.xyzw
mul r7.xyzw, r0.zzzz, r7.xyzw
if_nz r1.w
  mov r8.xz, r8.zzxz
  mov r9.xz, r9.zzxz
  mov r11.xz, r11.zzxz
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(32), r13.x
  imad r0.z, r13.z, l(1024), r0.z
  imad r12.x, r13.w, l(0x00008000), r0.z
  mov_sat r9.xyzw, r9.xyzw
  mad r13.xyzw, r9.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(32), r13.x
  imad r0.z, r13.z, l(1024), r0.z
  imad r12.z, r13.w, l(0x00008000), r0.z
  mov_sat r11.xyzw, r11.xyzw
  mad r13.xyzw, r11.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(32), r13.x
  imad r0.z, r13.z, l(1024), r0.z
  imad r12.w, r13.w, l(0x00008000), r0.z
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(32), r13.x
  imad r0.z, r13.z, l(1024), r0.z
  imad r12.y, r13.w, l(0x00008000), r0.z
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(32), r13.x
  imad r0.z, r13.z, l(1024), r0.z
  imad r10.y, r13.w, l(0x00008000), r0.z
  break 
  case l(4)
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.x, r3.w, l(2048), r0.z
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.z, r3.w, l(2048), r0.z
  mov_sat r11.xyz, r11.xyzx
  mad r3.yzw, r11.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.w, r3.w, l(2048), r0.z
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.y, r3.w, l(2048), r0.z
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 63.000000, 31.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(2048), r0.z
  break 
  case l(5)
  mov_sat r8.xyz, r8.xyzx
  mad r3.yzw, r8.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.x, r3.w, l(1024), r0.z
  mov_sat r9.xyz, r9.xyzx
  mad r3.yzw, r9.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.z, r3.w, l(1024), r0.z
  mov_sat r11.xyz, r11.xyzx
  mad r3.yzw, r11.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.w, r3.w, l(1024), r0.z
  mov_sat r6.xyz, r6.xyzx
  mad r3.yzw, r6.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r12.y, r3.w, l(1024), r0.z
  mov_sat r7.xyz, r7.xyzx
  mad r3.yzw, r7.xxyz, l(0.000000, 31.000000, 31.000000, 63.000000), l(0.000000, 0.500000, 0.500000, 0.500000)
  ftou r3.yzw, r3.yyzw
  imad r0.z, r3.z, l(32), r3.y
  imad r10.y, r3.w, l(1024), r0.z
  break 
  case l(10)
  mov_sat r8.xy, r8.xyxx
  mad r3.yz, r8.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r12.x, r3.z, l(256), r3.y
  mov_sat r9.xy, r9.xyxx
  mad r3.yz, r9.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r12.z, r3.z, l(256), r3.y
  mov_sat r11.xy, r11.xyxx
  mad r3.yz, r11.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r12.w, r3.z, l(256), r3.y
  mov_sat r6.xy, r6.xyxx
  mad r3.yz, r6.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r12.y, r3.z, l(256), r3.y
  mov_sat r7.xy, r7.xyxx
  mad r3.yz, r7.xxyx, l(0.000000, 255.000000, 255.000000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  ftou r3.yz, r3.yyzy
  imad r10.y, r3.z, l(256), r3.y
  break 
  case l(15)
  mov_sat r8.xyzw, r8.xyzw
  mad r13.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(16), r13.x
  imad r0.z, r13.z, l(256), r0.z
  imad r12.x, r13.w, l(4096), r0.z
  mov_sat r9.xyzw, r9.xyzw
  mad r13.xyzw, r9.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(16), r13.x
  imad r0.z, r13.z, l(256), r0.z
  imad r12.z, r13.w, l(4096), r0.z
  mov_sat r11.xyzw, r11.xyzw
  mad r13.xyzw, r11.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(16), r13.x
  imad r0.z, r13.z, l(256), r0.z
  imad r12.w, r13.w, l(4096), r0.z
  mov_sat r6.xyzw, r6.xyzw
  mad r13.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(16), r13.x
  imad r0.z, r13.z, l(256), r0.z
  imad r12.y, r13.w, l(4096), r0.z
  mov_sat r7.xyzw, r7.xyzw
  mad r13.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r13.xyzw, r13.xyzw
  imad r0.z, r13.y, l(16), r13.x
  imad r0.z, r13.z, l(256), r0.z
  imad r10.y, r13.w, l(4096), r0.z
  break 
  case l(24)
  mov_sat r8.x, r8.x
  mad r0.z, r8.x, l(65535.000000), l(0.500000)
  ftou r12.x, r0.z
  mov_sat r9.x, r9.x
  mad r0.z, r9.x, l(65535.000000), l(0.500000)
  ftou r12.z, r0.z
  mov_sat r11.x, r11.x
  mad r0.z, r11.x, l(65535.000000), l(0.500000)
  ftou r12.w, r0.z
  mov_sat r6.x, r6.x
  mad r0.z, r6.x, l(65535.000000), l(0.500000)
  ftou r12.y, r0.z
  mov_sat r7.x, r7.x
  mad r0.z, r7.x, l(65535.000000), l(0.500000)
  ftou r10.y, r0.z
  break 
  default 
  f32tof16 r12.x, r8.x
  f32tof16 r12.z, r9.x
  f32tof16 r12.w, r11.x
  f32tof16 r12.y, r6.x
  f32tof16 r10.y, r7.x
  break 
endswitch 
if_nz r1.y
  bfi r6.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r12.xzwy, l(0, 0, 0, 0)
  ushr r7.xyzw, r12.xzwy, l(8, 8, 8, 8)
  iadd r12.xyzw, r6.xwyz, r7.xwyz
  bfi r0.z, l(8), l(8), r10.y, l(0)
  ushr r2.x, r10.y, l(8)
  iadd r10.y, r0.z, r2.x
  mov r0.z, r12.x
  mov r10.x, r12.w
  mov r12.xy, r12.zyzz
else 
  mov r0.z, r12.x
  mov r10.x, r12.w
  mov r12.xy, r12.zyzz
endif 
ld_raw r6.xyzw, r2.w, T0[0].wxyz
switch r1.z
  case l(0)
  case l(1)
  ushr r11.yzw, r6.yyyy, l(0, 8, 16, 24)
  mov r11.x, r6.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, r6.zzzz, l(0, 8, 16, 24)
  mov r11.x, r6.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, r6.wwww, l(0, 8, 16, 24)
  mov r11.x, r6.w
  and r11.xyzw, r11.xyzw, l(255, 255, 255, 255)
  utof r11.xyzw, r11.xyzw
  mul r9.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, r6.yyyy, l(0, 10, 20, 30)
  mov r11.x, r6.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, r6.zzzz, l(0, 10, 20, 30)
  mov r11.x, r6.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, r6.wwww, l(0, 10, 20, 30)
  mov r11.x, r6.w
  and r11.xyzw, r11.xyzw, l(1023, 1023, 1023, 3)
  utof r11.xyzw, r11.xyzw
  mul r9.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, r6.yyyz, l(10, 20, 30, 30)
  mov r13.x, r6.y
  mov r13.yz, r11.xxyx
  and r3.yzw, r13.xxyz, l(0, 1023, 1023, 1023)
  and r14.xyz, r13.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r16.xyz, r14.xyzx
  iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
  movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
  iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
  movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
  bfi r13.xyz, l(7, 7, 7, 0), r16.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r15.xyzx, r14.xyzx, r13.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r14.xyzx, r13.xyzx
  movc r7.xyz, r3.yzwy, r13.xyzx, l(0,0,0,0)
  utof r2.xw, r11.zzzw
  ushr r11.xyzw, r6.zwwz, l(10, 10, 20, 20)
  mov r13.x, r6.z
  mov r13.yz, r11.xxwx
  and r3.yzw, r13.xxyz, l(0, 1023, 1023, 1023)
  and r14.xyz, r13.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r13.xyzx
  firstbit_hi r16.xyz, r14.xyzx
  iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
  movc r16.xyz, r14.xyzx, r16.xyzx, l(8,8,8,0)
  iadd r17.xyz, -r16.xyzx, l(1, 1, 1, 0)
  movc r17.xyz, r15.xyzx, r15.xyzx, r17.xyzx
  bfi r13.xyz, l(7, 7, 7, 0), r16.xyzx, r13.xyzx, l(0, 0, 0, 0)
  and r13.xyz, r13.xyzx, l(127, 127, 127, 0)
  movc r13.xyz, r15.xyzx, r14.xyzx, r13.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r13.xyz, r13.xyzx, l(16, 16, 16, 0)
  iadd r13.xyz, r14.xyzx, r13.xyzx
  movc r8.xyz, r3.yzwy, r13.xyzx, l(0,0,0,0)
  mul r2.xw, r2.xxxw, l(0.333333, 0.000000, 0.000000, 0.333333)
  mov r11.x, r6.w
  and r3.yzw, r11.xxyz, l(0, 1023, 1023, 1023)
  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 r9.xyz, r3.yzwy, r11.xyzx, l(0,0,0,0)
  ushr r11.xyzw, r6.wxxx, l(30, 10, 20, 30)
  utof r3.yz, r11.xxwx
  mov r11.x, r6.x
  and r13.xyz, r11.xyzx, l(1023, 1023, 1023, 0)
  and r14.xyz, r11.xyzx, l(127, 127, 127, 0)
  ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r11.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 r11.xyz, l(7, 7, 7, 0), r16.xyzx, r11.xyzx, l(0, 0, 0, 0)
  and r11.xyz, r11.xyzx, l(127, 127, 127, 0)
  movc r11.xyz, r15.xyzx, r14.xyzx, r11.xyzx
  ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
  iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r11.xyz, r11.xyzx, l(16, 16, 16, 0)
  iadd r11.xyz, r14.xyzx, r11.xyzx
  movc r6.xyz, r13.xyzx, r11.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  mov r7.w, r2.x
  mov r8.w, r2.w
  mov r9.w, r3.y
  mov r6.w, r3.z
  break 
  case l(4)
  ishl r11.xyzw, r6.yzwx, l(16, 16, 16, 16)
  mov r13.xz, r11.xxyx
  mov r13.yw, r6.yyyz
  ishr r13.xyzw, r13.xyzw, l(16, 16, 16, 16)
  itof r13.xyzw, r13.xyzw
  mul r13.xyzw, r13.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
  max r7.xy, r13.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r8.xy, r13.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r6.yz, r11.zzwz
  ishr r11.xyzw, r6.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 r9.xy, r11.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r6.xy, r11.zwzz, 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 r9.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r11.xyzw, r6.yzwx, l(16, 16, 16, 16)
  f16tof32 r7.x, r6.y
  f16tof32 r7.y, r11.x
  f16tof32 r8.x, r6.z
  f16tof32 r8.y, r11.y
  f16tof32 r9.x, r6.w
  f16tof32 r9.y, r11.z
  f16tof32 r6.x, r6.x
  f16tof32 r6.y, r11.w
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r6.zw, l(0,0,0,0)
  break 
  default 
  mov r7.x, r6.y
  mov r7.yzw, l(0,0,0,0)
  mov r8.x, r6.z
  mov r8.yzw, l(0,0,0,0)
  mov r9.x, r6.w
  mov r9.yzw, l(0,0,0,0)
  mov r6.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r2.z
  mul r2.x, r0.y, l(0.500000)
  iadd r2.z, r0.x, l(2900)
  ld_raw r11.xyzw, r2.z, T0[0].wxyz
  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)
    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)
    break 
    case l(3)
    case l(12)
    ushr r16.xyzw, r11.yyyz, l(10, 20, 30, 30)
    mov r17.x, r11.y
    mov r17.yz, r16.xxyx
    and r3.yzw, r17.xxyz, l(0, 1023, 1023, 1023)
    and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
    and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
    ishl r18.xyz, r21.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 r13.xyz, r3.yzwy, r17.xyzx, l(0,0,0,0)
    utof r2.zw, r16.zzzw
    ushr r16.xyzw, r11.zwwz, l(10, 10, 20, 20)
    mov r17.x, r11.z
    mov r17.yz, r16.xxwx
    and r3.yzw, r17.xxyz, l(0, 1023, 1023, 1023)
    and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
    ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
    and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
    movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
    ishl r18.xyz, r21.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 r14.xyz, r3.yzwy, r17.xyzx, l(0,0,0,0)
    mul r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r16.x, r11.w
    and r3.yzw, r16.xxyz, l(0, 1023, 1023, 1023)
    and r17.xyz, r16.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.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 r16.xyz, l(7, 7, 7, 0), r19.xyzx, r16.xyzx, l(0, 0, 0, 0)
    and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
    movc r16.xyz, r18.xyzx, r17.xyzx, r16.xyzx
    ishl r17.xyz, r20.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 r15.xyz, r3.yzwy, r16.xyzx, l(0,0,0,0)
    ushr r16.xyzw, r11.wxxx, l(30, 10, 20, 30)
    utof r3.yz, r16.xxwx
    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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r13.w, r2.z
    mov r14.w, r2.w
    mov r15.w, r3.y
    mov r11.w, r3.z
    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)
    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)
    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
    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)
    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)
    break 
  endswitch 
  add r7.xyzw, r7.xyzw, r13.xyzw
  add r8.xyzw, r8.xyzw, r14.xyzw
  add r9.xyzw, r9.xyzw, r15.xyzw
  add r6.xyzw, r6.xyzw, r11.xyzw
  uge r2.y, r2.y, l(6)
  if_nz r2.y
    mul r0.y, r0.y, l(0.250000)
    iadd r2.yz, r0.xxxx, l(0, 56, 2936, 0)
    ld_raw r11.xyzw, r2.y, T0[0].wxyz
    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)
      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)
      break 
      case l(3)
      case l(12)
      ushr r16.xyzw, r11.yyyz, l(10, 20, 30, 30)
      mov r17.x, r11.y
      mov r17.yz, r16.xxyx
      and r3.yzw, r17.xxyz, l(0, 1023, 1023, 1023)
      and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
      and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
      movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
      ishl r18.xyz, r21.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 r13.xyz, r3.yzwy, r17.xyzx, l(0,0,0,0)
      utof r2.yw, r16.zzzw
      ushr r16.xyzw, r11.zwwz, l(10, 10, 20, 20)
      mov r17.x, r11.z
      mov r17.yz, r16.xxwx
      and r3.yzw, r17.xxyz, l(0, 1023, 1023, 1023)
      and r18.xyz, r17.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r17.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 r17.xyz, l(7, 7, 7, 0), r20.xyzx, r17.xyzx, l(0, 0, 0, 0)
      and r17.xyz, r17.xyzx, l(127, 127, 127, 0)
      movc r17.xyz, r19.xyzx, r18.xyzx, r17.xyzx
      ishl r18.xyz, r21.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 r14.xyz, r3.yzwy, r17.xyzx, l(0,0,0,0)
      mul r2.yw, r2.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      mov r16.x, r11.w
      and r3.yzw, r16.xxyz, l(0, 1023, 1023, 1023)
      and r17.xyz, r16.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r16.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 r16.xyz, l(7, 7, 7, 0), r19.xyzx, r16.xyzx, l(0, 0, 0, 0)
      and r16.xyz, r16.xyzx, l(127, 127, 127, 0)
      movc r16.xyz, r18.xyzx, r17.xyzx, r16.xyzx
      ishl r17.xyz, r20.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 r15.xyz, r3.yzwy, r16.xyzx, l(0,0,0,0)
      ushr r16.xyzw, r11.wxxx, l(30, 10, 20, 30)
      utof r3.yz, r16.xxwx
      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 r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r13.w, r2.y
      mov r14.w, r2.w
      mov r15.w, r3.y
      mov r11.w, r3.z
      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)
      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)
      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
      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)
      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)
      break 
    endswitch 
    add r13.xyzw, r7.xyzw, r13.xyzw
    add r14.xyzw, r8.xyzw, r14.xyzw
    add r15.xyzw, r9.xyzw, r15.xyzw
    add r11.xyzw, r6.xyzw, r11.xyzw
    ld_raw r16.xyzw, r2.z, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r20.yzw, r16.yyyy, l(0, 8, 16, 24)
      mov r20.x, r16.y
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r17.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r20.yzw, r16.zzzz, l(0, 8, 16, 24)
      mov r20.x, r16.z
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r18.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r20.yzw, r16.wwww, l(0, 8, 16, 24)
      mov r20.x, r16.w
      and r20.xyzw, r20.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r19.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r16.yzw, r16.xxxx, l(0, 8, 16, 24)
      and r20.xyzw, r16.xyzw, l(255, 255, 255, 255)
      utof r20.xyzw, r20.xyzw
      mul r16.xyzw, r20.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r20.yzw, r16.yyyy, l(0, 10, 20, 30)
      mov r20.x, r16.y
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r17.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r20.yzw, r16.zzzz, l(0, 10, 20, 30)
      mov r20.x, r16.z
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r18.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r20.yzw, r16.wwww, l(0, 10, 20, 30)
      mov r20.x, r16.w
      and r20.xyzw, r20.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r19.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r16.yzw, r16.xxxx, l(0, 10, 20, 30)
      and r20.xyzw, r16.xyzw, l(1023, 1023, 1023, 3)
      utof r20.xyzw, r20.xyzw
      mul r16.xyzw, r20.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r20.xyzw, r16.yyyz, l(10, 20, 30, 30)
      mov r21.x, r16.y
      mov r21.yz, r20.xxyx
      and r2.yzw, r21.xxyz, l(0, 1023, 1023, 1023)
      and r3.yzw, r21.xxyz, l(0, 127, 127, 127)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r21.xyzx
      firstbit_hi r23.xyz, r3.yzwy
      iadd r23.xyz, r23.xyzx, l(-24, -24, -24, 0)
      movc r23.xyz, r3.yzwy, 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 r21.xyz, l(7, 7, 7, 0), r23.xyzx, r21.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r3.yzw, r22.xxyz, r3.yyzw, r21.xxyz
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r3.yzw, r3.yyzw, l(0, 16, 16, 16)
      iadd r3.yzw, r21.xxyz, r3.yyzw
      movc r17.xyz, r2.yzwy, r3.yzwy, l(0,0,0,0)
      utof r2.yz, r20.zzwz
      ushr r20.xyzw, r16.zwwz, l(10, 10, 20, 20)
      mov r21.x, r16.z
      mov r21.yz, r20.xxwx
      and r3.yzw, r21.xxyz, l(0, 1023, 1023, 1023)
      and r22.xyz, r21.xyzx, l(127, 127, 127, 0)
      ubfe r23.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r21.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 r21.xyz, l(7, 7, 7, 0), r24.xyzx, r21.xyzx, l(0, 0, 0, 0)
      and r21.xyz, r21.xyzx, l(127, 127, 127, 0)
      movc r21.xyz, r23.xyzx, r22.xyzx, r21.xyzx
      ishl r22.xyz, r25.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 r18.xyz, r3.yzwy, r21.xyzx, l(0,0,0,0)
      mul r2.yz, r2.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r20.x, r16.w
      and r3.yzw, r20.xxyz, l(0, 1023, 1023, 1023)
      and r21.xyz, r20.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r20.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 r20.xyz, l(7, 7, 7, 0), r23.xyzx, r20.xyzx, l(0, 0, 0, 0)
      and r20.xyz, r20.xyzx, l(127, 127, 127, 0)
      movc r20.xyz, r22.xyzx, r21.xyzx, r20.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r20.xyz, r20.xyzx, l(16, 16, 16, 0)
      iadd r20.xyz, r21.xyzx, r20.xyzx
      movc r19.xyz, r3.yzwy, r20.xyzx, l(0,0,0,0)
      ushr r20.xyzw, r16.wxxx, l(30, 10, 20, 30)
      utof r3.yz, r20.xxwx
      mov r20.x, r16.x
      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)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r17.w, r2.y
      mov r18.w, r2.z
      mov r19.w, r3.y
      mov r16.w, r3.z
      break 
      case l(4)
      ishl r20.xyzw, r16.yzwx, l(16, 16, 16, 16)
      mov r21.xz, r20.xxyx
      mov r21.yw, r16.yyyz
      ishr r21.xyzw, r21.xyzw, 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 r17.xy, r21.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r18.xy, r21.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r16.yz, r20.zzwz
      ishr r20.xyzw, r16.ywzx, 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 r19.xy, r20.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r16.xy, r20.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r20.xyzw, r16.yzwx, l(16, 16, 16, 16)
      f16tof32 r17.x, r16.y
      f16tof32 r17.y, r20.x
      f16tof32 r18.x, r16.z
      f16tof32 r18.y, r20.y
      f16tof32 r19.x, r16.w
      f16tof32 r19.y, r20.z
      f16tof32 r16.x, r16.x
      f16tof32 r16.y, r20.w
      mov r17.zw, l(0,0,0,0)
      mov r18.zw, l(0,0,0,0)
      mov r19.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      break 
      default 
      mov r17.x, r16.y
      mov r17.yzw, l(0,0,0,0)
      mov r18.x, r16.z
      mov r18.yzw, l(0,0,0,0)
      mov r19.x, r16.w
      mov r19.yzw, l(0,0,0,0)
      mov r16.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r7.xyzw, r13.xyzw, r17.xyzw
    add r8.xyzw, r14.xyzw, r18.xyzw
    add r9.xyzw, r15.xyzw, r19.xyzw
    add r6.xyzw, r11.xyzw, r16.xyzw
  else 
    mov r0.y, r2.x
  endif 
endif 
mul r2.xyzw, r0.yyyy, r7.xyzw
mul r7.xyzw, r0.yyyy, r8.xyzw
mul r8.xyzw, r0.yyyy, r9.xyzw
mul r6.xyzw, r0.yyyy, r6.xyzw
if_nz r1.w
  mov r2.xz, r2.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xz, r8.zzxz
  mov r6.xz, r6.zzxz
endif 
switch r3.x
  case l(3)
  mov_sat r2.xyzw, r2.xyzw
  mad r9.xyzw, r2.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(32), r9.x
  imad r0.x, r9.z, l(1024), r0.x
  imad r3.x, r9.w, l(0x00008000), r0.x
  mov_sat r7.xyzw, r7.xyzw
  mad r9.xyzw, r7.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(32), r9.x
  imad r0.x, r9.z, l(1024), r0.x
  imad r3.z, r9.w, l(0x00008000), r0.x
  mov_sat r8.xyzw, r8.xyzw
  mad r9.xyzw, r8.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(32), r9.x
  imad r0.x, r9.z, l(1024), r0.x
  imad r3.y, r9.w, l(0x00008000), r0.x
  mov_sat r6.xyzw, r6.xyzw
  mad r9.xyzw, r6.xyzw, l(31.000000, 31.000000, 31.000000, 1.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(32), r9.x
  imad r0.x, r9.z, l(1024), r0.x
  imad r3.w, r9.w, l(0x00008000), r0.x
  break 
  case l(4)
  mov_sat r2.xyz, r2.xyzx
  mad r9.xyz, r2.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.x, r9.z, l(2048), r0.x
  mov_sat r7.xyz, r7.xyzx
  mad r9.xyz, r7.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.z, r9.z, l(2048), r0.x
  mov_sat r8.xyz, r8.xyzx
  mad r9.xyz, r8.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.y, r9.z, l(2048), r0.x
  mov_sat r6.xyz, r6.xyzx
  mad r9.xyz, r6.xyzx, l(31.000000, 63.000000, 31.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.w, r9.z, l(2048), r0.x
  break 
  case l(5)
  mov_sat r2.xyz, r2.xyzx
  mad r9.xyz, r2.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.x, r9.z, l(1024), r0.x
  mov_sat r7.xyz, r7.xyzx
  mad r9.xyz, r7.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.z, r9.z, l(1024), r0.x
  mov_sat r8.xyz, r8.xyzx
  mad r9.xyz, r8.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.y, r9.z, l(1024), r0.x
  mov_sat r6.xyz, r6.xyzx
  mad r9.xyz, r6.xyzx, l(31.000000, 31.000000, 63.000000, 0.000000), l(0.500000, 0.500000, 0.500000, 0.000000)
  ftou r9.xyz, r9.xyzx
  imad r0.x, r9.y, l(32), r9.x
  imad r3.w, r9.z, l(1024), r0.x
  break 
  case l(10)
  mov_sat r2.xy, r2.xyxx
  mad r0.xy, r2.xyxx, l(255.000000, 255.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r3.x, r0.y, l(256), r0.x
  mov_sat r7.xy, r7.xyxx
  mad r0.xy, r7.xyxx, l(255.000000, 255.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r3.z, r0.y, l(256), r0.x
  mov_sat r8.xy, r8.xyxx
  mad r0.xy, r8.xyxx, l(255.000000, 255.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r3.y, r0.y, l(256), r0.x
  mov_sat r6.xy, r6.xyxx
  mad r0.xy, r6.xyxx, l(255.000000, 255.000000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  ftou r0.xy, r0.xyxx
  imad r3.w, r0.y, l(256), r0.x
  break 
  case l(15)
  mov_sat r2.xyzw, r2.xyzw
  mad r9.xyzw, r2.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(16), r9.x
  imad r0.x, r9.z, l(256), r0.x
  imad r3.x, r9.w, l(4096), r0.x
  mov_sat r7.xyzw, r7.xyzw
  mad r9.xyzw, r7.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(16), r9.x
  imad r0.x, r9.z, l(256), r0.x
  imad r3.z, r9.w, l(4096), r0.x
  mov_sat r8.xyzw, r8.xyzw
  mad r9.xyzw, r8.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(16), r9.x
  imad r0.x, r9.z, l(256), r0.x
  imad r3.y, r9.w, l(4096), r0.x
  mov_sat r6.xyzw, r6.xyzw
  mad r9.xyzw, r6.xyzw, l(15.000000, 15.000000, 15.000000, 15.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r9.xyzw, r9.xyzw
  imad r0.x, r9.y, l(16), r9.x
  imad r0.x, r9.z, l(256), r0.x
  imad r3.w, r9.w, l(4096), r0.x
  break 
  case l(24)
  mov_sat r2.x, r2.x
  mad r0.x, r2.x, l(65535.000000), l(0.500000)
  ftou r3.x, r0.x
  mov_sat r7.x, r7.x
  mad r0.x, r7.x, l(65535.000000), l(0.500000)
  ftou r3.z, r0.x
  mov_sat r8.x, r8.x
  mad r0.x, r8.x, l(65535.000000), l(0.500000)
  ftou r3.y, r0.x
  mov_sat r6.x, r6.x
  mad r0.x, r6.x, l(65535.000000), l(0.500000)
  ftou r3.w, r0.x
  break 
  default 
  f32tof16 r3.x, r2.x
  f32tof16 r3.z, r7.x
  f32tof16 r3.y, r8.x
  f32tof16 r3.w, r6.x
  break 
endswitch 
if_nz r1.y
  bfi r2.xyzw, l(8, 8, 8, 8), l(8, 8, 8, 8), r3.xzyw, l(0, 0, 0, 0)
  ushr r6.xyzw, r3.xzyw, l(8, 8, 8, 8)
  iadd r3.xyzw, r2.xzyw, r6.xzyw
endif 
if_nz r0.w
  mov r0.z, r12.y
  mov r12.x, r10.y
  mov r10.x, r3.x
endif 
imad r4.y, r0.z, l(0x00010000), r10.z
store_uav_typed U0[0].xyzw, r5.yyyy, r4.xyzw
imad r0.xyzw, r10.xyxx, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r12.xyxx
store_uav_typed U0[0].xyzw, r5.zzzz, r0.xyzw
imad r0.xyzw, r3.zwzz, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r3.xyxx
store_uav_typed U0[0].xyzw, r5.wwww, r0.xyzw
ret 
// Approximately 7970 instruction slots used
