//
// 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   uint4         buf      U0             u0      1 
// XeResolveConstants                cbuffer      NA          NA     CB0            cb0      1 
//
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Input
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// no Output
cs_5_1
dcl_globalFlags refactoringAllowed
dcl_constantbuffer CB0[0:0][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(12)
  and r0.w, r0.w, l(0x00006000)
  bfi r0.w, l(3), l(10), 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
  bfi r4.yz, l(0, 18, 18, 0), l(0, 12, 15, 0), r0.yyyy, l(0, 0, 0, 0)
  imad r0.yw, r0.wwww, l(0, 2, 0, 16), r4.yyyz
  bfi r0.yw, l(0, 2, 0, 2), l(0, 10, 0, 13), r4.xxxx, r0.yyyw
  bfi r1.w, l(1), l(4), r3.z, l(0)
  ubfe r2.w, l(3), l(6), r0.y
  and r4.x, r1.z, l(6)
  bfi r1.z, l(1), l(8), r1.z, l(0)
  imad r1.z, r2.w, l(32), r1.z
  imad r1.z, r4.x, l(4), r1.z
  bfi r0.yw, l(0, 5, 0, 5), l(0, 0, 0, 3), r1.wwww, 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 r0.w, r3.z, l(7)
  and r1.zw, r0.wwww, l(0, 0, 1792, 2048)
  bfi r0.w, l(3), l(5), r3.w, r1.z
  bfi r0.w, l(21), l(11), r0.z, r0.w
  bfi r2.w, l(1), l(4), r3.z, l(0)
  iadd r0.w, r0.w, r2.w
  ishl r3.xy, r1.zzzz, l(3, 2, 0, 0)
  bfi r3.xy, l(3, 3, 0, 0), l(8, 7, 0, 0), r3.wwww, r3.xyxx
  bfi r3.xy, l(21, 21, 0, 0), l(14, 13, 0, 0), r0.zzzz, r3.xyxx
  imad r3.xy, r2.wwww, l(8, 4, 0, 0), r3.xyxx
  bfi r0.z, l(12), l(0), r1.w, r3.x
  and r1.z, r3.y, l(1792)
  iadd r0.z, r0.z, r1.z
  and r1.z, r4.z, l(2)
  iadd r1.z, r4.w, r1.z
  bfi r1.z, l(2), l(6), r1.z, l(0)
  iadd r0.z, r0.z, r1.z
  bfi r0.y, l(6), l(0), r0.w, r0.z
endif 
imul null, r0.y, r0.y, l(9)
ushr r0.y, r0.y, l(4)
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(12, 2, 1, 4), l(13, 10, 29, 25), CB0[0][0].xxxx
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.yyyy, 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.z, l(1), l(0)
ishl r3.y, r2.x, r2.w
imad r1.z, r2.z, r1.z, r3.y
iadd r1.z, r1.z, r3.x
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)
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 r3.w
  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 r3.x, r4.y
  mov r3.yz, r9.xxyx
  and r10.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r3.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r13.xyzx, r3.xyzx, l(0, 0, 0, 0)
  and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
  movc r3.xyz, r12.xyzx, r11.xyzx, r3.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
  iadd r3.xyz, r11.xyzx, r3.xyzx
  movc r6.xyz, r10.xyzx, r3.xyzx, l(0,0,0,0)
  utof r2.xw, r9.zzzw
  ushr r9.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r3.x, r4.z
  mov r3.yz, r9.xxwx
  and r10.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r3.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r13.xyzx, r3.xyzx, l(0, 0, 0, 0)
  and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
  movc r3.xyz, r12.xyzx, r11.xyzx, r3.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
  iadd r3.xyz, r11.xyzx, r3.xyzx
  movc r7.xyz, r10.xyzx, r3.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.xyz, r9.xyzx, l(1023, 1023, 1023, 0)
  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.xyzx, r9.xyzx, l(0,0,0,0)
  ushr r9.xyzw, r4.wxxx, l(30, 10, 20, 30)
  utof r3.xy, r9.xwxx
  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.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 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.x
  mov r4.w, r3.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 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 r1.z, r2.y, l(4)
if_nz r1.z
  mul r2.x, r0.w, l(0.500000)
  imad r3.xy, r0.zzzz, l(36, 36, 0, 0), l(2880, 2896, 0, 0)
  ld_raw r9.xyzw, r3.x, T0[0].wxyz
  ld_raw r10.x, r3.y, T0[0].xxxx
  switch r3.w
    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 r3.x, r9.y
    mov r3.yz, r14.xxyx
    and r15.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
    and r16.xyz, r3.xyzx, l(127, 127, 127, 0)
    ubfe r17.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r18.xyzx, r3.xyzx, l(0, 0, 0, 0)
    and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
    movc r3.xyz, r17.xyzx, r16.xyzx, r3.xyzx
    ishl r16.xyz, r19.xyzx, l(23, 23, 23, 0)
    iadd r16.xyz, r16.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
    iadd r3.xyz, r16.xyzx, r3.xyzx
    movc r11.xyz, r15.xyzx, r3.xyzx, l(0,0,0,0)
    utof r3.xy, r14.zwzz
    ushr r14.xyzw, r9.zwwz, l(10, 10, 20, 20)
    mov r15.x, r9.z
    mov r15.yz, r14.xxwx
    and r16.xyz, r15.xyzx, l(1023, 1023, 1023, 0)
    and r17.xyz, r15.xyzx, l(127, 127, 127, 0)
    ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r15.xyzx
    firstbit_hi r19.xyz, r17.xyzx
    iadd r19.xyz, r19.xyzx, l(-24, -24, -24, 0)
    movc r19.xyz, r17.xyzx, r19.xyzx, l(8,8,8,0)
    iadd r20.xyz, -r19.xyzx, l(1, 1, 1, 0)
    movc r20.xyz, r18.xyzx, r18.xyzx, r20.xyzx
    bfi r15.xyz, l(7, 7, 7, 0), r19.xyzx, r15.xyzx, l(0, 0, 0, 0)
    and r15.xyz, r15.xyzx, l(127, 127, 127, 0)
    movc r15.xyz, r18.xyzx, r17.xyzx, r15.xyzx
    ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
    iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r15.xyz, r15.xyzx, l(16, 16, 16, 0)
    iadd r15.xyz, r17.xyzx, r15.xyzx
    movc r12.xyz, r16.xyzx, r15.xyzx, l(0,0,0,0)
    mul r3.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 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 r2.w, r10.w
    mul r10.w, r2.w, l(0.333333)
    mov r11.w, r3.x
    mov r12.w, r3.y
    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.xy, r10.yxyy, l(16, 16, 0, 0)
    itof r3.xy, r3.xyxx
    mul r3.xy, r3.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
    max r10.xy, r3.xyxx, 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 r2.w, r10.x, l(16)
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r2.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 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 r2.w, r2.y, l(6)
  if_nz r2.w
    mul r2.x, 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 r3.w
      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 r3.x, r10.y
      mov r3.yz, r15.xxyx
      and r16.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
      and r17.xyz, r3.xyzx, l(127, 127, 127, 0)
      ubfe r18.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r19.xyzx, r3.xyzx, l(0, 0, 0, 0)
      and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
      movc r3.xyz, r18.xyzx, r17.xyzx, r3.xyzx
      ishl r17.xyz, r20.xyzx, l(23, 23, 23, 0)
      iadd r17.xyz, r17.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
      iadd r3.xyz, r17.xyzx, r3.xyzx
      movc r12.xyz, r16.xyzx, r3.xyzx, l(0,0,0,0)
      utof r3.xy, r15.zwzz
      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.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 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 r2.w, r11.w
      mul r11.w, r2.w, l(0.333333)
      mov r12.w, r3.x
      mov r13.w, r3.y
      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.xy, r11.yxyy, l(16, 16, 0, 0)
      itof r3.xy, r3.xyxx
      mul r3.xy, r3.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
      max r11.xy, r3.xyxx, 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 r2.w, r11.x, l(16)
      f16tof32 r11.x, r11.x
      f16tof32 r11.y, r2.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)
      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 r3.w
      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 r3.x, r15.y
      mov r3.yz, r19.xxyx
      and r20.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
      and r21.xyz, r3.xyzx, l(127, 127, 127, 0)
      ubfe r22.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r23.xyzx, r3.xyzx, l(0, 0, 0, 0)
      and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
      movc r3.xyz, r22.xyzx, r21.xyzx, r3.xyzx
      ishl r21.xyz, r24.xyzx, l(23, 23, 23, 0)
      iadd r21.xyz, r21.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
      iadd r3.xyz, r21.xyzx, r3.xyzx
      movc r16.xyz, r20.xyzx, r3.xyzx, l(0,0,0,0)
      utof r3.xy, r19.zwzz
      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.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 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 r2.w, r9.w
      mul r9.w, r2.w, l(0.333333)
      mov r16.w, r3.x
      mov r17.w, r3.y
      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.xy, r9.yxyy, l(16, 16, 0, 0)
      itof r3.xy, r3.xyxx
      mul r3.xy, r3.xyxx, l(0.000977, 0.000977, 0.000000, 0.000000)
      max r9.xy, r3.xyxx, 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 r2.w, r9.x, l(16)
      f16tof32 r9.x, r9.x
      f16tof32 r9.y, r2.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)
      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.x, r0.w
endif 
mul r6.xyzw, r2.xxxx, r6.xyzw
mul r7.xyzw, r2.xxxx, r7.xyzw
mul r8.xyzw, r2.xxxx, r8.xzyw
mul r4.xyzw, r2.xxxx, r4.xyzw
mul r5.xyzw, r2.xxxx, r5.xyzw
if_nz r1.w
  mov r6.xz, r6.zzxz
  mov r7.xz, r7.zzxz
  mov r8.xy, r8.yxyy
  mov r4.xz, r4.zzxz
  mov r9.xy, r5.zxzz
else 
  mov r9.xy, r5.xzxx
endif 
if_nz r1.x
  mov r6.xyzw, r7.xyzw
  mov r9.zw, r5.yyyw
  mov r4.xyzw, r9.xzyw
endif 
if_nz r1.y
  mov r6.xyzw, r4.xyzw
  mov r7.xz, r9.xxyx
  mov r7.yw, r5.yyyw
endif 
ieq r2.x, r0.x, l(5)
if_nz r2.x
  mov r6.xyzw, r6.wzyx
  mov r7.xyzw, r7.wzyx
  mov r4.xyzw, r4.wzyx
  mov r5.xz, r5.wwyw
  mov r5.yw, r9.yyyx
  mov r2.w, l(2)
else 
  mov r5.xz, r9.xxyx
  mov r2.w, r0.x
endif 
ieq r3.x, r2.w, l(4)
if_nz r3.x
  mov r6.xyzw, r6.yxwz
  mov r7.xyzw, r7.yxwz
  mov r4.xyzw, r4.yxwz
  mov r5.xyzw, r5.yxwz
  mov r2.w, l(2)
endif 
ieq r3.xyz, r2.wwww, l(1, 2, 3, 0)
or r3.xy, r3.yzyy, r3.xyxx
if_nz r3.x
  ishl r9.xyzw, r6.xyzw, l(8, 8, 8, 8)
  and r9.xyzw, r9.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r10.xyzw, r6.xyzw, l(8, 8, 8, 8)
  and r10.xyzw, r10.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r6.xyzw, r9.xyzw, r10.xyzw
  ishl r9.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r9.xyzw, r9.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r10.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r10.xyzw, r10.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r7.xyzw, r9.xyzw, r10.xyzw
  ishl r9.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r9.xyzw, r9.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r10.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r10.xyzw, r10.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r4.xyzw, r9.xyzw, r10.xyzw
  ishl r9.xyzw, r5.xyzw, l(8, 8, 8, 8)
  and r9.xyzw, r9.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r10.xyzw, r5.xyzw, l(8, 8, 8, 8)
  and r10.xyzw, r10.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r5.xyzw, r9.xyzw, r10.xyzw
endif 
if_nz r3.y
  ushr r9.xyzw, r6.xyzw, l(16, 16, 16, 16)
  bfi r6.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r6.xyzw, r9.xyzw
  ushr r9.xyzw, r7.xyzw, l(16, 16, 16, 16)
  bfi r7.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r7.xyzw, r9.xyzw
  ushr r9.xyzw, r4.xyzw, l(16, 16, 16, 16)
  bfi r4.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r9.xyzw
  ushr r9.xyzw, r5.xyzw, l(16, 16, 16, 16)
  bfi r5.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r5.xyzw, r9.xyzw
endif 
store_uav_typed U0[0].xyzw, r0.yyyy, r6.xyzw
iadd r6.xyzw, r0.yyyy, l(1, 3, 4, 2)
store_uav_typed U0[0].xyzw, r6.xxxx, r7.xyzw
store_uav_typed U0[0].xyzw, r6.yyyy, r4.xyzw
store_uav_typed U0[0].xyzw, r6.zzzz, r5.xyzw
ld_raw r4.xyzw, r2.z, T0[0].wxyz
switch r3.w
  case l(0)
  case l(1)
  ushr r10.yzw, r4.yyyy, l(0, 8, 16, 24)
  mov r10.x, r4.y
  and r10.xyzw, r10.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 r10.yzw, r4.zzzz, l(0, 8, 16, 24)
  mov r10.x, r4.z
  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, r4.wwww, l(0, 8, 16, 24)
  mov r10.x, r4.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 r4.yzw, r4.xxxx, l(0, 8, 16, 24)
  and r10.xyzw, r4.xyzw, l(255, 255, 255, 255)
  utof r10.xyzw, r10.xyzw
  mul r4.xyzw, r10.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
  break 
  case l(2)
  case l(10)
  ushr r10.yzw, r4.yyyy, l(0, 10, 20, 30)
  mov r10.x, r4.y
  and r10.xyzw, r10.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 r10.yzw, r4.zzzz, l(0, 10, 20, 30)
  mov r10.x, r4.z
  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, r4.wwww, l(0, 10, 20, 30)
  mov r10.x, r4.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 r4.yzw, r4.xxxx, l(0, 10, 20, 30)
  and r10.xyzw, r4.xyzw, l(1023, 1023, 1023, 3)
  utof r10.xyzw, r10.xyzw
  mul r4.xyzw, r10.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
  break 
  case l(3)
  case l(12)
  ushr r10.xyzw, r4.yyyz, l(10, 20, 30, 30)
  mov r3.x, r4.y
  mov r3.yz, r10.xxyx
  and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r3.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r13.xyzx, r3.xyzx, l(0, 0, 0, 0)
  and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
  movc r3.xyz, r12.xyzx, r11.xyzx, r3.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
  iadd r3.xyz, r11.xyzx, r3.xyzx
  movc r5.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
  utof r2.zw, r10.zzzw
  ushr r10.xyzw, r4.zwwz, l(10, 10, 20, 20)
  mov r3.x, r4.z
  mov r3.yz, r10.xxwx
  and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
  and r11.xyz, r3.xyzx, l(127, 127, 127, 0)
  ubfe r12.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r13.xyzx, r3.xyzx, l(0, 0, 0, 0)
  and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
  movc r3.xyz, r12.xyzx, r11.xyzx, r3.xyzx
  ishl r11.xyz, r14.xyzx, l(23, 23, 23, 0)
  iadd r11.xyz, r11.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
  iadd r3.xyz, r11.xyzx, r3.xyzx
  movc r7.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
  mul r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
  mov r10.x, r4.w
  and r3.xyz, r10.xyzx, l(1023, 1023, 1023, 0)
  and r6.xyz, r10.xyzx, l(127, 127, 127, 0)
  ubfe r11.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r10.xyzx
  firstbit_hi r12.xyz, r6.xyzx
  iadd r12.xyz, r12.xyzx, l(-24, -24, -24, 0)
  movc r12.xyz, r6.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 r10.xyz, l(7, 7, 7, 0), r12.xyzx, r10.xyzx, l(0, 0, 0, 0)
  and r10.xyz, r10.xyzx, l(127, 127, 127, 0)
  movc r6.xyz, r11.xyzx, r6.xyzx, r10.xyzx
  ishl r10.xyz, r13.xyzx, l(23, 23, 23, 0)
  iadd r10.xyz, r10.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
  ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
  iadd r6.xyz, r10.xyzx, r6.xyzx
  movc r9.xyz, r3.xyzx, r6.xyzx, l(0,0,0,0)
  ushr r10.xyzw, r4.wxxx, l(30, 10, 20, 30)
  utof r3.xy, r10.xwxx
  mov r10.x, r4.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 r4.xyz, r6.xyzx, r10.xyzx, l(0,0,0,0)
  mul r3.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
  mov r5.w, r2.z
  mov r7.w, r2.w
  mov r9.w, r3.x
  mov r4.w, r3.y
  break 
  case l(4)
  ishl r10.xyzw, r4.yzwx, l(16, 16, 16, 16)
  mov r11.xz, r10.xxyx
  mov r11.yw, r4.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 r5.xy, r11.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  max r7.xy, r11.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r4.yz, r10.zzwz
  ishr r10.xyzw, r4.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 r4.xy, r10.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  mov r5.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  case l(6)
  ushr r10.xyzw, r4.yzwx, l(16, 16, 16, 16)
  f16tof32 r5.x, r4.y
  f16tof32 r5.y, r10.x
  f16tof32 r7.x, r4.z
  f16tof32 r7.y, r10.y
  f16tof32 r9.x, r4.w
  f16tof32 r9.y, r10.z
  f16tof32 r4.x, r4.x
  f16tof32 r4.y, r10.w
  mov r5.zw, l(0,0,0,0)
  mov r7.zw, l(0,0,0,0)
  mov r9.zw, l(0,0,0,0)
  mov r4.zw, l(0,0,0,0)
  break 
  default 
  mov r5.x, r4.y
  mov r5.yzw, l(0,0,0,0)
  mov r7.x, r4.z
  mov r7.yzw, l(0,0,0,0)
  mov r9.x, r4.w
  mov r9.yzw, l(0,0,0,0)
  mov r4.yzw, l(0,0,0,0)
  break 
endswitch 
if_nz r1.z
  mul r1.z, r0.w, l(0.500000)
  imad r2.z, r0.z, l(36), l(2900)
  ld_raw r10.xyzw, r2.z, T0[0].wxyz
  switch r3.w
    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 r3.x, r10.y
    mov r3.yz, r14.xxyx
    and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
    and r15.xyz, r3.xyzx, l(127, 127, 127, 0)
    ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r17.xyzx, r3.xyzx, l(0, 0, 0, 0)
    and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
    movc r3.xyz, r16.xyzx, r15.xyzx, r3.xyzx
    ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
    iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
    iadd r3.xyz, r15.xyzx, r3.xyzx
    movc r11.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
    utof r2.zw, r14.zzzw
    ushr r14.xyzw, r10.zwwz, l(10, 10, 20, 20)
    mov r3.x, r10.z
    mov r3.yz, r14.xxwx
    and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
    and r15.xyz, r3.xyzx, l(127, 127, 127, 0)
    ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r17.xyzx, r3.xyzx, l(0, 0, 0, 0)
    and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
    movc r3.xyz, r16.xyzx, r15.xyzx, r3.xyzx
    ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
    iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
    iadd r3.xyz, r15.xyzx, r3.xyzx
    movc r12.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
    mul r2.zw, r2.zzzw, l(0.000000, 0.000000, 0.333333, 0.333333)
    mov r14.x, r10.w
    and r3.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
    and r6.xyz, r14.xyzx, l(127, 127, 127, 0)
    ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
    firstbit_hi r16.xyz, r6.xyzx
    iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
    movc r16.xyz, r6.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 r14.xyz, l(7, 7, 7, 0), r16.xyzx, r14.xyzx, l(0, 0, 0, 0)
    and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
    movc r6.xyz, r15.xyzx, r6.xyzx, r14.xyzx
    ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
    iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
    ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
    iadd r6.xyz, r14.xyzx, r6.xyzx
    movc r13.xyz, r3.xyzx, r6.xyzx, l(0,0,0,0)
    ushr r14.xyzw, r10.wxxx, l(30, 10, 20, 30)
    utof r3.xy, r14.xwxx
    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 r3.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
    mov r11.w, r2.z
    mov r12.w, r2.w
    mov r13.w, r3.x
    mov r10.w, r3.y
    break 
    case l(4)
    ishl r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
    mov r15.xz, r14.xxyx
    mov r15.yw, r10.yyyz
    ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
    itof r15.xyzw, r15.xyzw
    mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r10.yz, r14.zzwz
    ishr r14.xyzw, r10.ywzx, l(16, 16, 16, 16)
    itof r14.xyzw, r14.xyzw
    mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
    max r13.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
    max r10.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    case l(6)
    ushr r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
    f16tof32 r11.x, r10.y
    f16tof32 r11.y, r14.x
    f16tof32 r12.x, r10.z
    f16tof32 r12.y, r14.y
    f16tof32 r13.x, r10.w
    f16tof32 r13.y, r14.z
    f16tof32 r10.x, r10.x
    f16tof32 r10.y, r14.w
    mov r11.zw, l(0,0,0,0)
    mov r12.zw, l(0,0,0,0)
    mov r13.zw, l(0,0,0,0)
    mov r10.zw, l(0,0,0,0)
    break 
    default 
    mov r11.x, r10.y
    mov r11.yzw, l(0,0,0,0)
    mov r12.x, r10.z
    mov r12.yzw, l(0,0,0,0)
    mov r13.x, r10.w
    mov r13.yzw, l(0,0,0,0)
    mov r10.yzw, l(0,0,0,0)
    break 
  endswitch 
  add r5.xyzw, r5.xyzw, r11.xyzw
  add r7.xyzw, r7.xyzw, r12.xyzw
  add r9.xyzw, r9.xyzw, r13.xyzw
  add r4.xyzw, r4.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 r3.w
      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 r3.x, r10.y
      mov r3.yz, r14.xxyx
      and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r3.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r17.xyzx, r3.xyzx, l(0, 0, 0, 0)
      and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
      movc r3.xyz, r16.xyzx, r15.xyzx, r3.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
      iadd r3.xyz, r15.xyzx, r3.xyzx
      movc r11.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
      utof r2.yw, r14.zzzw
      ushr r14.xyzw, r10.zwwz, l(10, 10, 20, 20)
      mov r3.x, r10.z
      mov r3.yz, r14.xxwx
      and r6.xyz, r3.xyzx, l(1023, 1023, 1023, 0)
      and r15.xyz, r3.xyzx, l(127, 127, 127, 0)
      ubfe r16.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r3.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 r3.xyz, l(7, 7, 7, 0), r17.xyzx, r3.xyzx, l(0, 0, 0, 0)
      and r3.xyz, r3.xyzx, l(127, 127, 127, 0)
      movc r3.xyz, r16.xyzx, r15.xyzx, r3.xyzx
      ishl r15.xyz, r18.xyzx, l(23, 23, 23, 0)
      iadd r15.xyz, r15.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r3.xyz, r3.xyzx, l(16, 16, 16, 0)
      iadd r3.xyz, r15.xyzx, r3.xyzx
      movc r12.xyz, r6.xyzx, r3.xyzx, l(0,0,0,0)
      mul r2.yw, r2.yyyw, l(0.000000, 0.333333, 0.000000, 0.333333)
      mov r14.x, r10.w
      and r3.xyz, r14.xyzx, l(1023, 1023, 1023, 0)
      and r6.xyz, r14.xyzx, l(127, 127, 127, 0)
      ubfe r15.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r14.xyzx
      firstbit_hi r16.xyz, r6.xyzx
      iadd r16.xyz, r16.xyzx, l(-24, -24, -24, 0)
      movc r16.xyz, r6.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 r14.xyz, l(7, 7, 7, 0), r16.xyzx, r14.xyzx, l(0, 0, 0, 0)
      and r14.xyz, r14.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r15.xyzx, r6.xyzx, r14.xyzx
      ishl r14.xyz, r17.xyzx, l(23, 23, 23, 0)
      iadd r14.xyz, r14.xyzx, l(0x3e000000, 0x3e000000, 0x3e000000, 0)
      ishl r6.xyz, r6.xyzx, l(16, 16, 16, 0)
      iadd r6.xyz, r14.xyzx, r6.xyzx
      movc r13.xyz, r3.xyzx, r6.xyzx, l(0,0,0,0)
      ushr r14.xyzw, r10.wxxx, l(30, 10, 20, 30)
      utof r3.xy, r14.xwxx
      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 r3.xy, r3.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r11.w, r2.y
      mov r12.w, r2.w
      mov r13.w, r3.x
      mov r10.w, r3.y
      break 
      case l(4)
      ishl r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      mov r15.xz, r14.xxyx
      mov r15.yw, r10.yyyz
      ishr r15.xyzw, r15.xyzw, l(16, 16, 16, 16)
      itof r15.xyzw, r15.xyzw
      mul r15.xyzw, r15.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r11.xy, r15.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r12.xy, r15.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r10.yz, r14.zzwz
      ishr r14.xyzw, r10.ywzx, l(16, 16, 16, 16)
      itof r14.xyzw, r14.xyzw
      mul r14.xyzw, r14.xyzw, l(0.000977, 0.000977, 0.000977, 0.000977)
      max r13.xy, r14.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
      max r10.xy, r14.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r11.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r14.xyzw, r10.yzwx, l(16, 16, 16, 16)
      f16tof32 r11.x, r10.y
      f16tof32 r11.y, r14.x
      f16tof32 r12.x, r10.z
      f16tof32 r12.y, r14.y
      f16tof32 r13.x, r10.w
      f16tof32 r13.y, r14.z
      f16tof32 r10.x, r10.x
      f16tof32 r10.y, r14.w
      mov r11.zw, l(0,0,0,0)
      mov r12.zw, l(0,0,0,0)
      mov r13.zw, l(0,0,0,0)
      mov r10.zw, l(0,0,0,0)
      break 
      default 
      mov r11.x, r10.y
      mov r11.yzw, l(0,0,0,0)
      mov r12.x, r10.z
      mov r12.yzw, l(0,0,0,0)
      mov r13.x, r10.w
      mov r13.yzw, l(0,0,0,0)
      mov r10.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r11.xyzw, r5.xyzw, r11.xyzw
    add r12.xyzw, r7.xyzw, r12.xyzw
    add r13.xyzw, r9.xyzw, r13.xyzw
    add r10.xyzw, r4.xyzw, r10.xyzw
    ld_raw r14.xyzw, r2.z, T0[0].wxyz
    switch r3.w
      case l(0)
      case l(1)
      ushr r17.yzw, r14.yyyy, l(0, 8, 16, 24)
      mov r17.x, r14.y
      and r17.xyzw, r17.xyzw, l(255, 255, 255, 255)
      utof r17.xyzw, r17.xyzw
      mul r3.xyzw, r17.xyzw, l(0.003922, 0.003922, 0.003922, 0.003922)
      ushr r17.yzw, r14.zzzz, l(0, 8, 16, 24)
      mov r17.x, r14.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, r14.wwww, l(0, 8, 16, 24)
      mov r17.x, r14.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 r14.yzw, r14.xxxx, l(0, 8, 16, 24)
      and r17.xyzw, r14.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)
      break 
      case l(2)
      case l(10)
      ushr r17.yzw, r14.yyyy, l(0, 10, 20, 30)
      mov r17.x, r14.y
      and r17.xyzw, r17.xyzw, l(1023, 1023, 1023, 3)
      utof r17.xyzw, r17.xyzw
      mul r3.xyzw, r17.xyzw, l(0.000978, 0.000978, 0.000978, 0.333333)
      ushr r17.yzw, r14.zzzz, l(0, 10, 20, 30)
      mov r17.x, r14.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, r14.wwww, l(0, 10, 20, 30)
      mov r17.x, r14.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 r14.yzw, r14.xxxx, l(0, 10, 20, 30)
      and r17.xyzw, r14.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)
      break 
      case l(3)
      case l(12)
      ushr r17.xyzw, r14.yyyz, l(10, 20, 30, 30)
      mov r6.x, r14.y
      mov r6.yz, r17.xxyx
      and r2.yzw, r6.xxyz, l(0, 1023, 1023, 1023)
      and r18.xyz, r6.xyzx, l(127, 127, 127, 0)
      ubfe r19.xyz, l(3, 3, 3, 0), l(7, 7, 7, 0), r6.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 r6.xyz, l(7, 7, 7, 0), r20.xyzx, r6.xyzx, l(0, 0, 0, 0)
      and r6.xyz, r6.xyzx, l(127, 127, 127, 0)
      movc r6.xyz, r19.xyzx, r18.xyzx, r6.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 r3.xyz, r2.yzwy, r6.xyzx, l(0,0,0,0)
      utof r2.yz, r17.zzwz
      ushr r17.xyzw, r14.zwwz, l(10, 10, 20, 20)
      mov r6.x, r14.z
      mov r6.yz, r17.xxwx
      and r18.xyz, r6.xyzx, l(1023, 1023, 1023, 0)
      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, r18.xyzx, r6.xyzx, l(0,0,0,0)
      mul r2.yz, r2.yyzy, l(0.000000, 0.333333, 0.333333, 0.000000)
      mov r17.x, r14.w
      and r6.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, r6.xyzx, r17.xyzx, l(0,0,0,0)
      ushr r17.xyzw, r14.wxxx, l(30, 10, 20, 30)
      utof r6.xy, r17.xwxx
      mov r17.x, r14.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 r14.xyz, r18.xyzx, r17.xyzx, l(0,0,0,0)
      mul r6.xy, r6.xyxx, l(0.333333, 0.333333, 0.000000, 0.000000)
      mov r3.w, r2.y
      mov r15.w, r2.z
      mov r16.w, r6.x
      mov r14.w, r6.y
      break 
      case l(4)
      ishl r17.xyzw, r14.yzwx, l(16, 16, 16, 16)
      mov r18.xz, r17.xxyx
      mov r18.yw, r14.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 r3.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 r14.yz, r17.zzwz
      ishr r17.xyzw, r14.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 r14.xy, r17.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
      mov r3.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      break 
      case l(6)
      ushr r17.xyzw, r14.yzwx, l(16, 16, 16, 16)
      f16tof32 r3.x, r14.y
      f16tof32 r3.y, r17.x
      f16tof32 r15.x, r14.z
      f16tof32 r15.y, r17.y
      f16tof32 r16.x, r14.w
      f16tof32 r16.y, r17.z
      f16tof32 r14.x, r14.x
      f16tof32 r14.y, r17.w
      mov r3.zw, l(0,0,0,0)
      mov r15.zw, l(0,0,0,0)
      mov r16.zw, l(0,0,0,0)
      mov r14.zw, l(0,0,0,0)
      break 
      default 
      mov r3.x, r14.y
      mov r3.yzw, l(0,0,0,0)
      mov r15.x, r14.z
      mov r15.yzw, l(0,0,0,0)
      mov r16.x, r14.w
      mov r16.yzw, l(0,0,0,0)
      mov r14.yzw, l(0,0,0,0)
      break 
    endswitch 
    add r5.xyzw, r3.xyzw, r11.xyzw
    add r7.xyzw, r12.xyzw, r15.xyzw
    add r9.xyzw, r13.xyzw, r16.xyzw
    add r4.xyzw, r10.xyzw, r14.xyzw
  else 
    mov r0.w, r1.z
  endif 
endif 
mul r3.xyzw, r0.wwww, r5.xyzw
mul r5.xyzw, r0.wwww, r7.xzyw
mul r7.xyzw, r0.wwww, r9.xyzw
mul r4.xyzw, r0.wwww, r4.xyzw
if_nz r1.w
  mov r3.xz, r3.zzxz
  mov r5.xy, r5.yxyy
  mov r7.xz, r7.zzxz
  mov r4.xz, r4.zzxz
endif 
movc r8.xyzw, r1.yyyy, r3.xyzw, r8.xzyw
movc r1.xyzw, r1.xxxx, r7.xyzw, r5.xzyw
if_nz r2.x
  mov r8.xyzw, r8.wzyx
  mov r3.xyzw, r3.wzyx
  mov r1.xyzw, r1.wzyx
  mov r7.xyzw, r7.wzyx
  mov r4.yw, r4.wwwy
  mov r4.xyzw, r4.yzwx
  mov r0.x, l(2)
endif 
ieq r0.z, r0.x, l(4)
if_nz r0.z
  mov r8.xyzw, r8.yxwz
  mov r3.xyzw, r3.yxwz
  mov r1.xyzw, r1.yxwz
  mov r7.xyzw, r7.yxwz
  mov r4.xyzw, r4.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 r5.xyzw, r8.xyzw, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r8.xyzw, r2.xyzw, r5.xyzw
  ishl r2.xyzw, r3.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r5.xyzw, r3.xyzw, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r3.xyzw, r2.xyzw, r5.xyzw
  ishl r2.xyzw, r1.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r5.xyzw, r1.xyzw, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r1.xyzw, r2.xyzw, r5.xyzw
  ishl r2.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r5.xyzw, r7.xyzw, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r7.xyzw, r2.xyzw, r5.xyzw
  ishl r2.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r2.xyzw, r2.xyzw, l(0xff00ff00, 0xff00ff00, 0xff00ff00, 0xff00ff00)
  ushr r5.xyzw, r4.xyzw, l(8, 8, 8, 8)
  and r5.xyzw, r5.xyzw, l(0x00ff00ff, 0x00ff00ff, 0x00ff00ff, 0x00ff00ff)
  iadd r4.xyzw, r2.xyzw, r5.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, r3.xyzw, l(16, 16, 16, 16)
  bfi r3.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r3.xyzw, r2.xyzw
  ushr r2.xyzw, r1.xyzw, l(16, 16, 16, 16)
  bfi r1.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r1.xyzw, r2.xyzw
  ushr r2.xyzw, r7.xyzw, l(16, 16, 16, 16)
  bfi r7.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r7.xyzw, r2.xyzw
  ushr r2.xyzw, r4.xyzw, l(16, 16, 16, 16)
  bfi r4.xyzw, l(16, 16, 16, 16), l(16, 16, 16, 16), r4.xyzw, r2.xyzw
endif 
store_uav_typed U0[0].xyzw, r6.wwww, r8.xyzw
iadd r2.xyzw, r0.yyyy, l(5, 6, 7, 8)
store_uav_typed U0[0].xyzw, r2.xxxx, r3.xyzw
store_uav_typed U0[0].xyzw, r2.yyyy, r1.xyzw
store_uav_typed U0[0].xyzw, r2.zzzz, r7.xyzw
store_uav_typed U0[0].xyzw, r2.wwww, r4.xyzw
ret 
// Approximately 1866 instruction slots used
