//
// 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 26
dcl_thread_group 8, 8, 1
and r0.xyzw, CB0[0][0].zxwz, l(7, 0x40000000, 0x00003fff, 8)
ieq r1.xy, vThreadID.xyxx, l(0, 0, 0, 0)
movc r1.xy, r0.yyyy, r1.xyxx, 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, r3.xyzw, vThreadID.xyyx
if_nz r0.w
  ubfe r4.xy, l(3, 14, 0, 0), l(4, 16, 0, 0), CB0[0][0].zwzz
  mov r4.z, r0.z
  iadd r0.yw, r4.yyyz, l(0, 31, 0, 31)
  ishr r5.xyzw, r3.zwzw, l(4, 5, 3, 3)
  ishr r1.z, r4.x, l(2)
  ushr r0.yw, r0.yyyw, l(0, 4, 0, 5)
  and r0.y, r0.y, l(2046)
  imad r0.y, r1.z, r0.y, r5.x
  imad r0.y, r0.y, r0.w, r5.y
  ishl r0.w, r3.z, l(11)
  and r0.w, r0.w, l(0x00003000)
  bfi r0.w, l(3), l(9), r3.w, r0.w
  ishr r0.w, r0.w, l(6)
  iadd r1.z, r1.z, r5.z
  bfi r1.w, l(1), l(1), r1.z, l(0)
  iadd r1.w, r1.w, r5.w
  bfi r1.w, l(2), l(1), r1.w, l(0)
  bfi r1.z, l(1), l(0), r1.z, r1.w
  and r1.w, r0.w, l(240)
  bfi r4.yz, l(0, 19, 19, 0), l(0, 11, 14, 0), r0.yyyy, l(0, 0, 0, 0)
  imad r4.yz, r1.wwww, l(0, 2, 16, 0), r4.yyzy
  bfi r0.yw, l(0, 4, 0, 4), l(0, 0, 0, 3), r0.wwww, r4.yyyz
  bfi r0.yw, l(0, 2, 0, 2), l(0, 9, 0, 12), r4.xxxx, r0.yyyw
  ubfe r1.w, l(3), l(6), r0.y
  and r2.w, r1.z, l(6)
  bfi r1.z, l(1), l(8), r1.z, l(0)
  imad r1.z, r1.w, l(32), r1.z
  imad r1.z, r2.w, l(4), r1.z
  bfi r0.yw, l(0, 1, 0, 1), l(0, 4, 0, 7), r3.zzzz, r0.yyyw
  bfi r0.w, l(9), l(3), r1.z, r0.w
  bfi r0.y, l(6), l(0), r0.y, r0.w
else 
  ishr r4.xyzw, r3.xyzw, l(5, 5, 2, 3)
  iadd r0.z, r0.z, l(31)
  ushr r0.z, r0.z, l(5)
  imad r0.z, r4.y, r0.z, r4.x
  ishl r1.zw, r3.zzzz, l(0, 0, 5, 7)
  and r1.zw, r1.zzzw, l(0, 0, 448, 2048)
  bfi r0.w, l(3), l(3), r3.w, r1.z
  ishl r1.z, r1.z, l(1)
  bfi r1.z, l(3), l(4), r3.w, r1.z
  and r1.z, r1.z, l(992)
  bfi r2.w, l(22), l(10), r0.z, r1.z
  bfi r2.w, l(4), l(0), r0.w, r2.w
  bfi r2.w, l(1), l(4), r3.z, r2.w
  ishl r3.xy, r1.zzzz, l(3, 2, 0, 0)
  bfi r3.xy, l(22, 22, 0, 0), l(13, 12, 0, 0), r0.zzzz, r3.xyxx
  bfi r0.zw, l(0, 0, 4, 4), l(0, 0, 3, 2), r0.wwww, r3.xxxy
  bfi r0.zw, l(0, 0, 1, 1), l(0, 0, 7, 6), r3.zzzz, r0.zzzw
  bfi r0.z, l(12), l(0), r1.w, r0.z
  and r0.w, r0.w, l(1792)
  iadd r0.z, r0.z, r0.w
  and r0.w, r4.z, l(2)
  iadd r0.w, r4.w, r0.w
  bfi r0.w, l(2), l(6), r0.w, l(0)
  iadd r0.z, r0.z, r0.w
  bfi r0.y, l(6), l(0), r2.w, r0.z
endif 
imul null, r0.y, r0.y, l(9)
ushr r0.y, r0.y, l(3)
bfi r0.zw, l(0, 0, 5, 2), l(0, 0, 3, 3), r2.zzzx, l(0, 0, 0, 0)
iadd r0.zw, r0.zzzw, vThreadID.xxxy
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.xz, r2.xxzx, l(1, 0, 1, 0)
ishl r0.zw, r0.zzzw, r2.xxxz
ushr r4.x, r4.y, l(1)
and r2.xz, r4.xxyx, l(1, 0, 1, 0)
iadd r0.zw, r0.zzzw, r2.xxxz
udiv r2.xz, null, r0.zzwz, l(80, 0, 16, 0)
movc r2.w, r3.w, l(1), l(0)
ishl r3.z, r2.x, r2.w
imad r1.z, r2.z, r1.z, r3.z
iadd r1.z, r1.z, r3.y
imad r0.zw, -r2.xxxz, l(0, 0, 80, 16), r0.zzzw
imad r0.z, r0.w, l(80), r0.z
ishl r0.z, r0.z, r2.w
imad r0.z, r1.z, l(1280), r0.z
imul null, r0.w, r0.z, l(36)
ubfe r1.z, l(4), l(25), CB0[0][0].x
ld_raw r4.xyzw, r0.w, T0[0].wxyz
imad r2.xz, r0.zzzz, l(36, 0, 36, 0), l(16, 0, 20, 0)
ld_raw r5.x, r2.x, 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 r2.xw, r9.zzzw
  ushr r9.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r10.x, r4.z
  mov r10.yz, r9.xxwx
  and 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 r7.xyz, r3.yzwy, r10.xyzx, l(0,0,0,0)
  mul r2.xw, r2.xxxw, l(0.333333, 0.000000, 0.000000, 0.333333)
  mov r9.x, r4.w
  and r3.yzw, r9.xxyz, l(0, 1023, 1023, 1023)
  and r10.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
  firstbit_hi r12.xyz, r10.xyzx
  iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
  movc r12.xyz, r10.xyzx, r12.xyzx, l(8,8,8,0)
  iadd r13.xyz, -r12.xyzx, l(1, 1, 1, 0)
  movc r13.xyz, r11.xyzx, r11.xyzx, r13.xyzx
  bfi r9.xyz, l(7, 7, 7, 0), r12.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r11.xyzx, r10.xyzx, r9.xyzx
  ishl r10.xyz, r13.xyzx, l(23, 23, 23, 0)
  iadd r10.xyz, r10.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r10.xyzx, r9.xyzx
  movc r8.xyz, r3.yzwy, r9.xyzx, l(0,0,0,0)
  ushr r9.xyzw, r4.wxxx, l(30, 10, 20, 30)
  utof r3.yz, r9.xxwx
  mov r9.x, r4.x
  and r10.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r9.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r9.xyzx
  firstbit_hi r13.xyz, r11.xyzx
  iadd r13.xyz, r13.xyzx, l(-24, -24, -24, 0)
  movc r13.xyz, r11.xyzx, r13.xyzx, l(8,8,8,0)
  iadd r14.xyz, -r13.xyzx, l(1, 1, 1, 0)
  movc r14.xyz, r12.xyzx, r12.xyzx, r14.xyzx
  bfi r9.xyz, l(7, 7, 7, 0), r13.xyzx, r9.xyzx, l(0, 0, 0, 0)
  and r9.xyz, r9.xyzx, l(127, 127, 127, 0)
  movc r9.xyz, r12.xyzx, r11.xyzx, r9.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r9.xyz, r9.xyzx, l(16, 16, 16, 0)
  iadd r9.xyz, r11.xyzx, r9.xyzx
  movc r4.xyz, r10.xyzx, r9.xyzx, l(0,0,0,0)
  mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
  ushr r5.yzw, r5.xxxx, l(0, 10, 20, 30)
  and r9.xyz, r5.xyzx, l(1023, 1023, 1023, 0)
  and r10.xyz, r5.xyzx, l(127, 127, 127, 0)
  ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r5.xyzx
  firstbit_hi r12.xyz, r10.xyzx
  iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
  movc r12.xyz, r10.xyzx, r12.xyzx, l(8,8,8,0)
  iadd r13.xyz, -r12.xyzx, l(1, 1, 1, 0)
  movc r13.xyz, r11.xyzx, r11.xyzx, r13.xyzx
  bfi r12.xyz, l(7, 7, 7, 0), r12.xyzx, r5.xyzx, l(0, 0, 0, 0)
  and r12.xyz, r12.xyzx, l(127, 127, 127, 0)
  movc r10.xyz, r11.xyzx, r10.xyzx, r12.xyzx
  ishl r11.xyz, r13.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 r5.xyz, r9.xyzx, r10.xyzx, l(0,0,0,0)
  utof r0.w, r5.w
  mul r5.w, r0.w, l(0.333333)
  mov r6.w, r2.x
  mov r7.w, r2.w
  mov r8.w, r3.y
  mov r4.w, r3.z
  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 r2.xw, r5.yyyx, l(16, 0, 0, 16)
  itof r2.xw, r2.xxxw
  mul r2.xw, r2.xxxw, l(0.000977, 0.000000, 0.000000, 0.000977)
  max r5.xy, r2.xwxx, 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.w, r5.x, l(16)
  f16tof32 r5.x, r5.x
  f16tof32 r5.y, r0.w
  mov r6.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r8.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  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.w, l(6), l(16), CB0[0][0].z
ishl r0.w, r0.w, l(23)
iadd r0.w, r0.w, l(0x3f800000)
uge r2.x, r2.y, l(4)
if_nz r2.x
  mul r2.w, r0.w, l(0.500000)
  imad r3.yz, r0.zzzz, l(0, 36, 36, 0), l(0, 2880, 2896, 0)
  ld_raw r9.xyzw, r3.y, T0[0].wxyz
  ld_raw r10.x, r3.z, 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 r3.yzw, r15.xxyz, l(0, 1023, 1023, 1023)
    and r16.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.xyzx
    firstbit_hi r18.xyz, r16.xyzx
    iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
    movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
    iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
    movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
    bfi r15.xyz, l(7, 7, 7, 0), r18.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r17.xyzx, r16.xyzx, r15.xyzx
    ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r16.xyzx, r15.xyzx
    movc r11.xyz, r3.yzwy, r15.xyzx, l(0,0,0,0)
    utof r3.yz, r14.zzwz
    ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r15.x, r9.z
    mov r15.yz, r14.xxwx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.xyzx
    firstbit_hi r19.xyz, r17.xyzx
    iadd r19.xyz, r19.xyzx, l(-24, -24, -24, 0)
    movc r19.xyz, r17.xyzx, r19.xyzx, l(8,8,8,0)
    iadd r20.xyz, -r19.xyzx, l(1, 1, 1, 0)
    movc r20.xyz, r18.xyzx, r18.xyzx, r20.xyzx
    bfi r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r14.x, r9.w
    and r15.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
    and r16.xyz, r14.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
    firstbit_hi r18.xyz, r16.xyzx
    iadd r18.xyz, r18.xyzx, l(-24, -24, -24, 0)
    movc r18.xyz, r16.xyzx, r18.xyzx, l(8,8,8,0)
    iadd r19.xyz, -r18.xyzx, l(1, 1, 1, 0)
    movc r19.xyz, r17.xyzx, r17.xyzx, r19.xyzx
    bfi r14.xyz, l(7, 7, 7, 0), r18.xyzx, r14.xyzx, l(0, 0, 0, 0)
    and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
    movc r14.xyz, r17.xyzx, r16.xyzx, r14.xyzx
    ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
    iadd r14.xyz, r16.xyzx, r14.xyzx
    movc r13.xyz, r15.xyzx, r14.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r9.wxxx, l(30, 10, 20, 30)
    utof 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 r3.w, r10.w
    mul r10.w, r3.w, l(0.333333)
    mov r11.w, r3.y
    mov r12.w, r3.z
    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.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 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.y, r10.x, l(16)
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r3.y
    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.y, r2.y, l(6)
  if_nz r3.y
    mul r2.w, r0.w, l(0.250000)
    imad r9.xyzw, r0.zzzz, 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 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 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 r3.w, r11.w
      mul r11.w, r3.w, l(0.333333)
      mov r12.w, r3.y
      mov r13.w, r3.z
      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.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 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.y, r11.x, l(16)
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r3.y
      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 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)
      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 r3.w, r9.w
      mul r9.w, r3.w, l(0.333333)
      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)
      ishl r9.y, r9.x, l(16)
      ishr r3.yz, r9.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 r9.xy, r3.yzyy, 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.y, r9.x, l(16)
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r3.y
      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 r2.w, r0.w
endif 
mul r6.xyzw, r2.wwww, r6.xyzw
mul r7.xyzw, r2.wwww, r7.xzwy
mul r8.xyzw, r2.wwww, r8.xyzw
mul r4.xyzw, r2.wwww, r4.xzwy
mul r5.xyzw, r2.wwww, r5.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r9.xz, r7.yyxy
  mov r8.xz, r8.zzxz
  mov r10.xz, r4.yyxy
  mov r5.xz, r5.zzxz
else 
  mov r9.xz, r7.xxyx
  mov r10.xz, r4.xxyx
endif 
switch r3.x
  case l(26)
  mov_sat r6.xyzw, r6.xyzw
  mad r11.xyzw, r6.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r7.xy, r11.ywyy, l(0x00010000, 0x00010000, 0, 0), r11.xzxx
  mov r9.yw, r7.wwwz
  mov_sat r9.xyzw, r9.xyzw
  mad r11.xyzw, r9.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r7.zw, r11.yyyw, l(0, 0, 0x00010000, 0x00010000), r11.xxxz
  mov_sat r8.xyzw, r8.xyzw
  mad r11.xyzw, r8.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r4.xy, r11.ywyy, l(0x00010000, 0x00010000, 0, 0), r11.xzxx
  mov r10.yw, r4.wwwz
  mov_sat r10.xyzw, r10.xyzw
  mad r11.xyzw, r10.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r4.zw, r11.yyyw, l(0, 0, 0x00010000, 0x00010000), r11.xxxz
  mov_sat r5.xyzw, r5.xyzw
  mad r11.xyzw, r5.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r11.xyzw, r11.xyzw
  imad r5.xy, r11.ywyy, l(0x00010000, 0x00010000, 0, 0), r11.xzxx
  break 
  case l(32)
  f32tof16 r11.xy, r6.xzxx
  f32tof16 r11.zw, r9.xxxz
  f32tof16 r12.xy, r6.ywyy
  f32tof16 r12.zw, r7.wwwz
  imad r7.xyzw, r12.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r11.xyzw
  f32tof16 r11.xy, r8.xzxx
  f32tof16 r11.zw, r10.xxxz
  f32tof16 r12.xy, r8.ywyy
  f32tof16 r12.zw, r4.wwwz
  imad r4.xyzw, r12.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r11.xyzw
  f32tof16 r3.yz, r5.xxzx
  f32tof16 r5.zw, r5.yyyw
  imad r5.xy, r5.zwzz, l(0x00010000, 0x00010000, 0, 0), r3.yzyy
  break 
  default 
  mov r7.xy, r6.xyxx
  mov r7.z, r9.x
  mov r4.xy, r8.xyxx
  mov r4.z, r10.x
  break 
endswitch 
ieq r2.w, r0.x, l(4)
if_nz r2.w
  mov r7.xyzw, r7.yxwz
  mov r4.xyzw, r4.yxwz
  mov r5.xy, r5.yxyy
  mov r3.y, l(2)
else 
  mov r3.y, r0.x
endif 
ieq r3.yzw, r3.yyyy, l(0, 1, 2, 3)
or r3.yz, r3.zzwz, r3.yyzy
if_nz r3.y
  ishl r6.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r6.xyzw, r6.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r8.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r8.xyzw, r8.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r7.xyzw, r6.xyzw, r8.xyzw
  ishl r6.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r6.xyzw, r6.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r8.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r8.xyzw, r8.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r4.xyzw, r6.xyzw, r8.xyzw
  ishl r3.yw, r5.xxxy, l(0, 8, 0, 8)
  and r3.yw, r3.yyyw, l(0, 0xff00ff00, 0, 0xff00ff00)
  ushr r5.zw, r5.xxxy, l(0, 0, 8, 8)
  and r5.zw, r5.zzzw, l(0, 0, 0x00ff00ff, 0x00ff00ff)
  iadd r5.xy, r3.ywyy, r5.zwzz
endif 
if_nz r3.z
  ushr r6.xyzw, r7.xyzw, l(16, 16, 16, 16)
  bfi r7.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r7.xyzw, r6.xyzw
  ushr r6.xyzw, r4.xyzw, l(16, 16, 16, 16)
  bfi r4.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r6.xyzw
  ushr r3.yz, r5.xxyx, l(0, 16, 16, 0)
  bfi r5.xy, l(16, 16, 0, 0), l(16, 16, 0, 0), r5.xyxx, r3.yzyy
endif 
if_nz r1.x
  mov r7.xy, r7.zwzz
  mov r4.zw, r5.xxxy
endif 
if_nz r1.y
  mov r7.xy, r4.zwzz
  mov r7.zw, r5.xxxy
endif 
store_uav_typed U0[0].xyzw, r0.yyyy, r7.xyxx
iadd r6.xyzw, r0.yyyy, l(1, 3, 4, 2)
store_uav_typed U0[0].xyzw, r6.xxxx, r7.zwzz
store_uav_typed U0[0].xyzw, r6.yyyy, r4.zwzz
store_uav_typed U0[0].xyzw, r6.zzzz, r5.xyxx
ld_raw r5.xyzw, r2.z, T0[0].wxyz
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)
  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)
  break 
  case l(3)
  case l(12)
  ushr r10.xyzw, r5.yyyz, l(10, 20, 30, 30)
  mov r6.x, r5.y
  mov r6.yz, r10.xxyx
  and r3.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
  and r11.xyz, r6.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r13.xyzx, r6.xyzx, l(0, 0, 0, 0)
  and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
  movc r6.xyz, r12.xyzx, r11.xyzx, r6.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
  iadd r6.xyz, r11.xyzx, r6.xyzx
  movc r7.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
  utof r3.yz, r10.zzwz
  ushr r10.xyzw, r5.zwwz, l(10, 10, 20, 20)
  mov r6.x, r5.z
  mov r6.yz, r10.xxwx
  and r11.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
  and r12.xyz, r6.xyzx, l(127, 127, 127, 0)
  ubfe r13.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.xyzx
  firstbit_hi r14.xyz, r12.xyzx
  iadd r14.xyz, r14.xyzx, l(-24, -24, -24, 0)
  movc r14.xyz, r12.xyzx, r14.xyzx, l(8,8,8,0)
  iadd r15.xyz, -r14.xyzx, l(1, 1, 1, 0)
  movc r15.xyz, r13.xyzx, r13.xyzx, r15.xyzx
  bfi r6.xyz, l(7, 7, 7, 0), r14.xyzx, r6.xyzx, l(0, 0, 0, 0)
  and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
  movc r6.xyz, r13.xyzx, r12.xyzx, r6.xyzx
  ishl r12.xyz, r15.xyzx, l(23, 23, 23, 0)
  iadd r12.xyz, r12.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
  iadd r6.xyz, r12.xyzx, r6.xyzx
  movc r8.xyz, r11.xyzx, r6.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 r6.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  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 r9.xyz, r6.xyzx, r10.xyzx, l(0,0,0,0)
  ushr r10.xyzw, r5.wxxx, l(30, 10, 20, 30)
  utof r4.zw, r10.xxxw
  mov r10.x, r5.x
  and r6.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  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 r5.xyz, r6.xyzx, r10.xyzx, l(0,0,0,0)
  mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
  mov r7.w, r3.y
  mov r8.w, r3.z
  mov r9.w, r4.z
  mov r5.w, r4.w
  break 
  case l(4)
  ishl r10.xyzw, r5.yzwx, l(16, 16, 16, 16)
  mov r11.xz, r10.xxyx
  mov r11.yw, r5.yyyz
  ishr r11.xyzw, r11.xyzw, 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 r7.xy, r11.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r8.xy, r11.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)
  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)
  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
  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)
  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)
  break 
endswitch 
if_nz r2.x
  mul r2.x, r0.w, l(0.500000)
  imad r2.z, r0.z, l(36), l(2900)
  ld_raw r10.xyzw, r2.z, T0[0].wxyz
  switch r1.z
    case l(0)
    case l(1)
    ushr r14.yzw, r10.yyyy, l(0, 8, 16, 24)
    mov r14.x, r10.y
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r11.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r10.zzzz, l(0, 8, 16, 24)
    mov r14.x, r10.z
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r14.yzw, r10.wwww, l(0, 8, 16, 24)
    mov r14.x, r10.w
    and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
    and r14.xyzw, r10.xyzw, l(255, 255, 255, 255)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
    break 
    case l(2)
    case l(10)
    ushr r14.yzw, r10.yyyy, l(0, 10, 20, 30)
    mov r14.x, r10.y
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r11.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r10.zzzz, l(0, 10, 20, 30)
    mov r14.x, r10.z
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r14.yzw, r10.wwww, l(0, 10, 20, 30)
    mov r14.x, r10.w
    and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
    and r14.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
    utof r14.xyzw, r14.xyzw
    mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
    break 
    case l(3)
    case l(12)
    ushr r14.xyzw, r10.yyyz, l(10, 20, 30, 30)
    mov r6.x, r10.y
    mov r6.yz, r14.xxyx
    and r3.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
    and r15.xyz, r6.xyzx, l(127, 127, 127, 0)
    ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r17.xyzx, r6.xyzx, l(0, 0, 0, 0)
    and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
    movc r6.xyz, r16.xyzx, r15.xyzx, r6.xyzx
    ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
    iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
    iadd r6.xyz, r15.xyzx, r6.xyzx
    movc r11.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
    utof r3.yz, r14.zzwz
    ushr r14.xyzw, r10.zwwz, l(10, 10, 20, 20)
    mov r6.x, r10.z
    mov r6.yz, r14.xxwx
    and r15.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
    and r16.xyz, r6.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r18.xyzx, r6.xyzx, l(0, 0, 0, 0)
    and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
    movc r6.xyz, r17.xyzx, r16.xyzx, r6.xyzx
    ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
    iadd r6.xyz, r16.xyzx, r6.xyzx
    movc r12.xyz, r15.xyzx, r6.xyzx, l(0,0,0,0)
    mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
    mov r14.x, r10.w
    and r6.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
    and r15.xyz, r14.xyzx, l(127, 127, 127, 0)
    ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r17.xyzx, r14.xyzx, l(0, 0, 0, 0)
    and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
    movc r14.xyz, r16.xyzx, r15.xyzx, r14.xyzx
    ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
    iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
    iadd r14.xyz, r15.xyzx, r14.xyzx
    movc r13.xyz, r6.xyzx, r14.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r10.wxxx, l(30, 10, 20, 30)
    utof r4.zw, r14.xxxw
    mov r14.x, r10.x
    and r6.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
    and r15.xyz, r14.xyzx, l(127, 127, 127, 0)
    ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r17.xyzx, r14.xyzx, l(0, 0, 0, 0)
    and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
    movc r14.xyz, r16.xyzx, r15.xyzx, r14.xyzx
    ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
    iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
    iadd r14.xyz, r15.xyzx, r14.xyzx
    movc r10.xyz, r6.xyzx, r14.xyzx, l(0,0,0,0)
    mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r11.w, r3.y
    mov r12.w, r3.z
    mov r13.w, r4.z
    mov r10.w, r4.w
    break 
    case l(4)
    ishl r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
    mov r15.xz, r14.xxyx
    mov r15.yw, r10.yyyz
    ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
    itof r15.xyzw, r15.xyzw
    mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r10.yz, r14.zzwz
    ishr r14.xyzw, r10.ywzx, l(16, 16, 16, 16)
    itof r14.xyzw, r14.xyzw
    mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r13.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r10.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
    f16tof32 r11.x, r10.y
    f16tof32 r11.y, r14.x
    f16tof32 r12.x, r10.z
    f16tof32 r12.y, r14.y
    f16tof32 r13.x, r10.w
    f16tof32 r13.y, r14.z
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r14.w
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    default 
    mov r11.x, r10.y
    mov r11.yzw, l(0,0,0,0)
    mov r12.x, r10.z
    mov r12.yzw, l(0,0,0,0)
    mov r13.x, r10.w
    mov r13.yzw, l(0,0,0,0)
    mov r10.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r7.xyzw, r7.xyzw, r11.xyzw
  add r8.xyzw, r8.xyzw, r12.xyzw
  add r9.xyzw, r9.xyzw, r13.xyzw
  add r5.xyzw, r5.xyzw, r10.xyzw
  uge r2.y, r2.y, l(6)
  if_nz r2.y
    mul r0.w, r0.w, l(0.250000)
    imad r2.yz, r0.zzzz, l(0, 36, 36, 0), l(0, 56, 2936, 0)
    ld_raw r10.xyzw, r2.y, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r14.yzw, r10.yyyy, l(0, 8, 16, 24)
      mov r14.x, r10.y
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r11.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r10.zzzz, l(0, 8, 16, 24)
      mov r14.x, r10.z
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r14.yzw, r10.wwww, l(0, 8, 16, 24)
      mov r14.x, r10.w
      and r14.xyzw, r14.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r10.yzw, r10.xxxx, l(0, 8, 16, 24)
      and r14.xyzw, r10.xyzw, l(255, 255, 255, 255)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      break 
      case l(2)
      case l(10)
      ushr r14.yzw, r10.yyyy, l(0, 10, 20, 30)
      mov r14.x, r10.y
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r11.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r10.zzzz, l(0, 10, 20, 30)
      mov r14.x, r10.z
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r12.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r14.yzw, r10.wwww, l(0, 10, 20, 30)
      mov r14.x, r10.w
      and r14.xyzw, r14.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r13.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r10.yzw, r10.xxxx, l(0, 10, 20, 30)
      and r14.xyzw, r10.xyzw, l(1023, 1023, 1023, 3)
      utof r14.xyzw, r14.xyzw
      mul r10.xyzw, r14.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      break 
      case l(3)
      case l(12)
      ushr r14.xyzw, r10.yyyz, l(10, 20, 30, 30)
      mov r6.x, r10.y
      mov r6.yz, r14.xxyx
      and r3.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
      and r15.xyz, r6.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r17.xyzx, r6.xyzx, l(0, 0, 0, 0)
      and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r16.xyzx, r15.xyzx, r6.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r15.xyzx, r6.xyzx
      movc r11.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
      utof r3.yz, r14.zzwz
      ushr r14.xyzw, r10.zwwz, l(10, 10, 20, 20)
      mov r6.x, r10.z
      mov r6.yz, r14.xxwx
      and r15.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
      and r16.xyz, r6.xyzx, l(127, 127, 127, 0)
      ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r18.xyzx, r6.xyzx, l(0, 0, 0, 0)
      and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r17.xyzx, r16.xyzx, r6.xyzx
      ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
      iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r16.xyzx, r6.xyzx
      movc r12.xyz, r15.xyzx, r6.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r14.x, r10.w
      and r6.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r17.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r14.xyz, r16.xyzx, r15.xyzx, r14.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
      iadd r14.xyz, r15.xyzx, r14.xyzx
      movc r13.xyz, r6.xyzx, r14.xyzx, l(0,0,0,0)
      ushr r14.xyzw, r10.wxxx, l(30, 10, 20, 30)
      utof r4.zw, r14.xxxw
      mov r14.x, r10.x
      and r6.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.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 r14.xyz, l(7, 7, 7, 0), r17.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r14.xyz, r16.xyzx, r15.xyzx, r14.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r14.xyz, r14.xyzx, l(16, 16, 16, 0)
      iadd r14.xyz, r15.xyzx, r14.xyzx
      movc r10.xyz, r6.xyzx, r14.xyzx, l(0,0,0,0)
      mul r4.zw, r4.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
      mov r11.w, r3.y
      mov r12.w, r3.z
      mov r13.w, r4.z
      mov r10.w, r4.w
      break 
      case l(4)
      ishl r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      mov r15.xz, r14.xxyx
      mov r15.yw, r10.yyyz
      ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
      itof r15.xyzw, r15.xyzw
      mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r10.yz, r14.zzwz
      ishr r14.xyzw, r10.ywzx, l(16, 16, 16, 16)
      itof r14.xyzw, r14.xyzw
      mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r13.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r10.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r11.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      f16tof32 r11.x, r10.y
      f16tof32 r11.y, r14.x
      f16tof32 r12.x, r10.z
      f16tof32 r12.y, r14.y
      f16tof32 r13.x, r10.w
      f16tof32 r13.y, r14.z
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r14.w
      mov r11.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      default 
      mov r11.x, r10.y
      mov r11.yzw, l(0,0,0,0)
      mov r12.x, r10.z
      mov r12.yzw, l(0,0,0,0)
      mov r13.x, r10.w
      mov r13.yzw, l(0,0,0,0)
      mov r10.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r11.xyzw, r7.xyzw, r11.xyzw
    add r12.xyzw, r8.xyzw, r12.xyzw
    add r13.xyzw, r9.xyzw, r13.xyzw
    add r10.xyzw, r5.xyzw, r10.xyzw
    ld_raw r14.xyzw, r2.z, T0[0].wxyz
    switch r1.z
      case l(0)
      case l(1)
      ushr r18.yzw, r14.yyyy, l(0, 8, 16, 24)
      mov r18.x, r14.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, r14.zzzz, l(0, 8, 16, 24)
      mov r18.x, r14.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, r14.wwww, l(0, 8, 16, 24)
      mov r18.x, r14.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 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, r14.yyyy, l(0, 10, 20, 30)
      mov r18.x, r14.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, r14.zzzz, l(0, 10, 20, 30)
      mov r18.x, r14.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, r14.wwww, l(0, 10, 20, 30)
      mov r18.x, r14.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 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, r14.yyyz, l(10, 20, 30, 30)
      mov r6.x, r14.y
      mov r6.yz, r18.xxyx
      and r3.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
      and r19.xyz, r6.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r21.xyzx, r6.xyzx, l(0, 0, 0, 0)
      and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r20.xyzx, r19.xyzx, r6.xyzx
      ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
      iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r19.xyzx, r6.xyzx
      movc r15.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
      utof r2.yz, r18.zzwz
      ushr r18.xyzw, r14.zwwz, l(10, 10, 20, 20)
      mov r6.x, r14.z
      mov r6.yz, r18.xxwx
      and r3.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
      and r19.xyz, r6.xyzx, l(127, 127, 127, 0)
      ubfe r20.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r21.xyzx, r6.xyzx, l(0, 0, 0, 0)
      and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r20.xyzx, r19.xyzx, r6.xyzx
      ishl r19.xyz, r22.xyzx, l(23, 23, 23, 0)
      iadd r19.xyz, r19.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r19.xyzx, r6.xyzx
      movc r16.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
      mul r2.yz, r2.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r18.x, r14.w
      and r3.yzw, r18.xxyz, l(0, 1023, 1023, 1023)
      and r6.xyz, r18.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r18.xyzx
      firstbit_hi r20.xyz, r6.xyzx
      iadd r20.xyz, r20.xyzx, l(-24, -24, -24, 0)
      movc r20.xyz, r6.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 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 r6.xyz, r19.xyzx, r6.xyzx, r18.xyzx
      ishl r18.xyz, r21.xyzx, l(23, 23, 23, 0)
      iadd r18.xyz, r18.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r18.xyzx, r6.xyzx
      movc r17.xyz, r3.yzwy, r6.xyzx, l(0,0,0,0)
      ushr r18.xyzw, r14.wxxx, l(30, 10, 20, 30)
      utof r3.yz, r18.xxwx
      mov r18.x, r14.x
      and r6.xyz, r18.xyzx, l(1023, 1023, 1023, 0)
      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, r6.xyzx, r18.xyzx, l(0,0,0,0)
      mul r3.yz, r3.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r15.w, r2.y
      mov r16.w, r2.z
      mov r17.w, r3.y
      mov r14.w, r3.z
      break 
      case l(4)
      ishl r18.xyzw, r14.yzwx, l(16, 16, 16, 16)
      mov r19.xz, r18.xxyx
      mov r19.yw, r14.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 r14.yz, r18.zzwz
      ishr r18.xyzw, r14.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 r14.xy, r18.zwzz, 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 r14.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r18.xyzw, r14.yzwx, l(16, 16, 16, 16)
      f16tof32 r15.x, r14.y
      f16tof32 r15.y, r18.x
      f16tof32 r16.x, r14.z
      f16tof32 r16.y, r18.y
      f16tof32 r17.x, r14.w
      f16tof32 r17.y, r18.z
      f16tof32 r14.x, r14.x
      f16tof32 r14.y, r18.w
      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 r14.zw, l(0,0,0,0)
      break 
      default 
      mov r15.x, r14.y
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r14.z
      mov r16.yzw, l(0,0,0,0)
      mov r17.x, r14.w
      mov r17.yzw, l(0,0,0,0)
      mov r14.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r7.xyzw, r11.xyzw, r15.xyzw
    add r8.xyzw, r12.xyzw, r16.xyzw
    add r9.xyzw, r13.xyzw, r17.xyzw
    add r5.xyzw, r10.xyzw, r14.xyzw
  else 
    mov r0.w, r2.x
  endif 
endif 
mul r7.xyzw, r0.wwww, r7.xyzw
mul r8.xyzw, r0.wwww, r8.xzwy
mul r9.xyzw, r0.wwww, r9.xyzw
mul r5.xyzw, r0.wwww, r5.xzwy
if_nz r1.w
  mov r7.xz, r7.zzxz
  mov r10.xz, r8.yyxy
  mov r9.xz, r9.zzxz
  mov r11.xz, r5.yyxy
else 
  mov r10.xz, r8.xxyx
  mov r11.xz, r5.xxyx
endif 
switch r3.x
  case l(26)
  mov_sat r7.xyzw, r7.xyzw
  mad r3.xyzw, r7.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r8.xy, r3.ywyy, l(0x00010000, 0x00010000, 0, 0), r3.xzxx
  mov r10.yw, r8.wwwz
  mov_sat r10.xyzw, r10.xyzw
  mad r3.xyzw, r10.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r8.zw, r3.yyyw, l(0, 0, 0x00010000, 0x00010000), r3.xxxz
  mov_sat r9.xyzw, r9.xyzw
  mad r3.xyzw, r9.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r5.xy, r3.ywyy, l(0x00010000, 0x00010000, 0, 0), r3.xzxx
  mov r11.yw, r5.wwwz
  mov_sat r11.xyzw, r11.xyzw
  mad r3.xyzw, r11.xyzw, l(65535.000000, 65535.000000, 65535.000000, 65535.000000), l(0.500000, 0.500000, 0.500000, 0.500000)
  ftou r3.xyzw, r3.xyzw
  imad r5.zw, r3.yyyw, l(0, 0, 0x00010000, 0x00010000), r3.xxxz
  break 
  case l(32)
  f32tof16 r3.xy, r7.xzxx
  f32tof16 r3.zw, r10.xxxz
  f32tof16 r12.xy, r7.ywyy
  f32tof16 r12.zw, r8.wwwz
  imad r8.xyzw, r12.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r3.xyzw
  f32tof16 r3.xy, r9.xzxx
  f32tof16 r3.zw, r11.xxxz
  f32tof16 r12.xy, r9.ywyy
  f32tof16 r12.zw, r5.wwwz
  imad r5.xyzw, r12.xyzw, l(0x00010000, 0x00010000, 0x00010000, 0x00010000), r3.xyzw
  break 
  default 
  mov r8.xy, r7.xyxx
  mov r8.z, r10.x
  mov r5.xy, r9.xyxx
  mov r5.z, r11.x
  break 
endswitch 
if_nz r2.w
  mov r8.xyzw, r8.yxwz
  mov r5.xyzw, r5.yxwz
  mov r0.x, l(2)
endif 
ieq r0.xzw, r0.xxxx, l(1, 0, 2, 3)
or r0.xz, r0.zzwz, r0.xxzx
if_nz r0.x
  ishl r2.xyzw, r8.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r3.xyzw, r8.xyzw, l(8, 8, 8, 8)
  and r3.xyzw, r3.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r8.xyzw, r2.xyzw, r3.xyzw
  ishl r2.xyzw, r5.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r3.xyzw, r5.xyzw, l(8, 8, 8, 8)
  and r3.xyzw, r3.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r5.xyzw, r2.xyzw, r3.xyzw
endif 
if_nz r0.z
  ushr r2.xyzw, r8.xyzw, l(16, 16, 16, 16)
  bfi r8.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r8.xyzw, r2.xyzw
  ushr r2.xyzw, r5.xyzw, l(16, 16, 16, 16)
  bfi r5.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r5.xyzw, r2.xyzw
endif 
if_nz r1.x
  mov r8.zw, r5.xxxy
endif 
if_nz r1.y
  mov r4.xy, r8.xyxx
endif 
store_uav_typed U0[0].xyzw, r6.wwww, r4.xyxx
iadd r1.xyzw, r0.yyyy, l(5, 6, 7, 8)
store_uav_typed U0[0].xyzw, r1.xxxx, r8.xyxx
store_uav_typed U0[0].xyzw, r1.yyyy, r8.zwzz
store_uav_typed U0[0].xyzw, r1.zzzz, r5.xyxx
store_uav_typed U0[0].xyzw, r1.wwww, r5.zwzz
ret 
// Approximately 1912 instruction slots used
