void ConvertYCbCrToRGB(unsigned char *buf, int n) {
  double lum, cb, cr;
  double r, g, b;
  unsigned char *pn;
  pn = buf + n;
  while (buf < pn) {
    lum = buf[0];
    cb = buf[1] - 127.5;
    cr = buf[2] - 127.5;
    r = (((lum + cr * 1.402) < 0) ? (int)((lum + cr * 1.402) - 0.5)
                                  : (int)((lum + cr * 1.402) + 0.5));
    b = (((lum + cb * 1.772) < 0) ? (int)((lum + cb * 1.772) - 0.5)
                                  : (int)((lum + cb * 1.772) + 0.5));
    g = ((((lum - 0.114 * b - 0.299 * r) / 0.587) < 0)
             ? (int)(((lum - 0.114 * b - 0.299 * r) / 0.587) - 0.5)
             : (int)(((lum - 0.114 * b - 0.299 * r) / 0.587) + 0.5));
    buf[0] = (unsigned char)((r) < 0 ? 0 : ((r) > 255 ? 255 : (r)));
    buf[1] = (unsigned char)((g) < 0 ? 0 : ((g) > 255 ? 255 : (g)));
    buf[2] = (unsigned char)((b) < 0 ? 0 : ((b) > 255 ? 255 : (b)));
    buf += 3;
  }
}


x86 assembly (clang, -O0):
<ConvertYCbCrToRGB>:
push   %rbp
mov    %rsp,%rbp
push   %rax
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    -0x8(%rbp),%rax
movslq -0xc(%rbp),%rcx
add    %rcx,%rax
mov    %rax,-0x48(%rbp)
mov    -0x8(%rbp),%rax
cmp    -0x48(%rbp),%rax
jae    14e3 <ConvertYCbCrToRGB+0x3e3>
mov    -0x8(%rbp),%rax
movzbl (%rax),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x18(%rbp)
mov    -0x8(%rbp),%rax
movzbl 0x1(%rax),%eax
cvtsi2sd %eax,%xmm0
movsd  0xebb(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
mov    -0x8(%rbp),%rax
movzbl 0x2(%rax),%eax
cvtsi2sd %eax,%xmm0
movsd  0xe9e(%rip),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x28(%rbp),%xmm1
movsd  0xe7b(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    11cc <ConvertYCbCrToRGB+0xcc>
movsd  -0x18(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0xe54(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xe54(%rip),%xmm1
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x4c(%rbp)
jmp    11f9 <ConvertYCbCrToRGB+0xf9>
movsd  -0x18(%rbp),%xmm1
movsd  -0x28(%rbp),%xmm0
movsd  0xe22(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xe22(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x4c(%rbp)
mov    -0x4c(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x18(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
movsd  0xe01(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    125e <ConvertYCbCrToRGB+0x15e>
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
movsd  0xdda(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xdc2(%rip),%xmm1
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x50(%rbp)
jmp    128b <ConvertYCbCrToRGB+0x18b>
movsd  -0x18(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
movsd  0xda8(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xd90(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x50(%rbp)
mov    -0x50(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x18(%rbp),%xmm1
movsd  -0x40(%rbp),%xmm0
movsd  0xd87(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
movsd  0xd6a(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  0xd52(%rip),%xmm0
divsd  %xmm0,%xmm1
xorps  %xmm0,%xmm0
ucomisd %xmm1,%xmm0
jbe    1332 <ConvertYCbCrToRGB+0x232>
movsd  -0x18(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm1
movsd  0xd3f(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0xd22(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xd0a(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xcee(%rip),%xmm1
subsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x54(%rbp)
jmp    1380 <ConvertYCbCrToRGB+0x280>
movsd  -0x18(%rbp),%xmm0
movsd  -0x40(%rbp),%xmm1
movsd  0xcec(%rip),%xmm2
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x30(%rbp),%xmm0
movsd  0xccf(%rip),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  0xcb7(%rip),%xmm1
divsd  %xmm1,%xmm0
movsd  0xc9b(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%eax
mov    %eax,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
xorps  %xmm0,%xmm0
ucomisd -0x30(%rbp),%xmm0
jbe    13a7 <ConvertYCbCrToRGB+0x2a7>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
jmp    13e4 <ConvertYCbCrToRGB+0x2e4>
movsd  -0x30(%rbp),%xmm0
movsd  0xc84(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    13d0 <ConvertYCbCrToRGB+0x2d0>
movsd  0xc72(%rip),%xmm0
movsd  %xmm0,-0x68(%rbp)
jmp    13da <ConvertYCbCrToRGB+0x2da>
movsd  -0x30(%rbp),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x60(%rbp),%xmm0
cvttsd2si %xmm0,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,(%rax)
xorps  %xmm0,%xmm0
ucomisd -0x38(%rbp),%xmm0
jbe    1410 <ConvertYCbCrToRGB+0x310>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
jmp    144d <ConvertYCbCrToRGB+0x34d>
movsd  -0x38(%rbp),%xmm0
movsd  0xc1b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1439 <ConvertYCbCrToRGB+0x339>
movsd  0xc09(%rip),%xmm0
movsd  %xmm0,-0x78(%rbp)
jmp    1443 <ConvertYCbCrToRGB+0x343>
movsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x70(%rbp),%xmm0
cvttsd2si %xmm0,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x1(%rax)
xorps  %xmm0,%xmm0
ucomisd -0x40(%rbp),%xmm0
jbe    147a <ConvertYCbCrToRGB+0x37a>
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
jmp    14c0 <ConvertYCbCrToRGB+0x3c0>
movsd  -0x40(%rbp),%xmm0
movsd  0xbb1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    14a6 <ConvertYCbCrToRGB+0x3a6>
movsd  0xb9f(%rip),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
jmp    14b3 <ConvertYCbCrToRGB+0x3b3>
movsd  -0x40(%rbp),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
cvttsd2si %xmm0,%eax
mov    %al,%cl
mov    -0x8(%rbp),%rax
mov    %cl,0x2(%rax)
mov    -0x8(%rbp),%rax
add    $0x3,%rax
mov    %rax,-0x8(%rbp)
jmp    111b <ConvertYCbCrToRGB+0x1b>
add    $0x8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<ConvertYCbCrToRGB>:
sub    $0x128,%rsp
test   %esi,%esi
jle    2846 <ConvertYCbCrToRGB+0x1746>
movslq %esi,%r11
add    %rdi,%r11
lea    0x3(%rdi),%r8
cmp    %r8,%r11
mov    %r8,%rax
cmova  %r11,%rax
sub    %rdi,%rax
xor    %ecx,%ecx
add    $0xfffffffffffffffd,%rax
setne  %cl
sub    %rcx,%rax
movabs $0xaaaaaaaaaaaaaaab,%r9
aa aa aa
mul    %r9
shr    %rdx
lea    (%rdx,%rcx,1),%rax
cmp    $0x7,%rax
jae    1154 <ConvertYCbCrToRGB+0x54>
mov    %rdi,%rax
jmp    284e <ConvertYCbCrToRGB+0x174e>
cmp    $0xf,%rax
jae    1161 <ConvertYCbCrToRGB+0x61>
xor    %ecx,%ecx
jmp    20c5 <ConvertYCbCrToRGB+0xfc5>
lea    (%rdx,%rcx,1),%r10
add    $0x1,%r10
mov    %r10,%rcx
and    $0xfffffffffffffff0,%rcx
mov    %rcx,%rdx
mov    %rdi,%rax
cs nopw 0x0(%rax,%rax,1)
movdqu 0x20(%rax),%xmm5
movdqa %xmm5,0x30(%rsp)
movdqu 0x10(%rax),%xmm0
movdqu (%rax),%xmm3
movdqa %xmm3,-0x30(%rsp)
pxor   %xmm6,%xmm6
punpckhbw %xmm6,%xmm3
pshufhw $0xec,%xmm3,%xmm1
movdqa %xmm0,%xmm2
punpcklbw %xmm6,%xmm2
pshufd $0x64,%xmm2,%xmm4
pshufhw $0xe6,%xmm4,%xmm4
punpckhdq %xmm4,%xmm1
packuswb %xmm1,%xmm1
punpcklbw %xmm6,%xmm1
punpcklwd %xmm6,%xmm1
pshufd $0xee,%xmm1,%xmm4
cvtdq2pd %xmm4,%xmm11
movapd %xmm11,-0x40(%rsp)
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,-0x80(%rsp)
punpcklbw %xmm6,%xmm5
movdqa 0x1e11(%rip),%xmm7
movdqa %xmm7,%xmm1
pandn  %xmm5,%xmm1
punpckhbw %xmm6,%xmm0
pxor   %xmm9,%xmm9
pshuflw $0xec,%xmm5,%xmm4
shufps $0x1,%xmm0,%xmm5
shufps $0xe2,%xmm0,%xmm5
movaps %xmm5,0x70(%rsp)
movdqa %xmm0,%xmm6
pand   %xmm7,%xmm6
por    %xmm1,%xmm6
pshufd $0xd8,%xmm6,%xmm1
pshufhw $0xe6,%xmm1,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pshuflw $0x6c,%xmm1,%xmm1
packuswb %xmm1,%xmm1
punpcklbw %xmm9,%xmm1
punpcklwd %xmm9,%xmm1
pshufd $0xee,%xmm1,%xmm6
cvtdq2pd %xmm6,%xmm8
movapd %xmm8,-0x60(%rsp)
pshufd $0xe6,%xmm0,%xmm0
cvtdq2pd %xmm1,%xmm5
movapd %xmm5,-0x50(%rsp)
movdqa 0x1dc8(%rip),%xmm7
movdqa %xmm7,%xmm1
pandn  %xmm3,%xmm1
shufps $0x32,%xmm2,%xmm3
movaps %xmm2,%xmm6
pshuflw $0xe6,%xmm0,%xmm0
punpckldq %xmm4,%xmm0
packuswb %xmm0,%xmm0
punpcklbw %xmm9,%xmm0
punpcklwd %xmm9,%xmm0
cvtdq2pd %xmm0,%xmm4
shufps $0x84,%xmm3,%xmm6
movaps %xmm6,0x60(%rsp)
pshufd $0xee,%xmm0,%xmm0
cvtdq2pd %xmm0,%xmm15
pand   %xmm7,%xmm2
por    %xmm1,%xmm2
pshufd $0xd8,%xmm2,%xmm0
pshuflw $0xe6,%xmm0,%xmm0
pshufd $0xec,%xmm0,%xmm0
pshuflw $0xc6,%xmm0,%xmm0
packuswb %xmm0,%xmm0
punpcklbw %xmm9,%xmm0
punpcklwd %xmm9,%xmm0
cvtdq2pd %xmm0,%xmm13
pshufd $0xee,%xmm0,%xmm0
cvtdq2pd %xmm0,%xmm12
movapd 0x1d39(%rip),%xmm10
addpd  %xmm10,%xmm12
addpd  %xmm10,%xmm13
addpd  %xmm10,%xmm15
addpd  %xmm10,%xmm4
movapd %xmm10,%xmm7
movapd 0x1d37(%rip),%xmm9
mulpd  %xmm9,%xmm4
addpd  %xmm5,%xmm4
movapd %xmm4,%xmm5
movapd %xmm4,0x20(%rsp)
mulpd  %xmm9,%xmm15
addpd  %xmm8,%xmm15
mulpd  %xmm9,%xmm13
addpd  -0x80(%rsp),%xmm13
mulpd  %xmm9,%xmm12
addpd  %xmm11,%xmm12
movapd %xmm13,%xmm11
pxor   %xmm1,%xmm1
cmpltpd %xmm1,%xmm11
movapd %xmm15,%xmm14
cmpltpd %xmm1,%xmm14
cmpltpd %xmm1,%xmm5
xorps  %xmm6,%xmm6
movapd 0x1cfa(%rip),%xmm2
movapd %xmm2,%xmm0
andpd  %xmm5,%xmm0
movapd 0x1cda(%rip),%xmm1
andnpd %xmm1,%xmm5
orpd   %xmm0,%xmm5
movapd %xmm5,-0x70(%rsp)
movapd %xmm2,%xmm0
andpd  %xmm14,%xmm0
andnpd %xmm1,%xmm14
orpd   %xmm0,%xmm14
movapd %xmm2,%xmm0
andpd  %xmm11,%xmm0
andnpd %xmm1,%xmm11
orpd   %xmm0,%xmm11
movapd %xmm12,%xmm10
cmpltpd %xmm6,%xmm10
movapd %xmm2,%xmm0
movapd %xmm2,%xmm6
andpd  %xmm10,%xmm0
andnpd %xmm1,%xmm10
orpd   %xmm0,%xmm10
movdqa 0x30(%rsp),%xmm2
pshufhw $0xe6,%xmm2,%xmm0
pshufd $0xe6,%xmm0,%xmm0
pshuflw $0xe1,%xmm0,%xmm0
punpcklbw %xmm0,%xmm0
pshufd $0x4e,%xmm0,%xmm0
pshuflw $0xf4,%xmm0,%xmm0
pshufhw $0xf4,%xmm0,%xmm1
movdqa 0x1c13(%rip),%xmm8
pand   %xmm8,%xmm1
pshufd $0xc6,%xmm2,%xmm0
pshuflw $0xec,%xmm0,%xmm0
pshufd $0xc4,%xmm0,%xmm0
punpckhbw %xmm0,%xmm0
pshuflw $0xd6,%xmm0,%xmm0
pshufhw $0xf4,%xmm0,%xmm2
pand   %xmm8,%xmm2
cvtdq2pd %xmm2,%xmm5
addpd  %xmm7,%xmm5
mulpd  %xmm9,%xmm5
cvtdq2pd %xmm1,%xmm3
movapd %xmm3,0x10(%rsp)
addpd  %xmm3,%xmm5
movapd %xmm5,%xmm8
pxor   %xmm0,%xmm0
cmpltpd %xmm0,%xmm8
movapd %xmm6,%xmm3
andpd  %xmm8,%xmm3
movapd 0x1bf1(%rip),%xmm0
andnpd %xmm0,%xmm8
orpd   %xmm3,%xmm8
pshufd $0xee,%xmm1,%xmm1
cvtdq2pd %xmm1,%xmm3
movapd %xmm3,(%rsp)
pshufd $0xee,%xmm2,%xmm1
cvtdq2pd %xmm1,%xmm1
addpd  %xmm7,%xmm1
mulpd  %xmm9,%xmm1
movapd %xmm9,%xmm7
addpd  %xmm3,%xmm1
movapd %xmm1,%xmm3
cmpltpd 0x1c71(%rip),%xmm3
movapd %xmm6,%xmm2
andpd  %xmm3,%xmm2
andnpd %xmm0,%xmm3
orpd   %xmm2,%xmm3
movapd %xmm3,%xmm6
movdqa -0x30(%rsp),%xmm0
pshufd $0x6c,%xmm0,%xmm2
pshufhw $0xec,%xmm2,%xmm2
pshufd $0xe8,%xmm2,%xmm2
punpcklbw %xmm2,%xmm2
pshuflw $0xf4,%xmm2,%xmm2
pshufhw $0xd6,%xmm2,%xmm2
movdqa 0x1b32(%rip),%xmm4
pand   %xmm4,%xmm2
pshuflw $0xe6,%xmm0,%xmm3
pshufd $0xe8,%xmm3,%xmm3
punpcklbw %xmm3,%xmm3
pshuflw $0xd6,%xmm3,%xmm3
pshufhw $0xf4,%xmm3,%xmm3
pand   %xmm4,%xmm3
cvtdq2pd %xmm3,%xmm0
movapd 0x1b15(%rip),%xmm9
addpd  %xmm9,%xmm0
mulpd  %xmm7,%xmm0
cvtdq2pd %xmm2,%xmm4
movapd %xmm4,-0x20(%rsp)
addpd  %xmm4,%xmm0
movapd %xmm0,%xmm4
cmpltpd 0x1be1(%rip),%xmm4
movapd 0x1b29(%rip),%xmm7
andpd  %xmm4,%xmm7
andnpd 0x1b0d(%rip),%xmm4
orpd   %xmm7,%xmm4
pshufd $0xee,%xmm2,%xmm2
cvtdq2pd %xmm2,%xmm7
movapd %xmm7,-0x10(%rsp)
pshufd $0xee,%xmm3,%xmm2
cvtdq2pd %xmm2,%xmm2
addpd  %xmm9,%xmm2
mulpd  0x1ad4(%rip),%xmm2
addpd  %xmm7,%xmm2
movapd %xmm2,%xmm7
cmpltpd 0x1b93(%rip),%xmm7
movapd 0x1adb(%rip),%xmm3
andpd  %xmm7,%xmm3
movapd 0x1abe(%rip),%xmm9
andnpd %xmm9,%xmm7
orpd   %xmm3,%xmm7
addpd  %xmm12,%xmm10
movapd %xmm10,0xa0(%rsp)
addpd  %xmm13,%xmm11
movapd %xmm11,0x80(%rsp)
addpd  %xmm15,%xmm14
movapd %xmm14,0x90(%rsp)
movapd -0x70(%rsp),%xmm3
addpd  0x20(%rsp),%xmm3
movapd %xmm3,-0x70(%rsp)
addpd  %xmm2,%xmm7
movapd %xmm7,0x20(%rsp)
addpd  %xmm0,%xmm4
movapd %xmm4,0xd0(%rsp)
addpd  %xmm1,%xmm6
movapd %xmm6,0xc0(%rsp)
addpd  %xmm5,%xmm8
movapd %xmm8,0xb0(%rsp)
pshuflw $0xec,0x60(%rsp),%xmm0
pshufhw $0xe6,%xmm0,%xmm0
pshufd $0xe8,%xmm0,%xmm0
pshuflw $0x93,%xmm0,%xmm0
packuswb %xmm0,%xmm0
xorpd  %xmm1,%xmm1
punpcklbw %xmm1,%xmm0
punpcklwd %xmm1,%xmm0
xorpd  %xmm1,%xmm1
cvtdq2pd %xmm0,%xmm12
pshufd $0xee,%xmm0,%xmm0
cvtdq2pd %xmm0,%xmm11
movapd 0x19d2(%rip),%xmm3
addpd  %xmm3,%xmm12
movapd 0x1a14(%rip),%xmm10
mulpd  %xmm10,%xmm12
addpd  -0x80(%rsp),%xmm12
movapd %xmm12,%xmm14
cmpltpd %xmm1,%xmm14
movapd 0x19e5(%rip),%xmm5
movapd %xmm5,%xmm0
andpd  %xmm14,%xmm0
movapd %xmm9,%xmm8
andnpd %xmm9,%xmm14
orpd   %xmm0,%xmm14
pshuflw $0xe6,0x70(%rsp),%xmm0
pshufhw $0xec,%xmm0,%xmm0
pshufd $0xe8,%xmm0,%xmm0
pshuflw $0x39,%xmm0,%xmm1
packuswb %xmm1,%xmm1
pxor   %xmm0,%xmm0
punpcklbw %xmm0,%xmm1
punpcklwd %xmm0,%xmm1
addpd  %xmm3,%xmm11
mulpd  %xmm10,%xmm11
addpd  -0x40(%rsp),%xmm11
movapd %xmm11,%xmm13
cmpltpd %xmm0,%xmm13
xorpd  %xmm7,%xmm7
movapd %xmm5,%xmm2
andpd  %xmm13,%xmm2
andnpd %xmm9,%xmm13
cvtdq2pd %xmm1,%xmm9
orpd   %xmm2,%xmm13
addpd  %xmm3,%xmm9
mulpd  %xmm10,%xmm9
addpd  -0x50(%rsp),%xmm9
movapd %xmm9,%xmm15
cmpltpd %xmm7,%xmm15
movapd %xmm5,%xmm2
andpd  %xmm15,%xmm2
andnpd %xmm8,%xmm15
orpd   %xmm2,%xmm15
pshufd $0xee,%xmm1,%xmm1
cvtdq2pd %xmm1,%xmm6
addpd  %xmm3,%xmm6
movapd %xmm3,%xmm0
mulpd  %xmm10,%xmm6
addpd  -0x60(%rsp),%xmm6
movapd %xmm6,%xmm2
cmpltpd %xmm7,%xmm2
movapd %xmm5,%xmm1
andpd  %xmm2,%xmm1
andnpd %xmm8,%xmm2
orpd   %xmm1,%xmm2
pshufd $0x27,-0x30(%rsp),%xmm1
pshufhw $0xe6,%xmm1,%xmm1
pshufd $0xe6,%xmm1,%xmm1
punpcklbw %xmm1,%xmm1
pshufd $0xd8,%xmm1,%xmm1
pshuflw $0xe5,%xmm1,%xmm1
pshufhw $0xc7,%xmm1,%xmm4
pand   0x188e(%rip),%xmm4
cvtdq2pd %xmm4,%xmm3
movapd %xmm0,%xmm1
addpd  %xmm0,%xmm3
mulpd  %xmm10,%xmm3
addpd  -0x20(%rsp),%xmm3
movapd %xmm3,%xmm0
cmpltpd %xmm7,%xmm0
movapd %xmm5,%xmm7
andpd  %xmm0,%xmm7
andnpd %xmm8,%xmm0
orpd   %xmm7,%xmm0
movapd %xmm0,-0x30(%rsp)
pshufd $0xee,%xmm4,%xmm4
cvtdq2pd %xmm4,%xmm4
addpd  %xmm1,%xmm4
mulpd  %xmm10,%xmm4
addpd  -0x10(%rsp),%xmm4
movapd %xmm4,%xmm10
cmpltpd 0x1930(%rip),%xmm10
movapd %xmm5,%xmm7
andpd  %xmm10,%xmm7
andnpd %xmm8,%xmm10
orpd   %xmm7,%xmm10
pshufd $0x27,0x30(%rsp),%xmm7
pshuflw $0xe6,%xmm7,%xmm7
pshufd $0x24,%xmm7,%xmm7
punpckhbw %xmm7,%xmm7
pshufd $0xd8,%xmm7,%xmm7
pshuflw $0xc7,%xmm7,%xmm7
pshufhw $0xe5,%xmm7,%xmm7
pand   0x17f1(%rip),%xmm7
cvtdq2pd %xmm7,%xmm5
pshufd $0xee,%xmm7,%xmm7
cvtdq2pd %xmm7,%xmm1
addpd  0x17ec(%rip),%xmm5
movapd 0x1834(%rip),%xmm7
mulpd  %xmm7,%xmm5
addpd  0x10(%rsp),%xmm5
movapd %xmm5,%xmm0
cmpltpd 0x18bd(%rip),%xmm0
movapd 0x1804(%rip),%xmm8
andpd  %xmm0,%xmm8
andnpd 0x17e7(%rip),%xmm0
orpd   %xmm8,%xmm0
movapd %xmm0,%xmm8
addpd  0x17a5(%rip),%xmm1
mulpd  %xmm7,%xmm1
addpd  (%rsp),%xmm1
movapd %xmm1,%xmm7
cmpltpd 0x187f(%rip),%xmm7
movapd 0x17c7(%rip),%xmm0
andpd  %xmm7,%xmm0
andnpd 0x17ab(%rip),%xmm7
orpd   %xmm0,%xmm7
addpd  %xmm6,%xmm2
addpd  %xmm9,%xmm15
addpd  %xmm11,%xmm13
addpd  %xmm12,%xmm14
addpd  %xmm1,%xmm7
addpd  %xmm5,%xmm8
addpd  %xmm4,%xmm10
movapd %xmm10,%xmm11
movapd -0x30(%rsp),%xmm4
addpd  %xmm3,%xmm4
cvttpd2dq %xmm14,%xmm0
cvttpd2dq %xmm13,%xmm6
cvttpd2dq %xmm15,%xmm1
cvttpd2dq %xmm2,%xmm2
unpcklpd %xmm6,%xmm0
movapd %xmm0,-0x30(%rsp)
unpcklpd %xmm2,%xmm1
movapd %xmm1,0x70(%rsp)
cvtdq2pd %xmm0,%xmm10
movapd 0x17a2(%rip),%xmm14
movapd %xmm14,%xmm0
minpd  %xmm10,%xmm0
movapd %xmm0,0x30(%rsp)
movapd 0x1759(%rip),%xmm9
mulpd  %xmm9,%xmm10
cvtdq2pd %xmm1,%xmm0
addpd  -0x80(%rsp),%xmm10
movapd %xmm14,%xmm1
minpd  %xmm0,%xmm1
movapd %xmm1,0x60(%rsp)
movapd %xmm0,%xmm15
mulpd  %xmm9,%xmm15
addpd  -0x50(%rsp),%xmm15
cvttpd2dq %xmm4,%xmm5
cvttpd2dq %xmm11,%xmm4
cvtdq2pd %xmm6,%xmm13
movapd %xmm14,%xmm1
minpd  %xmm13,%xmm1
movapd %xmm1,-0x50(%rsp)
mulpd  %xmm9,%xmm13
addpd  -0x40(%rsp),%xmm13
unpcklpd %xmm4,%xmm5
movapd %xmm5,-0x40(%rsp)
cvtdq2pd %xmm2,%xmm2
movapd %xmm14,%xmm0
minpd  %xmm2,%xmm0
movapd %xmm0,0x110(%rsp)
mulpd  %xmm9,%xmm2
cvtdq2pd %xmm5,%xmm5
addpd  -0x60(%rsp),%xmm2
movapd %xmm14,%xmm0
minpd  %xmm5,%xmm0
movapd %xmm0,-0x60(%rsp)
mulpd  %xmm9,%xmm5
addpd  -0x20(%rsp),%xmm5
cvttpd2dq %xmm8,%xmm0
cvttpd2dq %xmm7,%xmm6
unpcklpd %xmm6,%xmm0
movapd %xmm0,0x100(%rsp)
cvtdq2pd %xmm0,%xmm7
movapd %xmm14,%xmm0
minpd  %xmm7,%xmm0
movapd %xmm0,-0x20(%rsp)
mulpd  %xmm9,%xmm7
addpd  0x10(%rsp),%xmm7
cvtdq2pd %xmm6,%xmm6
cvtdq2pd %xmm4,%xmm4
movapd %xmm14,%xmm0
minpd  %xmm4,%xmm0
movapd %xmm0,0x10(%rsp)
mulpd  %xmm9,%xmm4
addpd  -0x10(%rsp),%xmm4
movapd %xmm14,%xmm0
minpd  %xmm6,%xmm0
movapd %xmm0,-0x10(%rsp)
mulpd  %xmm9,%xmm6
addpd  (%rsp),%xmm6
cvttpd2dq -0x70(%rsp),%xmm0
cvttpd2dq 0x90(%rsp),%xmm8
movapd %xmm8,0x40(%rsp)
cvttpd2dq 0x80(%rsp),%xmm3
cvttpd2dq 0xa0(%rsp),%xmm1
movapd %xmm1,0x50(%rsp)
unpcklpd %xmm8,%xmm0
movapd %xmm0,0x80(%rsp)
unpcklpd %xmm1,%xmm3
movapd %xmm3,0xa0(%rsp)
cvtdq2pd %xmm0,%xmm12
movapd %xmm14,%xmm0
minpd  %xmm12,%xmm0
movapd %xmm0,0x90(%rsp)
movapd 0x15ed(%rip),%xmm0
mulpd  %xmm0,%xmm12
cvtdq2pd %xmm3,%xmm11
addpd  %xmm15,%xmm12
movapd %xmm12,-0x80(%rsp)
movapd %xmm14,%xmm1
minpd  %xmm11,%xmm1
movapd %xmm1,(%rsp)
mulpd  %xmm0,%xmm11
addpd  %xmm10,%xmm11
movapd %xmm11,-0x70(%rsp)
cvttpd2dq 0xb0(%rsp),%xmm3
cvttpd2dq 0xc0(%rsp),%xmm10
cvttpd2dq 0xd0(%rsp),%xmm8
cvttpd2dq 0x20(%rsp),%xmm1
unpcklpd %xmm10,%xmm3
movapd %xmm3,0xb0(%rsp)
unpcklpd %xmm1,%xmm8
movapd %xmm8,0xc0(%rsp)
cvtdq2pd %xmm3,%xmm15
movapd %xmm14,%xmm3
minpd  %xmm15,%xmm3
movapd %xmm3,0xd0(%rsp)
mulpd  %xmm0,%xmm15
cvtdq2pd %xmm8,%xmm8
addpd  %xmm7,%xmm15
movapd %xmm14,%xmm7
movapd %xmm14,%xmm3
minpd  %xmm8,%xmm7
movapd %xmm7,0x20(%rsp)
movapd %xmm8,%xmm14
mulpd  %xmm0,%xmm14
addpd  %xmm5,%xmm14
cvtdq2pd 0x40(%rsp),%xmm12
movapd %xmm3,%xmm5
minpd  %xmm12,%xmm3
movapd %xmm3,0x40(%rsp)
mulpd  %xmm0,%xmm12
addpd  %xmm2,%xmm12
cvtdq2pd 0x50(%rsp),%xmm11
movapd %xmm5,%xmm2
minpd  %xmm11,%xmm2
movapd %xmm2,0x50(%rsp)
mulpd  %xmm0,%xmm11
addpd  %xmm13,%xmm11
cvtdq2pd %xmm1,%xmm1
cvtdq2pd %xmm10,%xmm8
movapd %xmm5,%xmm3
minpd  %xmm8,%xmm3
movapd %xmm3,0xe0(%rsp)
mulpd  %xmm0,%xmm8
addpd  %xmm6,%xmm8
minpd  %xmm1,%xmm5
movapd %xmm5,0xf0(%rsp)
mulpd  %xmm0,%xmm1
addpd  %xmm4,%xmm1
movapd 0x14ba(%rip),%xmm7
movapd -0x70(%rsp),%xmm10
divpd  %xmm7,%xmm10
movapd %xmm10,-0x70(%rsp)
xorpd  %xmm3,%xmm3
cmpltpd %xmm3,%xmm10
movapd 0x1455(%rip),%xmm2
movapd %xmm2,%xmm0
andpd  %xmm10,%xmm0
movapd 0x1433(%rip),%xmm13
andnpd %xmm13,%xmm10
orpd   %xmm0,%xmm10
movapd -0x80(%rsp),%xmm5
divpd  %xmm7,%xmm5
movapd %xmm5,-0x80(%rsp)
cmpltpd %xmm3,%xmm5
movapd %xmm2,%xmm0
andpd  %xmm5,%xmm0
andnpd %xmm13,%xmm5
orpd   %xmm0,%xmm5
divpd  %xmm7,%xmm11
movapd %xmm11,%xmm9
cmpltpd %xmm3,%xmm9
movapd %xmm2,%xmm4
andpd  %xmm9,%xmm4
andnpd %xmm13,%xmm9
orpd   %xmm4,%xmm9
divpd  %xmm7,%xmm12
movapd %xmm12,%xmm6
cmpltpd %xmm3,%xmm6
movapd %xmm2,%xmm4
andpd  %xmm6,%xmm4
andnpd %xmm13,%xmm6
movapd %xmm13,%xmm0
orpd   %xmm4,%xmm6
divpd  %xmm7,%xmm14
movapd %xmm14,%xmm4
cmpltpd %xmm3,%xmm4
movapd %xmm2,%xmm13
andpd  %xmm4,%xmm13
andnpd %xmm0,%xmm4
orpd   %xmm13,%xmm4
divpd  %xmm7,%xmm15
movapd %xmm15,%xmm13
cmpltpd %xmm3,%xmm13
movapd 0x1391(%rip),%xmm2
andpd  %xmm13,%xmm2
andnpd %xmm0,%xmm13
orpd   %xmm2,%xmm13
divpd  %xmm7,%xmm1
movapd %xmm1,%xmm2
cmpltpd %xmm3,%xmm2
movapd 0x136d(%rip),%xmm3
andpd  %xmm2,%xmm3
andnpd %xmm0,%xmm2
orpd   %xmm3,%xmm2
divpd  %xmm7,%xmm8
movapd %xmm8,%xmm7
cmpltpd 0x13fe(%rip),%xmm7
movapd 0x1346(%rip),%xmm3
andpd  %xmm7,%xmm3
andnpd %xmm0,%xmm7
orpd   %xmm3,%xmm7
addpd  -0x80(%rsp),%xmm5
addpd  -0x70(%rsp),%xmm10
addpd  %xmm15,%xmm13
addpd  %xmm14,%xmm4
addpd  %xmm12,%xmm6
addpd  %xmm11,%xmm9
addpd  %xmm8,%xmm7
addpd  %xmm1,%xmm2
xorpd  %xmm1,%xmm1
pcmpgtd 0x80(%rsp),%xmm1
xorpd  %xmm3,%xmm3
pcmpgtd 0xb0(%rsp),%xmm3
packssdw %xmm3,%xmm1
pxor   %xmm3,%xmm3
pcmpgtd 0xa0(%rsp),%xmm3
xorpd  %xmm8,%xmm8
pcmpgtd 0xc0(%rsp),%xmm8
packssdw %xmm3,%xmm8
cvttpd2dq 0x90(%rsp),%xmm3
packsswb %xmm1,%xmm8
cvttpd2dq 0x40(%rsp),%xmm1
unpcklpd %xmm1,%xmm3
cvttpd2dq 0xd0(%rsp),%xmm0
cvttpd2dq 0xe0(%rsp),%xmm1
unpcklpd %xmm1,%xmm0
packssdw %xmm0,%xmm3
cvttpd2dq (%rsp),%xmm11
cvttpd2dq 0x50(%rsp),%xmm0
cvttpd2dq 0x20(%rsp),%xmm1
unpcklpd %xmm0,%xmm11
cvttpd2dq 0xf0(%rsp),%xmm0
unpcklpd %xmm0,%xmm1
packssdw %xmm11,%xmm1
packuswb %xmm3,%xmm1
cvttpd2dq %xmm5,%xmm0
pandn  %xmm1,%xmm8
cvttpd2dq %xmm6,%xmm11
unpcklpd %xmm11,%xmm0
cvttpd2dq %xmm13,%xmm5
cvttpd2dq %xmm7,%xmm12
unpcklpd %xmm12,%xmm5
xorpd  %xmm7,%xmm7
pcmpgtd %xmm0,%xmm7
pxor   %xmm1,%xmm1
pcmpgtd %xmm5,%xmm1
packssdw %xmm1,%xmm7
cvttpd2dq %xmm10,%xmm3
cvttpd2dq %xmm9,%xmm6
cvttpd2dq %xmm4,%xmm4
unpcklpd %xmm6,%xmm3
cvttpd2dq %xmm2,%xmm9
unpcklpd %xmm9,%xmm4
xorpd  %xmm2,%xmm2
pcmpgtd %xmm3,%xmm2
pxor   %xmm1,%xmm1
pcmpgtd %xmm4,%xmm1
packssdw %xmm2,%xmm1
packsswb %xmm7,%xmm1
cvtdq2pd %xmm3,%xmm2
movapd 0x124c(%rip),%xmm3
movapd %xmm3,%xmm13
minpd  %xmm2,%xmm13
cvtdq2pd %xmm0,%xmm0
movapd %xmm3,%xmm2
minpd  %xmm0,%xmm2
cvtdq2pd %xmm6,%xmm0
cvtdq2pd %xmm4,%xmm4
movapd %xmm3,%xmm6
minpd  %xmm4,%xmm6
movapd %xmm3,%xmm4
minpd  %xmm0,%xmm4
cvtdq2pd %xmm5,%xmm0
movapd %xmm3,%xmm5
minpd  %xmm0,%xmm5
cvtdq2pd %xmm11,%xmm0
movapd %xmm3,%xmm7
minpd  %xmm0,%xmm7
cvtdq2pd %xmm12,%xmm10
cvtdq2pd %xmm9,%xmm9
movapd %xmm3,%xmm0
minpd  %xmm9,%xmm0
minpd  %xmm10,%xmm3
cvttpd2dq %xmm2,%xmm2
cvttpd2dq %xmm7,%xmm7
cvttpd2dq %xmm5,%xmm5
unpcklpd %xmm7,%xmm2
cvttpd2dq %xmm3,%xmm3
unpcklpd %xmm3,%xmm5
cvttpd2dq %xmm13,%xmm3
cvttpd2dq %xmm4,%xmm4
packssdw %xmm5,%xmm2
unpcklpd %xmm4,%xmm3
cvttpd2dq %xmm6,%xmm4
cvttpd2dq %xmm0,%xmm0
unpcklpd %xmm0,%xmm4
packssdw %xmm3,%xmm4
packuswb %xmm2,%xmm4
pandn  %xmm4,%xmm1
pxor   %xmm2,%xmm2
pcmpgtd 0x70(%rsp),%xmm2
xorpd  %xmm0,%xmm0
pcmpgtd 0x100(%rsp),%xmm0
packssdw %xmm0,%xmm2
pxor   %xmm3,%xmm3
pcmpgtd -0x30(%rsp),%xmm3
pxor   %xmm0,%xmm0
pcmpgtd -0x40(%rsp),%xmm0
packssdw %xmm3,%xmm0
cvttpd2dq 0x60(%rsp),%xmm3
cvttpd2dq 0x110(%rsp),%xmm4
packsswb %xmm2,%xmm0
unpcklpd %xmm4,%xmm3
cvttpd2dq -0x20(%rsp),%xmm2
cvttpd2dq -0x10(%rsp),%xmm4
unpcklpd %xmm4,%xmm2
packssdw %xmm2,%xmm3
cvttpd2dq 0x30(%rsp),%xmm2
cvttpd2dq -0x50(%rsp),%xmm4
cvttpd2dq -0x60(%rsp),%xmm5
cvttpd2dq 0x10(%rsp),%xmm6
unpcklpd %xmm4,%xmm2
unpcklpd %xmm6,%xmm5
packssdw %xmm2,%xmm5
packuswb %xmm3,%xmm5
pandn  %xmm5,%xmm0
pshufd $0xe6,%xmm1,%xmm2
punpcklbw %xmm2,%xmm2
pshufd $0x4e,%xmm2,%xmm2
pshuflw $0xe9,%xmm2,%xmm2
pshufhw $0x94,%xmm2,%xmm2
movdqa 0x1112(%rip),%xmm6
pand   %xmm6,%xmm2
pshuflw $0xf6,%xmm0,%xmm3
pshufhw $0x0,%xmm3,%xmm3
movdqa %xmm6,%xmm4
pandn  %xmm3,%xmm4
por    %xmm2,%xmm4
movdqa 0x1100(%rip),%xmm7
pand   %xmm7,%xmm4
pshuflw $0xff,%xmm8,%xmm2
pshufhw $0x60,%xmm2,%xmm2
movdqa %xmm7,%xmm3
pandn  %xmm2,%xmm3
por    %xmm4,%xmm3
movdqa %xmm1,%xmm2
punpcklbw %xmm1,%xmm2
pshufd $0x94,%xmm2,%xmm2
pshuflw $0x94,%xmm2,%xmm2
movdqa %xmm6,%xmm4
pandn  %xmm2,%xmm4
pshufd $0x44,%xmm8,%xmm2
pshuflw $0x60,%xmm2,%xmm2
pshufhw $0xa5,%xmm2,%xmm2
pand   %xmm6,%xmm2
por    %xmm4,%xmm2
pshufd $0x44,%xmm0,%xmm4
pshuflw $0x0,%xmm4,%xmm4
pshufhw $0xa5,%xmm4,%xmm4
movdqa %xmm7,%xmm5
pandn  %xmm4,%xmm5
pand   %xmm7,%xmm2
por    %xmm2,%xmm5
punpckhbw %xmm1,%xmm1
pshufd $0xe6,%xmm1,%xmm1
pshuflw $0xcc,%xmm1,%xmm1
pshufhw $0xe9,%xmm1,%xmm1
movdqa %xmm7,%xmm2
pandn  %xmm1,%xmm2
pshufd $0xee,%xmm8,%xmm1
pshuflw $0xa5,%xmm1,%xmm1
pshufhw $0xff,%xmm1,%xmm1
movdqa %xmm6,%xmm4
pandn  %xmm1,%xmm4
pshufd $0xee,%xmm0,%xmm0
pshuflw $0xa5,%xmm0,%xmm0
pshufhw $0xf6,%xmm0,%xmm0
pand   %xmm6,%xmm0
por    %xmm4,%xmm0
pand   %xmm7,%xmm0
por    %xmm2,%xmm0
movdqu %xmm0,0x20(%rax)
movdqu %xmm5,(%rax)
movdqu %xmm3,0x10(%rax)
add    $0x30,%rax
add    $0xfffffffffffffff0,%rdx
jne    1180 <ConvertYCbCrToRGB+0x80>
cmp    %rcx,%r10
je     2846 <ConvertYCbCrToRGB+0x1746>
test   $0x8,%r10b
jne    20c5 <ConvertYCbCrToRGB+0xfc5>
lea    (%rcx,%rcx,2),%rax
add    %rax,%rdi
jmp    114c <ConvertYCbCrToRGB+0x4c>
cmp    %r8,%r11
cmova  %r11,%r8
sub    %rdi,%r8
xor    %esi,%esi
add    $0xfffffffffffffffd,%r8
setne  %sil
sub    %rsi,%r8
mov    %r8,%rax
mul    %r9
shr    %rdx
lea    (%rdx,%rsi,1),%r8
add    $0x1,%r8
mov    %r8,%r9
and    $0xfffffffffffffff8,%r9
lea    (%r9,%r9,2),%rax
add    %rdi,%rax
lea    (%rcx,%rcx,2),%rdx
add    %rdi,%rdx
sub    %r9,%rcx
cs nopw 0x0(%rax,%rax,1)
nop
movdqu (%rdx),%xmm4
movdqa %xmm4,%xmm3
pxor   %xmm5,%xmm5
punpckhbw %xmm5,%xmm3
pshufhw $0xec,%xmm3,%xmm0
movq   0x10(%rdx),%xmm2
punpcklbw %xmm5,%xmm2
pshufd $0x64,%xmm2,%xmm1
pshufhw $0xe6,%xmm1,%xmm1
punpckhdq %xmm1,%xmm0
packuswb %xmm0,%xmm0
punpcklbw %xmm5,%xmm0
punpcklwd %xmm5,%xmm0
pxor   %xmm8,%xmm8
pshufd $0xee,%xmm0,%xmm1
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,-0x60(%rsp)
cvtdq2pd %xmm0,%xmm11
movapd %xmm11,-0x50(%rsp)
pshufd $0x6c,%xmm4,%xmm0
pshufhw $0xec,%xmm0,%xmm0
pshufd $0xe8,%xmm0,%xmm0
punpcklbw %xmm0,%xmm0
pshuflw $0xf4,%xmm0,%xmm0
pshufhw $0xd6,%xmm0,%xmm0
movdqa 0xe83(%rip),%xmm15
pand   %xmm15,%xmm0
pshufd $0xee,%xmm0,%xmm1
cvtdq2pd %xmm1,%xmm7
movapd %xmm7,-0x40(%rsp)
cvtdq2pd %xmm0,%xmm6
movapd %xmm6,-0x70(%rsp)
pshufd $0x27,%xmm4,%xmm0
movdqa %xmm3,%xmm1
shufps $0x32,%xmm2,%xmm1
movaps %xmm2,%xmm5
shufps $0x84,%xmm1,%xmm5
pshuflw $0xec,%xmm5,%xmm1
pshufhw $0xe6,%xmm1,%xmm1
pshufd $0xe8,%xmm1,%xmm1
pshuflw $0x93,%xmm1,%xmm1
packuswb %xmm1,%xmm1
punpcklbw %xmm8,%xmm1
punpcklwd %xmm8,%xmm1
cvtdq2pd %xmm1,%xmm13
pshufd $0xee,%xmm1,%xmm1
cvtdq2pd %xmm1,%xmm10
pshufhw $0xe6,%xmm0,%xmm0
pshufd $0xe6,%xmm0,%xmm0
punpcklbw %xmm0,%xmm0
pshufd $0xd8,%xmm0,%xmm0
pshuflw $0xe5,%xmm0,%xmm0
pshufhw $0xc7,%xmm0,%xmm0
pand   %xmm15,%xmm0
cvtdq2pd %xmm0,%xmm1
movaps %xmm1,-0x80(%rsp)
pshufd $0xee,%xmm0,%xmm0
cvtdq2pd %xmm0,%xmm12
movdqa 0xe03(%rip),%xmm1
movdqa %xmm1,%xmm0
pandn  %xmm3,%xmm0
pand   %xmm1,%xmm2
por    %xmm0,%xmm2
pshufd $0xd8,%xmm2,%xmm0
pshuflw $0xe6,%xmm0,%xmm0
pshufd $0xec,%xmm0,%xmm0
pshuflw $0xc6,%xmm0,%xmm1
packuswb %xmm1,%xmm1
punpcklbw %xmm8,%xmm1
punpcklwd %xmm8,%xmm1
cvtdq2pd %xmm1,%xmm14
pshufd $0xee,%xmm1,%xmm1
cvtdq2pd %xmm1,%xmm1
pshuflw $0xe6,%xmm4,%xmm2
pshufd $0xe8,%xmm2,%xmm2
punpcklbw %xmm2,%xmm2
pshuflw $0xd6,%xmm2,%xmm2
pshufhw $0xf4,%xmm2,%xmm2
pand   %xmm15,%xmm2
cvtdq2pd %xmm2,%xmm4
pshufd $0xee,%xmm2,%xmm2
cvtdq2pd %xmm2,%xmm3
movapd 0xd80(%rip),%xmm8
addpd  %xmm8,%xmm1
addpd  %xmm8,%xmm14
addpd  %xmm8,%xmm3
addpd  %xmm8,%xmm4
movapd 0xd84(%rip),%xmm0
mulpd  %xmm0,%xmm14
addpd  %xmm11,%xmm14
mulpd  %xmm0,%xmm1
movapd -0x60(%rsp),%xmm15
addpd  %xmm15,%xmm1
mulpd  %xmm0,%xmm4
addpd  %xmm6,%xmm4
mulpd  %xmm0,%xmm3
addpd  %xmm7,%xmm3
movapd %xmm1,%xmm2
xorpd  %xmm0,%xmm0
cmpltpd %xmm0,%xmm2
movapd %xmm14,%xmm7
cmpltpd %xmm0,%xmm7
movapd %xmm4,%xmm11
cmpltpd %xmm0,%xmm11
movapd 0xd50(%rip),%xmm5
movapd %xmm5,%xmm6
andpd  %xmm7,%xmm6
movapd 0xd2f(%rip),%xmm9
andnpd %xmm9,%xmm7
orpd   %xmm6,%xmm7
movapd %xmm5,%xmm6
andpd  %xmm2,%xmm6
andnpd %xmm9,%xmm2
orpd   %xmm6,%xmm2
movapd %xmm5,%xmm6
andpd  %xmm11,%xmm6
andnpd %xmm9,%xmm11
orpd   %xmm6,%xmm11
movapd %xmm3,%xmm6
cmpltpd 0xdb5(%rip),%xmm6
movapd %xmm5,%xmm0
andpd  %xmm6,%xmm0
andnpd %xmm9,%xmm6
movapd %xmm9,%xmm5
orpd   %xmm0,%xmm6
addpd  %xmm8,%xmm10
addpd  %xmm8,%xmm13
addpd  %xmm8,%xmm12
movapd -0x80(%rsp),%xmm9
addpd  %xmm8,%xmm9
addpd  %xmm1,%xmm2
addpd  %xmm14,%xmm7
addpd  %xmm3,%xmm6
cvttpd2dq %xmm7,%xmm0
movapd %xmm0,-0x80(%rsp)
cvttpd2dq %xmm2,%xmm14
addpd  %xmm4,%xmm11
movapd 0xcbb(%rip),%xmm0
mulpd  %xmm0,%xmm13
addpd  -0x50(%rsp),%xmm13
movapd %xmm13,%xmm8
mulpd  %xmm0,%xmm10
addpd  %xmm15,%xmm10
movapd %xmm9,%xmm2
mulpd  %xmm0,%xmm2
addpd  -0x70(%rsp),%xmm2
mulpd  %xmm0,%xmm12
addpd  -0x40(%rsp),%xmm12
movapd %xmm10,%xmm3
xorpd  %xmm1,%xmm1
cmpltpd %xmm1,%xmm3
movapd %xmm13,%xmm0
cmpltpd %xmm1,%xmm0
movapd %xmm2,%xmm7
movapd %xmm2,%xmm9
cmpltpd %xmm1,%xmm7
xorpd  %xmm15,%xmm15
movapd 0xc42(%rip),%xmm4
movapd %xmm4,%xmm1
andpd  %xmm0,%xmm1
movapd %xmm5,%xmm2
andnpd %xmm5,%xmm0
orpd   %xmm1,%xmm0
movapd %xmm4,%xmm1
andpd  %xmm3,%xmm1
andnpd %xmm5,%xmm3
orpd   %xmm1,%xmm3
movapd %xmm4,%xmm1
andpd  %xmm7,%xmm1
andnpd %xmm5,%xmm7
orpd   %xmm1,%xmm7
movapd %xmm12,%xmm5
cmpltpd %xmm15,%xmm5
movapd %xmm4,%xmm1
andpd  %xmm5,%xmm1
andnpd %xmm2,%xmm5
orpd   %xmm1,%xmm5
movapd -0x80(%rsp),%xmm13
unpcklpd %xmm14,%xmm13
movapd %xmm13,-0x80(%rsp)
cvttpd2dq %xmm11,%xmm11
cvttpd2dq %xmm6,%xmm15
cvtdq2pd %xmm13,%xmm4
addpd  %xmm10,%xmm3
cvtdq2pd %xmm14,%xmm1
addpd  %xmm8,%xmm0
addpd  %xmm12,%xmm5
addpd  %xmm9,%xmm7
cvttpd2dq %xmm0,%xmm2
cvttpd2dq %xmm3,%xmm0
cvttpd2dq %xmm7,%xmm6
movapd %xmm2,%xmm3
unpcklpd %xmm0,%xmm3
movapd %xmm3,0x10(%rsp)
cvttpd2dq %xmm5,%xmm2
unpcklpd %xmm2,%xmm6
movapd %xmm6,(%rsp)
cvtdq2pd %xmm3,%xmm8
cvtdq2pd %xmm6,%xmm5
cvtdq2pd %xmm0,%xmm3
cvtdq2pd %xmm2,%xmm12
unpcklpd %xmm15,%xmm11
movapd %xmm15,%xmm2
movapd %xmm11,-0x20(%rsp)
movapd 0xbb5(%rip),%xmm13
movapd %xmm13,%xmm0
minpd  %xmm8,%xmm0
movapd %xmm0,-0x10(%rsp)
movapd 0xb6d(%rip),%xmm0
mulpd  %xmm0,%xmm8
addpd  -0x50(%rsp),%xmm8
movapd %xmm13,%xmm6
minpd  %xmm3,%xmm6
movapd %xmm6,-0x50(%rsp)
movapd %xmm3,%xmm7
mulpd  %xmm0,%xmm7
addpd  -0x60(%rsp),%xmm7
movapd %xmm13,%xmm3
minpd  %xmm5,%xmm3
movapd %xmm3,-0x60(%rsp)
mulpd  %xmm0,%xmm5
addpd  -0x70(%rsp),%xmm5
movapd %xmm13,%xmm3
minpd  %xmm12,%xmm3
movapd %xmm3,-0x70(%rsp)
mulpd  %xmm0,%xmm12
addpd  -0x40(%rsp),%xmm12
movapd %xmm13,%xmm10
minpd  %xmm4,%xmm10
movapd 0xb0d(%rip),%xmm0
mulpd  %xmm0,%xmm4
addpd  %xmm8,%xmm4
cvtdq2pd %xmm11,%xmm8
movapd %xmm13,%xmm15
minpd  %xmm8,%xmm15
mulpd  %xmm0,%xmm8
addpd  %xmm5,%xmm8
movapd %xmm13,%xmm6
minpd  %xmm1,%xmm6
mulpd  %xmm0,%xmm1
addpd  %xmm7,%xmm1
cvtdq2pd %xmm2,%xmm7
movapd %xmm13,%xmm9
minpd  %xmm7,%xmm9
mulpd  %xmm0,%xmm7
addpd  %xmm12,%xmm7
movapd 0xaca(%rip),%xmm11
divpd  %xmm11,%xmm4
movapd %xmm4,%xmm12
xorpd  %xmm2,%xmm2
cmpltpd %xmm2,%xmm12
movapd 0xa6e(%rip),%xmm5
movapd %xmm5,%xmm0
andpd  %xmm12,%xmm0
movapd 0xa4c(%rip),%xmm14
andnpd %xmm14,%xmm12
orpd   %xmm0,%xmm12
divpd  %xmm11,%xmm1
movapd %xmm1,%xmm0
cmpltpd %xmm2,%xmm0
movapd %xmm5,%xmm2
andpd  %xmm0,%xmm2
andnpd %xmm14,%xmm0
orpd   %xmm2,%xmm0
divpd  %xmm11,%xmm8
movapd %xmm8,%xmm2
cmpltpd 0xad0(%rip),%xmm2
movapd %xmm5,%xmm3
andpd  %xmm2,%xmm3
andnpd %xmm14,%xmm2
orpd   %xmm3,%xmm2
divpd  %xmm11,%xmm7
movapd %xmm7,%xmm3
cmpltpd 0xaad(%rip),%xmm3
andpd  %xmm3,%xmm5
andnpd %xmm14,%xmm3
orpd   %xmm5,%xmm3
addpd  %xmm4,%xmm12
addpd  %xmm8,%xmm2
addpd  %xmm1,%xmm0
addpd  %xmm7,%xmm3
xorpd  %xmm4,%xmm4
pcmpgtd -0x80(%rsp),%xmm4
xorpd  %xmm1,%xmm1
pcmpgtd -0x20(%rsp),%xmm1
packssdw %xmm4,%xmm1
cvttpd2dq %xmm12,%xmm4
cvttpd2dq %xmm10,%xmm5
cvttpd2dq %xmm6,%xmm6
unpcklpd %xmm6,%xmm5
cvttpd2dq %xmm0,%xmm0
unpcklpd %xmm0,%xmm4
cvttpd2dq %xmm2,%xmm2
cvttpd2dq %xmm3,%xmm3
cvttpd2dq %xmm15,%xmm6
cvttpd2dq %xmm9,%xmm7
unpcklpd %xmm3,%xmm2
unpcklpd %xmm7,%xmm6
packssdw %xmm5,%xmm6
pxor   %xmm5,%xmm5
pcmpgtd %xmm4,%xmm5
xorpd  %xmm7,%xmm7
pcmpgtd %xmm2,%xmm7
packssdw %xmm5,%xmm7
cvtdq2pd %xmm4,%xmm4
cvtdq2pd %xmm0,%xmm0
cvtdq2pd %xmm2,%xmm2
cvtdq2pd %xmm3,%xmm3
packsswb %xmm7,%xmm1
movapd %xmm13,%xmm5
minpd  %xmm4,%xmm5
movapd %xmm13,%xmm4
minpd  %xmm2,%xmm4
movapd %xmm13,%xmm2
minpd  %xmm0,%xmm2
cvttpd2dq %xmm5,%xmm5
cvttpd2dq %xmm2,%xmm2
minpd  %xmm3,%xmm13
unpcklpd %xmm2,%xmm5
cvttpd2dq %xmm4,%xmm2
cvttpd2dq %xmm13,%xmm0
unpcklpd %xmm0,%xmm2
packssdw %xmm5,%xmm2
packuswb %xmm2,%xmm6
pandn  %xmm6,%xmm1
xorpd  %xmm0,%xmm0
pcmpgtd 0x10(%rsp),%xmm0
pxor   %xmm2,%xmm2
pcmpgtd (%rsp),%xmm2
packssdw %xmm0,%xmm2
packsswb %xmm2,%xmm2
cvttpd2dq -0x10(%rsp),%xmm0
cvttpd2dq -0x50(%rsp),%xmm3
cvttpd2dq -0x60(%rsp),%xmm4
cvttpd2dq -0x70(%rsp),%xmm5
unpcklpd %xmm3,%xmm0
unpcklpd %xmm5,%xmm4
packssdw %xmm0,%xmm4
packuswb %xmm4,%xmm4
pandn  %xmm4,%xmm2
movdqa %xmm1,%xmm0
pxor   %xmm4,%xmm4
punpcklbw %xmm4,%xmm0
pshufd $0xa5,%xmm0,%xmm3
movdqa 0x941(%rip),%xmm5
pand   %xmm5,%xmm3
punpckhbw %xmm4,%xmm1
pshuflw $0xff,%xmm1,%xmm4
pshufhw $0x0,%xmm4,%xmm4
pandn  %xmm4,%xmm5
por    %xmm3,%xmm5
movdqa %xmm0,%xmm3
punpcklwd %xmm1,%xmm3
pshufd $0x64,%xmm3,%xmm3
pshuflw $0xa4,%xmm3,%xmm3
pshufhw $0x47,%xmm3,%xmm3
packuswb %xmm5,%xmm3
pshufd $0x44,%xmm2,%xmm4
pshuflw $0x0,%xmm4,%xmm4
pshufhw $0xa5,%xmm4,%xmm4
movdqa 0x8e5(%rip),%xmm6
movdqa %xmm6,%xmm5
pandn  %xmm4,%xmm5
pand   %xmm6,%xmm3
por    %xmm3,%xmm5
punpckhwd %xmm0,%xmm1
pshuflw $0xf6,%xmm2,%xmm0
movdqa 0x8e4(%rip),%xmm3
movdqa %xmm3,%xmm2
pandn  %xmm0,%xmm2
pshufd $0xf6,%xmm1,%xmm0
pshuflw $0x16,%xmm0,%xmm0
packuswb %xmm0,%xmm0
pand   %xmm3,%xmm0
por    %xmm0,%xmm2
movq   %xmm2,0x10(%rdx)
movdqu %xmm5,(%rdx)
add    $0x18,%rdx
add    $0x8,%rcx
jne    2110 <ConvertYCbCrToRGB+0x1010>
cmp    %r9,%r8
jne    284e <ConvertYCbCrToRGB+0x174e>
add    $0x128,%rsp
ret
pxor   %xmm0,%xmm0
movapd 0x7c5(%rip),%xmm8
movapd 0x89c(%rip),%xmm9
movsd  0x8b4(%rip),%xmm1
movsd  0x8b3(%rip),%xmm14
movsd  0x8b2(%rip),%xmm10
movsd  0x8b1(%rip),%xmm11
movsd  0x8b0(%rip),%xmm12
xorpd  %xmm13,%xmm13
xor    %ecx,%ecx
movsd  0x8a9(%rip),%xmm2
jmp    2967 <ConvertYCbCrToRGB+0x1867>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movapd %xmm4,%xmm5
unpckhpd %xmm4,%xmm5
addsd  %xmm7,%xmm5
cvttsd2si %xmm5,%edx
cvttpd2dq %xmm5,%xmm5
cvtdq2pd %xmm5,%xmm7
addsd  %xmm4,%xmm3
cvttsd2si %xmm3,%edi
cvttpd2dq %xmm3,%xmm3
cvtdq2pd %xmm3,%xmm5
movapd %xmm5,%xmm3
mulsd  %xmm10,%xmm3
addsd  %xmm6,%xmm3
movapd %xmm2,%xmm4
minsd  %xmm7,%xmm4
mulsd  %xmm11,%xmm7
addsd  %xmm3,%xmm7
divsd  %xmm12,%xmm7
movapd %xmm7,%xmm3
cmpltsd %xmm13,%xmm3
movapd %xmm3,%xmm6
andpd  %xmm1,%xmm6
andnpd %xmm14,%xmm3
orpd   %xmm6,%xmm3
addsd  %xmm7,%xmm3
cvttsd2si %xmm3,%esi
cvttpd2dq %xmm3,%xmm3
movapd %xmm2,%xmm6
minsd  %xmm5,%xmm6
cvtdq2pd %xmm3,%xmm3
test   %edx,%edx
cvttsd2si %xmm4,%edx
cmovs  %ecx,%edx
mov    %dl,(%rax)
movapd %xmm2,%xmm4
minsd  %xmm3,%xmm4
cvttsd2si %xmm4,%edx
test   %esi,%esi
cmovs  %ecx,%edx
test   %edi,%edi
cvttsd2si %xmm6,%esi
cmovs  %ecx,%esi
mov    %dl,0x1(%rax)
mov    %sil,0x2(%rax)
add    $0x3,%rax
cmp    %r11,%rax
jae    2846 <ConvertYCbCrToRGB+0x1746>
movzbl (%rax),%edx
xorps  %xmm6,%xmm6
cvtsi2sd %edx,%xmm6
movzwl 0x1(%rax),%edx
movd   %edx,%xmm3
punpcklbw %xmm0,%xmm3
punpcklwd %xmm0,%xmm3
cvtdq2pd %xmm3,%xmm4
addpd  %xmm8,%xmm4
movapd %xmm6,%xmm3
unpcklpd %xmm6,%xmm3
mulpd  %xmm9,%xmm4
addpd  %xmm3,%xmm4
movapd %xmm4,%xmm3
cmpltpd %xmm0,%xmm3
movmskpd %xmm3,%edx
movapd %xmm1,%xmm7
test   $0x2,%dl
jne    29b6 <ConvertYCbCrToRGB+0x18b6>
movapd %xmm14,%xmm7
movapd %xmm1,%xmm3
test   $0x1,%dl
jne    28b0 <ConvertYCbCrToRGB+0x17b0>
movapd %xmm14,%xmm3
jmp    28b0 <ConvertYCbCrToRGB+0x17b0>

LLVM IR (-O0):
define void @ConvertYCbCrToRGB(i8* %0, i32 %1) {
%3 = alloca i8*
%4 = alloca i32
%5 = alloca double
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca i8*
store i8* %0, i8** %3
store i32 %1, i32* %4
%12 = load i8*, i8** %3
%13 = load i32, i32* %4
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds i8, i8* %12, i64 %14
store i8* %15, i8** %11
br label %16
16: ; preds = %146, %2
%17 = load i8*, i8** %3
%18 = load i8*, i8** %11
%19 = icmp ult i8* %17, %18
br i1 %19, label %20, label %153
20: ; preds = %16
%21 = load i8*, i8** %3
%22 = getelementptr inbounds i8, i8* %21, i64 0
%23 = load i8, i8* %22
%24 = uitofp i8 %23 to double
store double %24, double* %5
%25 = load i8*, i8** %3
%26 = getelementptr inbounds i8, i8* %25, i64 1
%27 = load i8, i8* %26
%28 = zext i8 %27 to i32
%29 = sitofp i32 %28 to double
%30 = fsub double %29, 1.275000e+02
store double %30, double* %6
%31 = load i8*, i8** %3
%32 = getelementptr inbounds i8, i8* %31, i64 2
%33 = load i8, i8* %32
%34 = zext i8 %33 to i32
%35 = sitofp i32 %34 to double
%36 = fsub double %35, 1.275000e+02
store double %36, double* %7
%37 = load double, double* %5
%38 = load double, double* %7
%39 = call double @llvm.fmuladd.f64(double %38, double 1.402000e+00, double %37)
%40 = fcmp olt double %39, 0.000000e+00
br i1 %40, label %41, label %47
41: ; preds = %20
%42 = load double, double* %5
%43 = load double, double* %7
%44 = call double @llvm.fmuladd.f64(double %43, double 1.402000e+00, double %42)
%45 = fsub double %44, 5.000000e-01
%46 = fptosi double %45 to i32
br label %53
47: ; preds = %20
%48 = load double, double* %5
%49 = load double, double* %7
%50 = call double @llvm.fmuladd.f64(double %49, double 1.402000e+00, double %48)
%51 = fadd double %50, 5.000000e-01
%52 = fptosi double %51 to i32
br label %53
53: ; preds = %47, %41
%54 = phi i32 [ %46, %41 ], [ %52, %47 ]
%55 = sitofp i32 %54 to double
store double %55, double* %8
%56 = load double, double* %5
%57 = load double, double* %6
%58 = call double @llvm.fmuladd.f64(double %57, double 1.772000e+00, double %56)
%59 = fcmp olt double %58, 0.000000e+00
br i1 %59, label %60, label %66
60: ; preds = %53
%61 = load double, double* %5
%62 = load double, double* %6
%63 = call double @llvm.fmuladd.f64(double %62, double 1.772000e+00, double %61)
%64 = fsub double %63, 5.000000e-01
%65 = fptosi double %64 to i32
br label %72
66: ; preds = %53
%67 = load double, double* %5
%68 = load double, double* %6
%69 = call double @llvm.fmuladd.f64(double %68, double 1.772000e+00, double %67)
%70 = fadd double %69, 5.000000e-01
%71 = fptosi double %70 to i32
br label %72
72: ; preds = %66, %60
%73 = phi i32 [ %65, %60 ], [ %71, %66 ]
%74 = sitofp i32 %73 to double
store double %74, double* %10
%75 = load double, double* %5
%76 = load double, double* %10
%77 = call double @llvm.fmuladd.f64(double -1.140000e-01, double %76, double %75)
%78 = load double, double* %8
%79 = call double @llvm.fmuladd.f64(double -2.990000e-01, double %78, double %77)
%80 = fdiv double %79, 5.870000e-01
%81 = fcmp olt double %80, 0.000000e+00
br i1 %81, label %82, label %91
82: ; preds = %72
%83 = load double, double* %5
%84 = load double, double* %10
%85 = call double @llvm.fmuladd.f64(double -1.140000e-01, double %84, double %83)
%86 = load double, double* %8
%87 = call double @llvm.fmuladd.f64(double -2.990000e-01, double %86, double %85)
%88 = fdiv double %87, 5.870000e-01
%89 = fsub double %88, 5.000000e-01
%90 = fptosi double %89 to i32
br label %100
91: ; preds = %72
%92 = load double, double* %5
%93 = load double, double* %10
%94 = call double @llvm.fmuladd.f64(double -1.140000e-01, double %93, double %92)
%95 = load double, double* %8
%96 = call double @llvm.fmuladd.f64(double -2.990000e-01, double %95, double %94)
%97 = fdiv double %96, 5.870000e-01
%98 = fadd double %97, 5.000000e-01
%99 = fptosi double %98 to i32
br label %100
100: ; preds = %91, %82
%101 = phi i32 [ %90, %82 ], [ %99, %91 ]
%102 = sitofp i32 %101 to double
store double %102, double* %9
%103 = load double, double* %8
%104 = fcmp olt double %103, 0.000000e+00
br i1 %104, label %105, label %106
105: ; preds = %100
br label %114
106: ; preds = %100
%107 = load double, double* %8
%108 = fcmp ogt double %107, 2.550000e+02
br i1 %108, label %109, label %110
109: ; preds = %106
br label %112
110: ; preds = %106
%111 = load double, double* %8
br label %112
112: ; preds = %110, %109
%113 = phi double [ 2.550000e+02, %109 ], [ %111, %110 ]
br label %114
114: ; preds = %112, %105
%115 = phi double [ 0.000000e+00, %105 ], [ %113, %112 ]
%116 = fptoui double %115 to i8
%117 = load i8*, i8** %3
%118 = getelementptr inbounds i8, i8* %117, i64 0
store i8 %116, i8* %118
%119 = load double, double* %9
%120 = fcmp olt double %119, 0.000000e+00
br i1 %120, label %121, label %122
121: ; preds = %114
br label %130
122: ; preds = %114
%123 = load double, double* %9
%124 = fcmp ogt double %123, 2.550000e+02
br i1 %124, label %125, label %126
125: ; preds = %122
br label %128
126: ; preds = %122
%127 = load double, double* %9
br label %128
128: ; preds = %126, %125
%129 = phi double [ 2.550000e+02, %125 ], [ %127, %126 ]
br label %130
130: ; preds = %128, %121
%131 = phi double [ 0.000000e+00, %121 ], [ %129, %128 ]
%132 = fptoui double %131 to i8
%133 = load i8*, i8** %3
%134 = getelementptr inbounds i8, i8* %133, i64 1
store i8 %132, i8* %134
%135 = load double, double* %10
%136 = fcmp olt double %135, 0.000000e+00
br i1 %136, label %137, label %138
137: ; preds = %130
br label %146
138: ; preds = %130
%139 = load double, double* %10
%140 = fcmp ogt double %139, 2.550000e+02
br i1 %140, label %141, label %142
141: ; preds = %138
br label %144
142: ; preds = %138
%143 = load double, double* %10
br label %144
144: ; preds = %142, %141
%145 = phi double [ 2.550000e+02, %141 ], [ %143, %142 ]
br label %146
146: ; preds = %144, %137
%147 = phi double [ 0.000000e+00, %137 ], [ %145, %144 ]
%148 = fptoui double %147 to i8
%149 = load i8*, i8** %3
%150 = getelementptr inbounds i8, i8* %149, i64 2
store i8 %148, i8* %150
%151 = load i8*, i8** %3
%152 = getelementptr inbounds i8, i8* %151, i64 3
store i8* %152, i8** %3
br label %16
153: ; preds = %16
ret void
}

LLVM IR (-O2):
define void @ConvertYCbCrToRGB(i8* %0, i32 %1) {
%3 = ptrtoint i8* %0 to i64
%4 = sext i32 %1 to i64
%5 = getelementptr inbounds i8, i8* %0, i64 %4
%6 = icmp sgt i32 %1, 0
br i1 %6, label %7, label %216
7: ; preds = %2
%8 = add i64 %3, %4
%9 = add i64 %3, 3
%10 = call i64 @llvm.umax.i64(i64 %8, i64 %9)
%11 = add i64 %10, -3
%12 = sub i64 %11, %3
%13 = icmp ne i64 %12, 0
%14 = zext i1 %13 to i64
%15 = sub i64 %12, %14
%16 = udiv i64 %15, 3
%17 = add nuw nsw i64 %16, %14
%18 = add nuw i64 %17, 1
%19 = icmp ult i64 %17, 7
br i1 %19, label %163, label %20
20: ; preds = %7
%21 = icmp ult i64 %17, 15
br i1 %21, label %88, label %22
22: ; preds = %20
%23 = and i64 %18, -16
br label %24
24: ; preds = %24, %22
%25 = phi i64 [ 0, %22 ], [ %79, %24 ]
%26 = mul i64 %25, 3
%27 = getelementptr i8, i8* %0, i64 %26
%28 = bitcast i8* %27 to <48 x i8>*
%29 = load <48 x i8>, <48 x i8>* %28
%30 = shufflevector <48 x i8> %29, <48 x i8> poison, <16 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21, i32 24, i32 27, i32 30, i32 33, i32 36, i32 39, i32 42, i32 45>
%31 = shufflevector <48 x i8> %29, <48 x i8> poison, <16 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22, i32 25, i32 28, i32 31, i32 34, i32 37, i32 40, i32 43, i32 46>
%32 = shufflevector <48 x i8> %29, <48 x i8> poison, <16 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23, i32 26, i32 29, i32 32, i32 35, i32 38, i32 41, i32 44, i32 47>
%33 = uitofp <16 x i8> %30 to <16 x double>
%34 = uitofp <16 x i8> %31 to <16 x double>
%35 = fadd <16 x double> %34, <double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02>
%36 = getelementptr inbounds i8, i8* %27, i64 2
%37 = uitofp <16 x i8> %32 to <16 x double>
%38 = fadd <16 x double> %37, <double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02>
%39 = call <16 x double> @llvm.fmuladd.v16f64(<16 x double> %38, <16 x double> <double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00>, <16 x double> %33)
%40 = fcmp olt <16 x double> %39, zeroinitializer
%41 = select <16 x i1> %40, <16 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <16 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%42 = fadd <16 x double> %39, %41
%43 = fptosi <16 x double> %42 to <16 x i32>
%44 = sitofp <16 x i32> %43 to <16 x double>
%45 = call <16 x double> @llvm.fmuladd.v16f64(<16 x double> %35, <16 x double> <double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00>, <16 x double> %33)
%46 = fcmp olt <16 x double> %45, zeroinitializer
%47 = select <16 x i1> %46, <16 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <16 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%48 = fadd <16 x double> %45, %47
%49 = fptosi <16 x double> %48 to <16 x i32>
%50 = sitofp <16 x i32> %49 to <16 x double>
%51 = call <16 x double> @llvm.fmuladd.v16f64(<16 x double> %50, <16 x double> <double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01>, <16 x double> %33)
%52 = call <16 x double> @llvm.fmuladd.v16f64(<16 x double> %44, <16 x double> <double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01>, <16 x double> %51)
%53 = fdiv <16 x double> %52, <double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01>
%54 = fcmp olt <16 x double> %53, zeroinitializer
%55 = select <16 x i1> %54, <16 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <16 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%56 = fadd <16 x double> %53, %55
%57 = fptosi <16 x double> %56 to <16 x i32>
%58 = sitofp <16 x i32> %57 to <16 x double>
%59 = icmp slt <16 x i32> %43, zeroinitializer
%60 = fcmp ogt <16 x double> %44, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%61 = select <16 x i1> %60, <16 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <16 x double> %44
%62 = fptoui <16 x double> %61 to <16 x i8>
%63 = select <16 x i1> %59, <16 x i8> zeroinitializer, <16 x i8> %62
%64 = icmp slt <16 x i32> %57, zeroinitializer
%65 = fcmp ogt <16 x double> %58, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%66 = select <16 x i1> %65, <16 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <16 x double> %58
%67 = fptoui <16 x double> %66 to <16 x i8>
%68 = select <16 x i1> %64, <16 x i8> zeroinitializer, <16 x i8> %67
%69 = icmp slt <16 x i32> %49, zeroinitializer
%70 = fcmp ogt <16 x double> %50, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%71 = select <16 x i1> %70, <16 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <16 x double> %50
%72 = fptoui <16 x double> %71 to <16 x i8>
%73 = select <16 x i1> %69, <16 x i8> zeroinitializer, <16 x i8> %72
%74 = getelementptr inbounds i8, i8* %36, i64 -2
%75 = bitcast i8* %74 to <48 x i8>*
%76 = shufflevector <16 x i8> %63, <16 x i8> %68, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
%77 = shufflevector <16 x i8> %73, <16 x i8> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
%78 = shufflevector <32 x i8> %76, <32 x i8> %77, <48 x i32> <i32 0, i32 16, i32 32, i32 1, i32 17, i32 33, i32 2, i32 18, i32 34, i32 3, i32 19, i32 35, i32 4, i32 20, i32 36, i32 5, i32 21, i32 37, i32 6, i32 22, i32 38, i32 7, i32 23, i32 39, i32 8, i32 24, i32 40, i32 9, i32 25, i32 41, i32 10, i32 26, i32 42, i32 11, i32 27, i32 43, i32 12, i32 28, i32 44, i32 13, i32 29, i32 45, i32 14, i32 30, i32 46, i32 15, i32 31, i32 47>
store <48 x i8> %78, <48 x i8>* %75
%79 = add nuw i64 %25, 16
%80 = icmp eq i64 %79, %23
br i1 %80, label %81, label %24
81: ; preds = %24
%82 = icmp eq i64 %18, %23
br i1 %82, label %216, label %83
83: ; preds = %81
%84 = mul i64 %23, 3
%85 = getelementptr i8, i8* %0, i64 %84
%86 = and i64 %18, 8
%87 = icmp eq i64 %86, 0
br i1 %87, label %163, label %88
88: ; preds = %20, %83
%89 = phi i64 [ %23, %83 ], [ 0, %20 ]
%90 = add i64 %3, %4
%91 = add i64 %3, 3
%92 = call i64 @llvm.umax.i64(i64 %90, i64 %91)
%93 = add i64 %92, -3
%94 = sub i64 %93, %3
%95 = icmp ne i64 %94, 0
%96 = zext i1 %95 to i64
%97 = sub i64 %94, %96
%98 = udiv i64 %97, 3
%99 = add nuw nsw i64 %98, %96
%100 = add nuw i64 %99, 1
%101 = and i64 %100, -8
%102 = mul i64 %101, 3
%103 = getelementptr i8, i8* %0, i64 %102
br label %104
104: ; preds = %104, %88
%105 = phi i64 [ %89, %88 ], [ %159, %104 ]
%106 = mul i64 %105, 3
%107 = getelementptr i8, i8* %0, i64 %106
%108 = bitcast i8* %107 to <24 x i8>*
%109 = load <24 x i8>, <24 x i8>* %108
%110 = shufflevector <24 x i8> %109, <24 x i8> poison, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21>
%111 = shufflevector <24 x i8> %109, <24 x i8> poison, <8 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22>
%112 = shufflevector <24 x i8> %109, <24 x i8> poison, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23>
%113 = uitofp <8 x i8> %110 to <8 x double>
%114 = uitofp <8 x i8> %111 to <8 x double>
%115 = fadd <8 x double> %114, <double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02>
%116 = getelementptr inbounds i8, i8* %107, i64 2
%117 = uitofp <8 x i8> %112 to <8 x double>
%118 = fadd <8 x double> %117, <double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02, double -1.275000e+02>
%119 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %118, <8 x double> <double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00, double 1.402000e+00>, <8 x double> %113)
%120 = fcmp olt <8 x double> %119, zeroinitializer
%121 = select <8 x i1> %120, <8 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <8 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%122 = fadd <8 x double> %119, %121
%123 = fptosi <8 x double> %122 to <8 x i32>
%124 = sitofp <8 x i32> %123 to <8 x double>
%125 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %115, <8 x double> <double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00, double 1.772000e+00>, <8 x double> %113)
%126 = fcmp olt <8 x double> %125, zeroinitializer
%127 = select <8 x i1> %126, <8 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <8 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%128 = fadd <8 x double> %125, %127
%129 = fptosi <8 x double> %128 to <8 x i32>
%130 = sitofp <8 x i32> %129 to <8 x double>
%131 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %130, <8 x double> <double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01, double -1.140000e-01>, <8 x double> %113)
%132 = call <8 x double> @llvm.fmuladd.v8f64(<8 x double> %124, <8 x double> <double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01, double -2.990000e-01>, <8 x double> %131)
%133 = fdiv <8 x double> %132, <double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01, double 5.870000e-01>
%134 = fcmp olt <8 x double> %133, zeroinitializer
%135 = select <8 x i1> %134, <8 x double> <double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01, double -5.000000e-01>, <8 x double> <double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01, double 5.000000e-01>
%136 = fadd <8 x double> %133, %135
%137 = fptosi <8 x double> %136 to <8 x i32>
%138 = sitofp <8 x i32> %137 to <8 x double>
%139 = icmp slt <8 x i32> %123, zeroinitializer
%140 = fcmp ogt <8 x double> %124, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%141 = select <8 x i1> %140, <8 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <8 x double> %124
%142 = fptoui <8 x double> %141 to <8 x i8>
%143 = select <8 x i1> %139, <8 x i8> zeroinitializer, <8 x i8> %142
%144 = icmp slt <8 x i32> %137, zeroinitializer
%145 = fcmp ogt <8 x double> %138, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%146 = select <8 x i1> %145, <8 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <8 x double> %138
%147 = fptoui <8 x double> %146 to <8 x i8>
%148 = select <8 x i1> %144, <8 x i8> zeroinitializer, <8 x i8> %147
%149 = icmp slt <8 x i32> %129, zeroinitializer
%150 = fcmp ogt <8 x double> %130, <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>
%151 = select <8 x i1> %150, <8 x double> <double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02, double 2.550000e+02>, <8 x double> %130
%152 = fptoui <8 x double> %151 to <8 x i8>
%153 = select <8 x i1> %149, <8 x i8> zeroinitializer, <8 x i8> %152
%154 = getelementptr inbounds i8, i8* %116, i64 -2
%155 = bitcast i8* %154 to <24 x i8>*
%156 = shufflevector <8 x i8> %143, <8 x i8> %148, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
%157 = shufflevector <8 x i8> %153, <8 x i8> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
%158 = shufflevector <16 x i8> %156, <16 x i8> %157, <24 x i32> <i32 0, i32 8, i32 16, i32 1, i32 9, i32 17, i32 2, i32 10, i32 18, i32 3, i32 11, i32 19, i32 4, i32 12, i32 20, i32 5, i32 13, i32 21, i32 6, i32 14, i32 22, i32 7, i32 15, i32 23>
store <24 x i8> %158, <24 x i8>* %155
%159 = add nuw i64 %105, 8
%160 = icmp eq i64 %159, %101
br i1 %160, label %161, label %104
161: ; preds = %104
%162 = icmp eq i64 %100, %101
br i1 %162, label %216, label %163
163: ; preds = %7, %83, %161
%164 = phi i8* [ %0, %7 ], [ %85, %83 ], [ %103, %161 ]
br label %165
165: ; preds = %163, %165
%166 = phi i8* [ %214, %165 ], [ %164, %163 ]
%167 = load i8, i8* %166
%168 = uitofp i8 %167 to double
%169 = getelementptr inbounds i8, i8* %166, i64 1
%170 = getelementptr inbounds i8, i8* %166, i64 2
%171 = bitcast i8* %169 to <2 x i8>*
%172 = load <2 x i8>, <2 x i8>* %171
%173 = uitofp <2 x i8> %172 to <2 x double>
%174 = fadd <2 x double> %173, <double -1.275000e+02, double -1.275000e+02>
%175 = insertelement <2 x double> poison, double %168, i64 0
%176 = shufflevector <2 x double> %175, <2 x double> poison, <2 x i32> zeroinitializer
%177 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %174, <2 x double> <double 1.772000e+00, double 1.402000e+00>, <2 x double> %176)
%178 = fcmp olt <2 x double> %177, zeroinitializer
%179 = extractelement <2 x i1> %178, i64 1
%180 = select i1 %179, double -5.000000e-01, double 5.000000e-01
%181 = extractelement <2 x double> %177, i64 1
%182 = fadd double %181, %180
%183 = fptosi double %182 to i32
%184 = sitofp i32 %183 to double
%185 = extractelement <2 x i1> %178, i64 0
%186 = select i1 %185, double -5.000000e-01, double 5.000000e-01
%187 = extractelement <2 x double> %177, i64 0
%188 = fadd double %187, %186
%189 = fptosi double %188 to i32
%190 = sitofp i32 %189 to double
%191 = tail call double @llvm.fmuladd.f64(double %190, double -1.140000e-01, double %168)
%192 = tail call double @llvm.fmuladd.f64(double %184, double -2.990000e-01, double %191)
%193 = fdiv double %192, 5.870000e-01
%194 = fcmp olt double %193, 0.000000e+00
%195 = select i1 %194, double -5.000000e-01, double 5.000000e-01
%196 = fadd double %193, %195
%197 = fptosi double %196 to i32
%198 = sitofp i32 %197 to double
%199 = icmp slt i32 %183, 0
%200 = fcmp ogt double %184, 2.550000e+02
%201 = select i1 %200, double 2.550000e+02, double %184
%202 = fptoui double %201 to i8
%203 = select i1 %199, i8 0, i8 %202
store i8 %203, i8* %166
%204 = icmp slt i32 %197, 0
%205 = fcmp ogt double %198, 2.550000e+02
%206 = select i1 %205, double 2.550000e+02, double %198
%207 = fptoui double %206 to i8
%208 = select i1 %204, i8 0, i8 %207
store i8 %208, i8* %169
%209 = icmp slt i32 %189, 0
%210 = fcmp ogt double %190, 2.550000e+02
%211 = select i1 %210, double 2.550000e+02, double %190
%212 = fptoui double %211 to i8
%213 = select i1 %209, i8 0, i8 %212
store i8 %213, i8* %170
%214 = getelementptr inbounds i8, i8* %166, i64 3
%215 = icmp ult i8* %214, %5
br i1 %215, label %165, label %216
216: ; preds = %165, %81, %161, %2
ret void
}