void FillFileFrame(void *dataout, char rtype, int s0, int n) {
  int i;
  switch (rtype) {
  case 'c':
    for (i = 0; i < n; i++) {
      ((unsigned char *)dataout)[i] = (unsigned char)i + s0;
    }
    break;
  case 'i':
  case 'S':
    for (i = 0; i < n; i++) {
      ((int *)dataout)[i] = (int)i + s0;
    }
    break;
  case 's':
    for (i = 0; i < n; i++) {
      ((short *)dataout)[i] = (short)i + s0;
    }
    break;
  case 'U':
    for (i = 0; i < n; i++) {
      ((unsigned int *)dataout)[i] = (unsigned int)i + s0;
    }
    break;
  case 'u':
    for (i = 0; i < n; i++) {
      ((unsigned short *)dataout)[i] = (unsigned short)i + s0;
    }
    break;
  case 'f':
    for (i = 0; i < n; i++) {
      ((float *)dataout)[i] = (float)i + s0;
    }
    break;
  case 'd':
    for (i = 0; i < n; i++) {
      ((double *)dataout)[i] = (double)i + s0;
    }
    break;
  }
}


x86 assembly (clang, -O0):
<FillFileFrame>:
push   %rbp
mov    %rsp,%rbp
mov    %sil,%al
mov    %rdi,-0x8(%rbp)
mov    %al,-0x9(%rbp)
mov    %edx,-0x10(%rbp)
mov    %ecx,-0x14(%rbp)
movsbl -0x9(%rbp),%eax
add    $0xffffffad,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x22,%eax
ja     12e4 <FillFileFrame+0x1e4>
mov    -0x20(%rbp),%rax
lea    0xecb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1175 <FillFileFrame+0x75>
mov    -0x18(%rbp),%eax
movzbl %al,%eax
add    -0x10(%rbp),%eax
mov    %al,%dl
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1145 <FillFileFrame+0x45>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    11ac <FillFileFrame+0xac>
mov    -0x18(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1181 <FillFileFrame+0x81>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    11e8 <FillFileFrame+0xe8>
mov    -0x18(%rbp),%eax
cwtl
add    -0x10(%rbp),%eax
mov    %ax,%dx
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %dx,(%rax,%rcx,2)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11b8 <FillFileFrame+0xb8>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    121f <FillFileFrame+0x11f>
mov    -0x18(%rbp),%edx
add    -0x10(%rbp),%edx
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11f4 <FillFileFrame+0xf4>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    125d <FillFileFrame+0x15d>
mov    -0x18(%rbp),%eax
movzwl %ax,%eax
add    -0x10(%rbp),%eax
mov    %ax,%dx
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %dx,(%rax,%rcx,2)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    122b <FillFileFrame+0x12b>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    129e <FillFileFrame+0x19e>
cvtsi2ssl -0x18(%rbp),%xmm0
cvtsi2ssl -0x10(%rbp),%xmm1
addss  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1269 <FillFileFrame+0x169>
jmp    12e4 <FillFileFrame+0x1e4>
movl   $0x0,-0x18(%rbp)
mov    -0x18(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    12df <FillFileFrame+0x1df>
cvtsi2sdl -0x18(%rbp),%xmm0
cvtsi2sdl -0x10(%rbp),%xmm1
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movslq -0x18(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    12aa <FillFileFrame+0x1aa>
jmp    12e4 <FillFileFrame+0x1e4>
pop    %rbp
ret

x86 assembly (clang, -O2):
<FillFileFrame>:
add    $0xffffffad,%esi
cmp    $0x22,%esi
ja     1c79 <FillFileFrame+0xb79>
lea    0x100d(%rip),%rax
movslq (%rax,%rsi,4),%rsi
add    %rax,%rsi
jmp    *%rsi
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
mov    %ecx,%r9d
cmp    $0x8,%ecx
jae    11df <FillFileFrame+0xdf>
xor    %ecx,%ecx
jmp    12b7 <FillFileFrame+0x1b7>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
mov    %ecx,%r9d
cmp    $0x8,%ecx
jae    12d4 <FillFileFrame+0x1d4>
xor    %ecx,%ecx
jmp    1bbd <FillFileFrame+0xabd>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
mov    %ecx,%r9d
cmp    $0x10,%ecx
jae    137e <FillFileFrame+0x27e>
xor    %ecx,%ecx
jmp    182b <FillFileFrame+0x72b>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
cvtsi2sd %edx,%xmm0
mov    %ecx,%eax
cmp    $0x4,%ecx
jae    13d7 <FillFileFrame+0x2d7>
xor    %ecx,%ecx
jmp    1c10 <FillFileFrame+0xb10>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
cvtsi2ss %edx,%xmm0
mov    %ecx,%eax
cmp    $0x8,%ecx
jae    1494 <FillFileFrame+0x394>
xor    %ecx,%ecx
jmp    1c60 <FillFileFrame+0xb60>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
mov    %ecx,%r9d
cmp    $0x8,%ecx
jae    1547 <FillFileFrame+0x447>
xor    %ecx,%ecx
jmp    19c7 <FillFileFrame+0x8c7>
test   %ecx,%ecx
jle    1c79 <FillFileFrame+0xb79>
mov    %ecx,%r9d
cmp    $0x8,%ecx
jae    158d <FillFileFrame+0x48d>
xor    %ecx,%ecx
jmp    1b67 <FillFileFrame+0xa67>
mov    %r9d,%ecx
and    $0xfffffff8,%ecx
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm0
lea    -0x8(%rcx),%rax
mov    %rax,%r8
shr    $0x3,%r8
add    $0x1,%r8
test   %rax,%rax
je     15d3 <FillFileFrame+0x4d3>
mov    %r8,%rax
and    $0xfffffffffffffffe,%rax
lea    0x4(%rdx),%esi
movd   %esi,%xmm1
pshufd $0x0,%xmm1,%xmm2
movdqa 0xe2f(%rip),%xmm1
xor    %esi,%esi
movdqa 0xe45(%rip),%xmm3
movdqa 0xe5d(%rip),%xmm4
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movdqa %xmm1,%xmm5
paddd  %xmm0,%xmm5
movdqa %xmm2,%xmm6
paddd  %xmm1,%xmm6
movdqu %xmm5,(%rdi,%rsi,4)
movdqu %xmm6,0x10(%rdi,%rsi,4)
movdqa %xmm1,%xmm5
paddd  %xmm3,%xmm5
movdqa %xmm2,%xmm6
paddd  %xmm5,%xmm6
paddd  %xmm0,%xmm5
movdqu %xmm5,0x20(%rdi,%rsi,4)
movdqu %xmm6,0x30(%rdi,%rsi,4)
add    $0x10,%rsi
paddd  %xmm4,%xmm1
add    $0xfffffffffffffffe,%rax
jne    1240 <FillFileFrame+0x140>
test   $0x1,%r8b
je     12ae <FillFileFrame+0x1ae>
paddd  %xmm1,%xmm0
lea    0x4(%rdx),%eax
movd   %eax,%xmm2
pshufd $0x0,%xmm2,%xmm2
paddd  %xmm1,%xmm2
movdqu %xmm0,(%rdi,%rsi,4)
movdqu %xmm2,0x10(%rdi,%rsi,4)
cmp    %r9,%rcx
je     1c79 <FillFileFrame+0xb79>
mov    %edx,%eax
nopl   0x0(%rax)
lea    (%rax,%rcx,1),%edx
mov    %edx,(%rdi,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    12c0 <FillFileFrame+0x1c0>
jmp    1c79 <FillFileFrame+0xb79>
mov    %r9d,%ecx
and    $0xfffffff8,%ecx
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm0
lea    -0x8(%rcx),%rax
mov    %rax,%r8
shr    $0x3,%r8
add    $0x1,%r8
test   %rax,%rax
je     1b85 <FillFileFrame+0xa85>
mov    %r8,%rax
and    $0xfffffffffffffffe,%rax
lea    0x4(%rdx),%esi
movd   %esi,%xmm1
pshufd $0x0,%xmm1,%xmm2
movdqa 0xd3a(%rip),%xmm1
xor    %esi,%esi
movdqa 0xd50(%rip),%xmm3
movdqa 0xd68(%rip),%xmm4
nopl   0x0(%rax,%rax,1)
movdqa %xmm1,%xmm5
paddd  %xmm0,%xmm5
movdqa %xmm2,%xmm6
paddd  %xmm1,%xmm6
movdqu %xmm5,(%rdi,%rsi,4)
movdqu %xmm6,0x10(%rdi,%rsi,4)
movdqa %xmm1,%xmm5
paddd  %xmm3,%xmm5
movdqa %xmm2,%xmm6
paddd  %xmm5,%xmm6
paddd  %xmm0,%xmm5
movdqu %xmm5,0x20(%rdi,%rsi,4)
movdqu %xmm6,0x30(%rdi,%rsi,4)
add    $0x10,%rsi
paddd  %xmm4,%xmm1
add    $0xfffffffffffffffe,%rax
jne    1330 <FillFileFrame+0x230>
jmp    1b8f <FillFileFrame+0xa8f>
mov    %r9d,%ecx
and    $0xfffffff0,%ecx
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm12
lea    -0x10(%rcx),%rsi
mov    %rsi,%rax
shr    $0x4,%rax
add    $0x1,%rax
mov    %eax,%r8d
and    $0x3,%r8d
cmp    $0x30,%rsi
jae    15ec <FillFileFrame+0x4ec>
movdqa 0xd19(%rip),%xmm8
movdqa 0xd20(%rip),%xmm15
movdqa 0xcd8(%rip),%xmm7
movdqa 0xc80(%rip),%xmm6
xor    %esi,%esi
jmp    1791 <FillFileFrame+0x691>
mov    %eax,%ecx
and    $0xfffffffc,%ecx
movapd %xmm0,%xmm1
unpcklpd %xmm0,%xmm1
lea    -0x4(%rcx),%rdx
mov    %rdx,%r8
shr    $0x2,%r8
add    $0x1,%r8
test   %rdx,%rdx
je     1bd4 <FillFileFrame+0xad4>
mov    %r8,%rsi
and    $0xfffffffffffffffe,%rsi
movdqa 0xbf5(%rip),%xmm4
xor    %edx,%edx
movdqa 0xbfa(%rip),%xmm8
movdqa 0xc01(%rip),%xmm9
movdqa 0xc09(%rip),%xmm5
movdqa 0xc11(%rip),%xmm6
nop
movdqa %xmm4,%xmm7
cvtdq2pd %xmm4,%xmm3
paddd  %xmm8,%xmm7
cvtdq2pd %xmm7,%xmm7
addpd  %xmm1,%xmm3
addpd  %xmm1,%xmm7
movupd %xmm3,(%rdi,%rdx,8)
movdqa %xmm4,%xmm3
paddd  %xmm9,%xmm3
movdqa %xmm4,%xmm2
paddd  %xmm5,%xmm2
cvtdq2pd %xmm3,%xmm3
cvtdq2pd %xmm2,%xmm2
movupd %xmm7,0x10(%rdi,%rdx,8)
addpd  %xmm1,%xmm3
addpd  %xmm1,%xmm2
movupd %xmm3,0x20(%rdi,%rdx,8)
movupd %xmm2,0x30(%rdi,%rdx,8)
add    $0x8,%rdx
paddd  %xmm6,%xmm4
add    $0xfffffffffffffffe,%rsi
jne    1430 <FillFileFrame+0x330>
jmp    1bde <FillFileFrame+0xade>
mov    %eax,%ecx
and    $0xfffffff8,%ecx
movaps %xmm0,%xmm1
shufps $0x0,%xmm0,%xmm1
lea    -0x8(%rcx),%rdx
mov    %rdx,%r8
shr    $0x3,%r8
add    $0x1,%r8
test   %rdx,%rdx
je     1c2b <FillFileFrame+0xb2b>
mov    %r8,%rsi
and    $0xfffffffffffffffe,%rsi
movdqa 0xb89(%rip),%xmm2
xor    %edx,%edx
movdqa 0xb8e(%rip),%xmm8
movdqa 0xb96(%rip),%xmm4
movdqa 0xb9e(%rip),%xmm5
movdqa 0xba6(%rip),%xmm6
nopw   0x0(%rax,%rax,1)
movdqa %xmm2,%xmm7
paddd  %xmm8,%xmm7
cvtdq2ps %xmm2,%xmm3
cvtdq2ps %xmm7,%xmm7
addps  %xmm1,%xmm3
addps  %xmm1,%xmm7
movups %xmm3,(%rdi,%rdx,4)
movups %xmm7,0x10(%rdi,%rdx,4)
movdqa %xmm2,%xmm3
paddd  %xmm4,%xmm3
movdqa %xmm2,%xmm7
paddd  %xmm5,%xmm7
cvtdq2ps %xmm3,%xmm3
cvtdq2ps %xmm7,%xmm7
addps  %xmm1,%xmm3
addps  %xmm1,%xmm7
movups %xmm3,0x20(%rdi,%rdx,4)
movups %xmm7,0x30(%rdi,%rdx,4)
add    $0x10,%rdx
paddd  %xmm6,%xmm2
add    $0xfffffffffffffffe,%rsi
jne    14f0 <FillFileFrame+0x3f0>
jmp    1c35 <FillFileFrame+0xb35>
mov    %r9d,%ecx
and    $0xfffffff8,%ecx
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm0
lea    -0x8(%rcx),%rax
mov    %rax,%rsi
shr    $0x3,%rsi
add    $0x1,%rsi
mov    %esi,%r8d
and    $0x3,%r8d
cmp    $0x18,%rax
jae    1844 <FillFileFrame+0x744>
movdqa 0xb22(%rip),%xmm5
movdqa 0xaca(%rip),%xmm4
xor    %eax,%eax
jmp    1963 <FillFileFrame+0x863>
mov    %r9d,%ecx
and    $0xfffffff8,%ecx
movd   %edx,%xmm0
pshufd $0x0,%xmm0,%xmm0
lea    -0x8(%rcx),%rax
mov    %rax,%rsi
shr    $0x3,%rsi
add    $0x1,%rsi
mov    %esi,%r8d
and    $0x3,%r8d
cmp    $0x18,%rax
jae    19e5 <FillFileFrame+0x8e5>
movdqa 0xadc(%rip),%xmm5
movdqa 0xa84(%rip),%xmm4
xor    %eax,%eax
jmp    1b03 <FillFileFrame+0xa03>
movdqa 0xa75(%rip),%xmm1
xor    %esi,%esi
test   $0x1,%r8b
jne    128f <FillFileFrame+0x18f>
jmp    12ae <FillFileFrame+0x1ae>
and    $0xfffffffffffffffc,%rax
movdqa 0xad7(%rip),%xmm8
movdqa 0xade(%rip),%xmm15
movdqa 0xa96(%rip),%xmm7
movdqa 0xa3e(%rip),%xmm6
xor    %esi,%esi
movdqa 0xad3(%rip),%xmm13
movdqa 0xada(%rip),%xmm10
movdqa 0xae1(%rip),%xmm11
nop
movdqa %xmm8,%xmm14
paddd  %xmm12,%xmm14
movdqa %xmm15,%xmm2
paddd  %xmm12,%xmm2
movdqa %xmm7,%xmm5
paddd  %xmm12,%xmm5
movdqa %xmm6,%xmm0
paddd  %xmm12,%xmm0
movdqa %xmm0,%xmm4
pand   %xmm13,%xmm4
movdqa %xmm5,%xmm3
pand   %xmm13,%xmm3
packuswb %xmm3,%xmm4
movdqa %xmm2,%xmm3
pand   %xmm13,%xmm3
movdqa %xmm14,%xmm1
pand   %xmm13,%xmm1
packuswb %xmm1,%xmm3
packuswb %xmm3,%xmm4
movdqu %xmm4,(%rdi,%rsi,1)
movdqa %xmm14,%xmm1
movdqa 0x9f6(%rip),%xmm9
paddd  %xmm9,%xmm1
movdqa %xmm5,%xmm3
paddd  %xmm9,%xmm3
movdqa %xmm0,%xmm4
paddd  %xmm9,%xmm4
pand   %xmm13,%xmm4
pand   %xmm13,%xmm3
packuswb %xmm3,%xmm4
movdqa %xmm2,%xmm3
paddd  %xmm9,%xmm3
pand   %xmm13,%xmm3
pand   %xmm13,%xmm1
packuswb %xmm1,%xmm3
packuswb %xmm3,%xmm4
movdqu %xmm4,0x10(%rdi,%rsi,1)
movdqa %xmm14,%xmm1
movdqa 0x9d2(%rip),%xmm9
paddd  %xmm9,%xmm1
movdqa %xmm5,%xmm3
paddd  %xmm9,%xmm3
movdqa %xmm0,%xmm4
paddd  %xmm9,%xmm4
pand   %xmm13,%xmm4
pand   %xmm13,%xmm3
packuswb %xmm3,%xmm4
movdqa %xmm2,%xmm3
paddd  %xmm9,%xmm3
pand   %xmm13,%xmm3
pand   %xmm13,%xmm1
packuswb %xmm1,%xmm3
packuswb %xmm3,%xmm4
movdqu %xmm4,0x20(%rdi,%rsi,1)
paddd  %xmm10,%xmm5
paddd  %xmm10,%xmm0
pand   %xmm13,%xmm0
pand   %xmm13,%xmm5
packuswb %xmm5,%xmm0
paddd  %xmm10,%xmm14
paddd  %xmm10,%xmm2
pand   %xmm13,%xmm2
pand   %xmm13,%xmm14
packuswb %xmm14,%xmm2
packuswb %xmm2,%xmm0
movdqu %xmm0,0x30(%rdi,%rsi,1)
add    $0x40,%rsi
paddd  %xmm11,%xmm6
paddd  %xmm11,%xmm7
paddd  %xmm11,%xmm15
paddd  %xmm11,%xmm8
add    $0xfffffffffffffffc,%rax
jne    1630 <FillFileFrame+0x530>
test   %r8,%r8
je     1822 <FillFileFrame+0x722>
add    %rdi,%rsi
shl    $0x4,%r8
xor    %eax,%eax
movdqa 0x945(%rip),%xmm1
movdqa 0x8dd(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movdqa %xmm8,%xmm0
paddd  %xmm12,%xmm0
movdqa %xmm15,%xmm3
paddd  %xmm12,%xmm3
movdqa %xmm7,%xmm4
paddd  %xmm12,%xmm4
movdqa %xmm6,%xmm5
paddd  %xmm12,%xmm5
pand   %xmm1,%xmm5
pand   %xmm1,%xmm4
packuswb %xmm4,%xmm5
pand   %xmm1,%xmm3
pand   %xmm1,%xmm0
packuswb %xmm0,%xmm3
packuswb %xmm3,%xmm5
movdqu %xmm5,(%rsi,%rax,1)
paddd  %xmm2,%xmm6
paddd  %xmm2,%xmm7
paddd  %xmm2,%xmm15
paddd  %xmm2,%xmm8
add    $0x10,%rax
cmp    %rax,%r8
jne    17c0 <FillFileFrame+0x6c0>
cmp    %r9,%rcx
je     1c79 <FillFileFrame+0xb79>
mov    %edx,%eax
nopl   (%rax)
lea    (%rax,%rcx,1),%edx
mov    %dl,(%rdi,%rcx,1)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    1830 <FillFileFrame+0x730>
jmp    1c79 <FillFileFrame+0xb79>
movabs $0x3ffffffffffffffe,%rax
ff ff 3f
add    $0xfffffffffffffffe,%rax
and    %rax,%rsi
movdqa 0x843(%rip),%xmm5
movdqa 0x7eb(%rip),%xmm4
xor    %eax,%eax
movdqa 0x800(%rip),%xmm8
movdqa 0x817(%rip),%xmm9
movdqa 0x82e(%rip),%xmm10
movdqa 0x836(%rip),%xmm6
nopw   0x0(%rax,%rax,1)
movdqa %xmm5,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm4,%xmm3
paddd  %xmm0,%xmm3
movdqa %xmm3,%xmm2
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
movdqa %xmm1,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
packssdw %xmm7,%xmm2
movdqu %xmm2,(%rdi,%rax,2)
movdqa %xmm1,%xmm2
paddd  %xmm8,%xmm2
movdqa %xmm3,%xmm7
paddd  %xmm8,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
packssdw %xmm2,%xmm7
movdqu %xmm7,0x10(%rdi,%rax,2)
movdqa %xmm1,%xmm2
paddd  %xmm9,%xmm2
movdqa %xmm3,%xmm7
paddd  %xmm9,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
packssdw %xmm2,%xmm7
movdqu %xmm7,0x20(%rdi,%rax,2)
paddd  %xmm10,%xmm1
paddd  %xmm10,%xmm3
pslld  $0x10,%xmm3
psrad  $0x10,%xmm3
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
packssdw %xmm1,%xmm3
movdqu %xmm3,0x30(%rdi,%rax,2)
add    $0x20,%rax
paddd  %xmm6,%xmm4
paddd  %xmm6,%xmm5
add    $0xfffffffffffffffc,%rsi
jne    1890 <FillFileFrame+0x790>
test   %r8,%r8
je     19be <FillFileFrame+0x8be>
lea    (%rdi,%rax,2),%rax
shl    $0x4,%r8
xor    %esi,%esi
movdqa 0x6f6(%rip),%xmm2
nopw   0x0(%rax,%rax,1)
movdqa %xmm5,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm4,%xmm3
paddd  %xmm0,%xmm3
pslld  $0x10,%xmm3
psrad  $0x10,%xmm3
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
packssdw %xmm1,%xmm3
movdqu %xmm3,(%rax,%rsi,1)
paddd  %xmm2,%xmm4
paddd  %xmm2,%xmm5
add    $0x10,%rsi
cmp    %rsi,%r8
jne    1980 <FillFileFrame+0x880>
cmp    %r9,%rcx
je     1c79 <FillFileFrame+0xb79>
mov    %edx,%eax
nopl   0x0(%rax)
lea    (%rax,%rcx,1),%edx
mov    %dx,(%rdi,%rcx,2)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    19d0 <FillFileFrame+0x8d0>
jmp    1c79 <FillFileFrame+0xb79>
movabs $0x3ffffffffffffffe,%rax
ff ff 3f
add    $0xfffffffffffffffe,%rax
and    %rax,%rsi
movdqa 0x6a2(%rip),%xmm5
movdqa 0x64a(%rip),%xmm4
xor    %eax,%eax
movdqa 0x65f(%rip),%xmm8
movdqa 0x676(%rip),%xmm9
movdqa 0x68d(%rip),%xmm10
movdqa 0x695(%rip),%xmm6
nopl   0x0(%rax,%rax,1)
movdqa %xmm5,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm4,%xmm3
paddd  %xmm0,%xmm3
movdqa %xmm3,%xmm2
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
movdqa %xmm1,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
packssdw %xmm7,%xmm2
movdqu %xmm2,(%rdi,%rax,2)
movdqa %xmm1,%xmm2
paddd  %xmm8,%xmm2
movdqa %xmm3,%xmm7
paddd  %xmm8,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
packssdw %xmm2,%xmm7
movdqu %xmm7,0x10(%rdi,%rax,2)
movdqa %xmm1,%xmm2
paddd  %xmm9,%xmm2
movdqa %xmm3,%xmm7
paddd  %xmm9,%xmm7
pslld  $0x10,%xmm7
psrad  $0x10,%xmm7
pslld  $0x10,%xmm2
psrad  $0x10,%xmm2
packssdw %xmm2,%xmm7
movdqu %xmm7,0x20(%rdi,%rax,2)
paddd  %xmm10,%xmm1
paddd  %xmm10,%xmm3
pslld  $0x10,%xmm3
psrad  $0x10,%xmm3
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
packssdw %xmm1,%xmm3
movdqu %xmm3,0x30(%rdi,%rax,2)
add    $0x20,%rax
paddd  %xmm6,%xmm4
paddd  %xmm6,%xmm5
add    $0xfffffffffffffffc,%rsi
jne    1a30 <FillFileFrame+0x930>
test   %r8,%r8
je     1b5e <FillFileFrame+0xa5e>
lea    (%rdi,%rax,2),%rax
shl    $0x4,%r8
xor    %esi,%esi
movdqa 0x556(%rip),%xmm2
nopw   0x0(%rax,%rax,1)
movdqa %xmm5,%xmm1
paddd  %xmm0,%xmm1
movdqa %xmm4,%xmm3
paddd  %xmm0,%xmm3
pslld  $0x10,%xmm3
psrad  $0x10,%xmm3
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
packssdw %xmm1,%xmm3
movdqu %xmm3,(%rax,%rsi,1)
paddd  %xmm2,%xmm4
paddd  %xmm2,%xmm5
add    $0x10,%rsi
cmp    %rsi,%r8
jne    1b20 <FillFileFrame+0xa20>
cmp    %r9,%rcx
je     1c79 <FillFileFrame+0xb79>
mov    %edx,%eax
nopl   0x0(%rax)
lea    (%rax,%rcx,1),%edx
mov    %dx,(%rdi,%rcx,2)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    1b70 <FillFileFrame+0xa70>
jmp    1c79 <FillFileFrame+0xb79>
movdqa 0x4c3(%rip),%xmm1
xor    %esi,%esi
test   $0x1,%r8b
je     1bb4 <FillFileFrame+0xab4>
paddd  %xmm1,%xmm0
lea    0x4(%rdx),%eax
movd   %eax,%xmm2
pshufd $0x0,%xmm2,%xmm2
paddd  %xmm1,%xmm2
movdqu %xmm0,(%rdi,%rsi,4)
movdqu %xmm2,0x10(%rdi,%rsi,4)
cmp    %r9,%rcx
je     1c79 <FillFileFrame+0xb79>
mov    %edx,%eax
nop
lea    (%rax,%rcx,1),%edx
mov    %edx,(%rdi,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%r9
jne    1bc0 <FillFileFrame+0xac0>
jmp    1c79 <FillFileFrame+0xb79>
movdqa 0x424(%rip),%xmm4
xor    %edx,%edx
test   $0x1,%r8b
je     1c07 <FillFileFrame+0xb07>
cvtdq2pd %xmm4,%xmm2
paddd  0x420(%rip),%xmm4
cvtdq2pd %xmm4,%xmm3
addpd  %xmm1,%xmm2
addpd  %xmm1,%xmm3
movupd %xmm2,(%rdi,%rdx,8)
movupd %xmm3,0x10(%rdi,%rdx,8)
cmp    %rax,%rcx
je     1c79 <FillFileFrame+0xb79>
nopl   0x0(%rax)
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
addsd  %xmm0,%xmm1
movsd  %xmm1,(%rdi,%rcx,8)
add    $0x1,%rcx
cmp    %rcx,%rax
jne    1c10 <FillFileFrame+0xb10>
jmp    1c79 <FillFileFrame+0xb79>
movdqa 0x41d(%rip),%xmm2
xor    %edx,%edx
test   $0x1,%r8b
je     1c58 <FillFileFrame+0xb58>
cvtdq2ps %xmm2,%xmm3
paddd  0x41a(%rip),%xmm2
cvtdq2ps %xmm2,%xmm2
addps  %xmm1,%xmm3
addps  %xmm1,%xmm2
movups %xmm3,(%rdi,%rdx,4)
movups %xmm2,0x10(%rdi,%rdx,4)
cmp    %rax,%rcx
je     1c79 <FillFileFrame+0xb79>
nopl   (%rax)
xorps  %xmm1,%xmm1
cvtsi2ss %ecx,%xmm1
addss  %xmm0,%xmm1
movss  %xmm1,(%rdi,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%rax
jne    1c60 <FillFileFrame+0xb60>
ret

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

LLVM IR (-O2):
define void @FillFileFrame(i8* nocapture writeonly %0, i8 signext %1, i32 %2, i32 %3) {
%5 = sext i8 %1 to i32
switch i32 %5, label %518 [
i32 99, label %335
i32 105, label %409
i32 83, label %409
i32 115, label %268
i32 85, label %205
i32 117, label %138
i32 102, label %72
i32 100, label %6
]
6: ; preds = %4
%7 = icmp sgt i32 %3, 0
br i1 %7, label %8, label %518
8: ; preds = %6
%9 = sitofp i32 %2 to double
%10 = bitcast i8* %0 to double*
%11 = zext i32 %3 to i64
%12 = icmp ult i32 %3, 4
br i1 %12, label %70, label %13
13: ; preds = %8
%14 = and i64 %11, 4294967292
%15 = insertelement <2 x double> poison, double %9, i64 0
%16 = shufflevector <2 x double> %15, <2 x double> poison, <2 x i32> zeroinitializer
%17 = insertelement <2 x double> poison, double %9, i64 0
%18 = shufflevector <2 x double> %17, <2 x double> poison, <2 x i32> zeroinitializer
%19 = add nsw i64 %14, -4
%20 = lshr exact i64 %19, 2
%21 = add nuw nsw i64 %20, 1
%22 = and i64 %21, 1
%23 = icmp eq i64 %19, 0
br i1 %23, label %54, label %24
24: ; preds = %13
%25 = and i64 %21, 9223372036854775806
br label %26
26: ; preds = %26, %24
%27 = phi i64 [ 0, %24 ], [ %50, %26 ]
%28 = phi <2 x i32> [ <i32 0, i32 1>, %24 ], [ %51, %26 ]
%29 = phi i64 [ 0, %24 ], [ %52, %26 ]
%30 = add <2 x i32> %28, <i32 2, i32 2>
%31 = sitofp <2 x i32> %28 to <2 x double>
%32 = sitofp <2 x i32> %30 to <2 x double>
%33 = fadd <2 x double> %16, %31
%34 = fadd <2 x double> %18, %32
%35 = getelementptr inbounds double, double* %10, i64 %27
%36 = bitcast double* %35 to <2 x double>*
store <2 x double> %33, <2 x double>* %36
%37 = getelementptr inbounds double, double* %35, i64 2
%38 = bitcast double* %37 to <2 x double>*
store <2 x double> %34, <2 x double>* %38
%39 = or i64 %27, 4
%40 = add <2 x i32> %28, <i32 4, i32 4>
%41 = add <2 x i32> %28, <i32 6, i32 6>
%42 = sitofp <2 x i32> %40 to <2 x double>
%43 = sitofp <2 x i32> %41 to <2 x double>
%44 = fadd <2 x double> %16, %42
%45 = fadd <2 x double> %18, %43
%46 = getelementptr inbounds double, double* %10, i64 %39
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> %44, <2 x double>* %47
%48 = getelementptr inbounds double, double* %46, i64 2
%49 = bitcast double* %48 to <2 x double>*
store <2 x double> %45, <2 x double>* %49
%50 = add nuw i64 %27, 8
%51 = add <2 x i32> %28, <i32 8, i32 8>
%52 = add i64 %29, 2
%53 = icmp eq i64 %52, %25
br i1 %53, label %54, label %26
54: ; preds = %26, %13
%55 = phi i64 [ 0, %13 ], [ %50, %26 ]
%56 = phi <2 x i32> [ <i32 0, i32 1>, %13 ], [ %51, %26 ]
%57 = icmp eq i64 %22, 0
br i1 %57, label %68, label %58
58: ; preds = %54
%59 = add <2 x i32> %56, <i32 2, i32 2>
%60 = sitofp <2 x i32> %56 to <2 x double>
%61 = sitofp <2 x i32> %59 to <2 x double>
%62 = fadd <2 x double> %16, %60
%63 = fadd <2 x double> %18, %61
%64 = getelementptr inbounds double, double* %10, i64 %55
%65 = bitcast double* %64 to <2 x double>*
store <2 x double> %62, <2 x double>* %65
%66 = getelementptr inbounds double, double* %64, i64 2
%67 = bitcast double* %66 to <2 x double>*
store <2 x double> %63, <2 x double>* %67
br label %68
68: ; preds = %54, %58
%69 = icmp eq i64 %14, %11
br i1 %69, label %518, label %70
70: ; preds = %8, %68
%71 = phi i64 [ 0, %8 ], [ %14, %68 ]
br label %510
72: ; preds = %4
%73 = icmp sgt i32 %3, 0
br i1 %73, label %74, label %518
74: ; preds = %72
%75 = sitofp i32 %2 to float
%76 = bitcast i8* %0 to float*
%77 = zext i32 %3 to i64
%78 = icmp ult i32 %3, 8
br i1 %78, label %136, label %79
79: ; preds = %74
%80 = and i64 %77, 4294967288
%81 = insertelement <4 x float> poison, float %75, i64 0
%82 = shufflevector <4 x float> %81, <4 x float> poison, <4 x i32> zeroinitializer
%83 = insertelement <4 x float> poison, float %75, i64 0
%84 = shufflevector <4 x float> %83, <4 x float> poison, <4 x i32> zeroinitializer
%85 = add nsw i64 %80, -8
%86 = lshr exact i64 %85, 3
%87 = add nuw nsw i64 %86, 1
%88 = and i64 %87, 1
%89 = icmp eq i64 %85, 0
br i1 %89, label %120, label %90
90: ; preds = %79
%91 = and i64 %87, 4611686018427387902
br label %92
92: ; preds = %92, %90
%93 = phi i64 [ 0, %90 ], [ %116, %92 ]
%94 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %90 ], [ %117, %92 ]
%95 = phi i64 [ 0, %90 ], [ %118, %92 ]
%96 = add <4 x i32> %94, <i32 4, i32 4, i32 4, i32 4>
%97 = sitofp <4 x i32> %94 to <4 x float>
%98 = sitofp <4 x i32> %96 to <4 x float>
%99 = fadd <4 x float> %82, %97
%100 = fadd <4 x float> %84, %98
%101 = getelementptr inbounds float, float* %76, i64 %93
%102 = bitcast float* %101 to <4 x float>*
store <4 x float> %99, <4 x float>* %102
%103 = getelementptr inbounds float, float* %101, i64 4
%104 = bitcast float* %103 to <4 x float>*
store <4 x float> %100, <4 x float>* %104
%105 = or i64 %93, 8
%106 = add <4 x i32> %94, <i32 8, i32 8, i32 8, i32 8>
%107 = add <4 x i32> %94, <i32 12, i32 12, i32 12, i32 12>
%108 = sitofp <4 x i32> %106 to <4 x float>
%109 = sitofp <4 x i32> %107 to <4 x float>
%110 = fadd <4 x float> %82, %108
%111 = fadd <4 x float> %84, %109
%112 = getelementptr inbounds float, float* %76, i64 %105
%113 = bitcast float* %112 to <4 x float>*
store <4 x float> %110, <4 x float>* %113
%114 = getelementptr inbounds float, float* %112, i64 4
%115 = bitcast float* %114 to <4 x float>*
store <4 x float> %111, <4 x float>* %115
%116 = add nuw i64 %93, 16
%117 = add <4 x i32> %94, <i32 16, i32 16, i32 16, i32 16>
%118 = add i64 %95, 2
%119 = icmp eq i64 %118, %91
br i1 %119, label %120, label %92
120: ; preds = %92, %79
%121 = phi i64 [ 0, %79 ], [ %116, %92 ]
%122 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %79 ], [ %117, %92 ]
%123 = icmp eq i64 %88, 0
br i1 %123, label %134, label %124
124: ; preds = %120
%125 = add <4 x i32> %122, <i32 4, i32 4, i32 4, i32 4>
%126 = sitofp <4 x i32> %122 to <4 x float>
%127 = sitofp <4 x i32> %125 to <4 x float>
%128 = fadd <4 x float> %82, %126
%129 = fadd <4 x float> %84, %127
%130 = getelementptr inbounds float, float* %76, i64 %121
%131 = bitcast float* %130 to <4 x float>*
store <4 x float> %128, <4 x float>* %131
%132 = getelementptr inbounds float, float* %130, i64 4
%133 = bitcast float* %132 to <4 x float>*
store <4 x float> %129, <4 x float>* %133
br label %134
134: ; preds = %120, %124
%135 = icmp eq i64 %80, %77
br i1 %135, label %518, label %136
136: ; preds = %74, %134
%137 = phi i64 [ 0, %74 ], [ %80, %134 ]
br label %502
138: ; preds = %4
%139 = icmp sgt i32 %3, 0
br i1 %139, label %140, label %518
140: ; preds = %138
%141 = bitcast i8* %0 to i16*
%142 = zext i32 %3 to i64
%143 = icmp ult i32 %3, 8
br i1 %143, label %203, label %144
144: ; preds = %140
%145 = and i64 %142, 4294967288
%146 = insertelement <8 x i32> poison, i32 %2, i64 0
%147 = shufflevector <8 x i32> %146, <8 x i32> poison, <8 x i32> zeroinitializer
%148 = add nsw i64 %145, -8
%149 = lshr exact i64 %148, 3
%150 = add nuw nsw i64 %149, 1
%151 = and i64 %150, 3
%152 = icmp ult i64 %148, 24
br i1 %152, label %185, label %153
153: ; preds = %144
%154 = and i64 %150, 4611686018427387900
br label %155
155: ; preds = %155, %153
%156 = phi i64 [ 0, %153 ], [ %181, %155 ]
%157 = phi <8 x i32> [ <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>, %153 ], [ %182, %155 ]
%158 = phi i64 [ 0, %153 ], [ %183, %155 ]
%159 = add <8 x i32> %157, %147
%160 = trunc <8 x i32> %159 to <8 x i16>
%161 = getelementptr inbounds i16, i16* %141, i64 %156
%162 = bitcast i16* %161 to <8 x i16>*
store <8 x i16> %160, <8 x i16>* %162
%163 = or i64 %156, 8
%164 = add <8 x i32> %157, <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8>
%165 = add <8 x i32> %164, %147
%166 = trunc <8 x i32> %165 to <8 x i16>
%167 = getelementptr inbounds i16, i16* %141, i64 %163
%168 = bitcast i16* %167 to <8 x i16>*
store <8 x i16> %166, <8 x i16>* %168
%169 = or i64 %156, 16
%170 = add <8 x i32> %157, <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
%171 = add <8 x i32> %170, %147
%172 = trunc <8 x i32> %171 to <8 x i16>
%173 = getelementptr inbounds i16, i16* %141, i64 %169
%174 = bitcast i16* %173 to <8 x i16>*
store <8 x i16> %172, <8 x i16>* %174
%175 = or i64 %156, 24
%176 = add <8 x i32> %157, <i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24>
%177 = add <8 x i32> %176, %147
%178 = trunc <8 x i32> %177 to <8 x i16>
%179 = getelementptr inbounds i16, i16* %141, i64 %175
%180 = bitcast i16* %179 to <8 x i16>*
store <8 x i16> %178, <8 x i16>* %180
%181 = add nuw i64 %156, 32
%182 = add <8 x i32> %157, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
%183 = add i64 %158, 4
%184 = icmp eq i64 %183, %154
br i1 %184, label %185, label %155
185: ; preds = %155, %144
%186 = phi i64 [ 0, %144 ], [ %181, %155 ]
%187 = phi <8 x i32> [ <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>, %144 ], [ %182, %155 ]
%188 = icmp eq i64 %151, 0
br i1 %188, label %201, label %189
189: ; preds = %185, %189
%190 = phi i64 [ %197, %189 ], [ %186, %185 ]
%191 = phi <8 x i32> [ %198, %189 ], [ %187, %185 ]
%192 = phi i64 [ %199, %189 ], [ 0, %185 ]
%193 = add <8 x i32> %191, %147
%194 = trunc <8 x i32> %193 to <8 x i16>
%195 = getelementptr inbounds i16, i16* %141, i64 %190
%196 = bitcast i16* %195 to <8 x i16>*
store <8 x i16> %194, <8 x i16>* %196
%197 = add nuw i64 %190, 8
%198 = add <8 x i32> %191, <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8>
%199 = add i64 %192, 1
%200 = icmp eq i64 %199, %151
br i1 %200, label %201, label %189
201: ; preds = %189, %185
%202 = icmp eq i64 %145, %142
br i1 %202, label %518, label %203
203: ; preds = %140, %201
%204 = phi i64 [ 0, %140 ], [ %145, %201 ]
br label %494
205: ; preds = %4
%206 = icmp sgt i32 %3, 0
br i1 %206, label %207, label %518
207: ; preds = %205
%208 = bitcast i8* %0 to i32*
%209 = zext i32 %3 to i64
%210 = icmp ult i32 %3, 8
br i1 %210, label %266, label %211
211: ; preds = %207
%212 = and i64 %209, 4294967288
%213 = insertelement <4 x i32> poison, i32 %2, i64 0
%214 = shufflevector <4 x i32> %213, <4 x i32> poison, <4 x i32> zeroinitializer
%215 = add nsw i64 %212, -8
%216 = lshr exact i64 %215, 3
%217 = add nuw nsw i64 %216, 1
%218 = and i64 %217, 1
%219 = icmp eq i64 %215, 0
br i1 %219, label %250, label %220
220: ; preds = %211
%221 = and i64 %217, 4611686018427387902
%222 = add i32 %2, 4
%223 = insertelement <4 x i32> poison, i32 %222, i64 0
%224 = shufflevector <4 x i32> %223, <4 x i32> poison, <4 x i32> zeroinitializer
%225 = add i32 %2, 4
%226 = insertelement <4 x i32> poison, i32 %225, i64 0
%227 = shufflevector <4 x i32> %226, <4 x i32> poison, <4 x i32> zeroinitializer
br label %228
228: ; preds = %228, %220
%229 = phi i64 [ 0, %220 ], [ %246, %228 ]
%230 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %220 ], [ %247, %228 ]
%231 = phi i64 [ 0, %220 ], [ %248, %228 ]
%232 = add <4 x i32> %230, %214
%233 = add <4 x i32> %224, %230
%234 = getelementptr inbounds i32, i32* %208, i64 %229
%235 = bitcast i32* %234 to <4 x i32>*
store <4 x i32> %232, <4 x i32>* %235
%236 = getelementptr inbounds i32, i32* %234, i64 4
%237 = bitcast i32* %236 to <4 x i32>*
store <4 x i32> %233, <4 x i32>* %237
%238 = or i64 %229, 8
%239 = add <4 x i32> %230, <i32 8, i32 8, i32 8, i32 8>
%240 = add <4 x i32> %239, %214
%241 = add <4 x i32> %227, %239
%242 = getelementptr inbounds i32, i32* %208, i64 %238
%243 = bitcast i32* %242 to <4 x i32>*
store <4 x i32> %240, <4 x i32>* %243
%244 = getelementptr inbounds i32, i32* %242, i64 4
%245 = bitcast i32* %244 to <4 x i32>*
store <4 x i32> %241, <4 x i32>* %245
%246 = add nuw i64 %229, 16
%247 = add <4 x i32> %230, <i32 16, i32 16, i32 16, i32 16>
%248 = add i64 %231, 2
%249 = icmp eq i64 %248, %221
br i1 %249, label %250, label %228
250: ; preds = %228, %211
%251 = phi i64 [ 0, %211 ], [ %246, %228 ]
%252 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %211 ], [ %247, %228 ]
%253 = icmp eq i64 %218, 0
br i1 %253, label %264, label %254
254: ; preds = %250
%255 = add <4 x i32> %252, %214
%256 = add i32 %2, 4
%257 = insertelement <4 x i32> poison, i32 %256, i64 0
%258 = shufflevector <4 x i32> %257, <4 x i32> poison, <4 x i32> zeroinitializer
%259 = add <4 x i32> %258, %252
%260 = getelementptr inbounds i32, i32* %208, i64 %251
%261 = bitcast i32* %260 to <4 x i32>*
store <4 x i32> %255, <4 x i32>* %261
%262 = getelementptr inbounds i32, i32* %260, i64 4
%263 = bitcast i32* %262 to <4 x i32>*
store <4 x i32> %259, <4 x i32>* %263
br label %264
264: ; preds = %250, %254
%265 = icmp eq i64 %212, %209
br i1 %265, label %518, label %266
266: ; preds = %207, %264
%267 = phi i64 [ 0, %207 ], [ %212, %264 ]
br label %487
268: ; preds = %4
%269 = icmp sgt i32 %3, 0
br i1 %269, label %270, label %518
270: ; preds = %268
%271 = bitcast i8* %0 to i16*
%272 = zext i32 %3 to i64
%273 = icmp ult i32 %3, 8
br i1 %273, label %333, label %274
274: ; preds = %270
%275 = and i64 %272, 4294967288
%276 = insertelement <8 x i32> poison, i32 %2, i64 0
%277 = shufflevector <8 x i32> %276, <8 x i32> poison, <8 x i32> zeroinitializer
%278 = add nsw i64 %275, -8
%279 = lshr exact i64 %278, 3
%280 = add nuw nsw i64 %279, 1
%281 = and i64 %280, 3
%282 = icmp ult i64 %278, 24
br i1 %282, label %315, label %283
283: ; preds = %274
%284 = and i64 %280, 4611686018427387900
br label %285
285: ; preds = %285, %283
%286 = phi i64 [ 0, %283 ], [ %311, %285 ]
%287 = phi <8 x i32> [ <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>, %283 ], [ %312, %285 ]
%288 = phi i64 [ 0, %283 ], [ %313, %285 ]
%289 = add <8 x i32> %287, %277
%290 = trunc <8 x i32> %289 to <8 x i16>
%291 = getelementptr inbounds i16, i16* %271, i64 %286
%292 = bitcast i16* %291 to <8 x i16>*
store <8 x i16> %290, <8 x i16>* %292
%293 = or i64 %286, 8
%294 = add <8 x i32> %287, <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8>
%295 = add <8 x i32> %294, %277
%296 = trunc <8 x i32> %295 to <8 x i16>
%297 = getelementptr inbounds i16, i16* %271, i64 %293
%298 = bitcast i16* %297 to <8 x i16>*
store <8 x i16> %296, <8 x i16>* %298
%299 = or i64 %286, 16
%300 = add <8 x i32> %287, <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
%301 = add <8 x i32> %300, %277
%302 = trunc <8 x i32> %301 to <8 x i16>
%303 = getelementptr inbounds i16, i16* %271, i64 %299
%304 = bitcast i16* %303 to <8 x i16>*
store <8 x i16> %302, <8 x i16>* %304
%305 = or i64 %286, 24
%306 = add <8 x i32> %287, <i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24, i32 24>
%307 = add <8 x i32> %306, %277
%308 = trunc <8 x i32> %307 to <8 x i16>
%309 = getelementptr inbounds i16, i16* %271, i64 %305
%310 = bitcast i16* %309 to <8 x i16>*
store <8 x i16> %308, <8 x i16>* %310
%311 = add nuw i64 %286, 32
%312 = add <8 x i32> %287, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
%313 = add i64 %288, 4
%314 = icmp eq i64 %313, %284
br i1 %314, label %315, label %285
315: ; preds = %285, %274
%316 = phi i64 [ 0, %274 ], [ %311, %285 ]
%317 = phi <8 x i32> [ <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>, %274 ], [ %312, %285 ]
%318 = icmp eq i64 %281, 0
br i1 %318, label %331, label %319
319: ; preds = %315, %319
%320 = phi i64 [ %327, %319 ], [ %316, %315 ]
%321 = phi <8 x i32> [ %328, %319 ], [ %317, %315 ]
%322 = phi i64 [ %329, %319 ], [ 0, %315 ]
%323 = add <8 x i32> %321, %277
%324 = trunc <8 x i32> %323 to <8 x i16>
%325 = getelementptr inbounds i16, i16* %271, i64 %320
%326 = bitcast i16* %325 to <8 x i16>*
store <8 x i16> %324, <8 x i16>* %326
%327 = add nuw i64 %320, 8
%328 = add <8 x i32> %321, <i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8, i32 8>
%329 = add i64 %322, 1
%330 = icmp eq i64 %329, %281
br i1 %330, label %331, label %319
331: ; preds = %319, %315
%332 = icmp eq i64 %275, %272
br i1 %332, label %518, label %333
333: ; preds = %270, %331
%334 = phi i64 [ 0, %270 ], [ %275, %331 ]
br label %479
335: ; preds = %4
%336 = icmp sgt i32 %3, 0
br i1 %336, label %337, label %518
337: ; preds = %335
%338 = zext i32 %3 to i64
%339 = icmp ult i32 %3, 16
br i1 %339, label %399, label %340
340: ; preds = %337
%341 = and i64 %338, 4294967280
%342 = insertelement <16 x i32> poison, i32 %2, i64 0
%343 = shufflevector <16 x i32> %342, <16 x i32> poison, <16 x i32> zeroinitializer
%344 = add nsw i64 %341, -16
%345 = lshr exact i64 %344, 4
%346 = add nuw nsw i64 %345, 1
%347 = and i64 %346, 3
%348 = icmp ult i64 %344, 48
br i1 %348, label %381, label %349
349: ; preds = %340
%350 = and i64 %346, 2305843009213693948
br label %351
351: ; preds = %351, %349
%352 = phi i64 [ 0, %349 ], [ %377, %351 ]
%353 = phi <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>, %349 ], [ %378, %351 ]
%354 = phi i64 [ 0, %349 ], [ %379, %351 ]
%355 = add <16 x i32> %353, %343
%356 = trunc <16 x i32> %355 to <16 x i8>
%357 = getelementptr inbounds i8, i8* %0, i64 %352
%358 = bitcast i8* %357 to <16 x i8>*
store <16 x i8> %356, <16 x i8>* %358
%359 = or i64 %352, 16
%360 = add <16 x i32> %353, <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
%361 = add <16 x i32> %360, %343
%362 = trunc <16 x i32> %361 to <16 x i8>
%363 = getelementptr inbounds i8, i8* %0, i64 %359
%364 = bitcast i8* %363 to <16 x i8>*
store <16 x i8> %362, <16 x i8>* %364
%365 = or i64 %352, 32
%366 = add <16 x i32> %353, <i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32>
%367 = add <16 x i32> %366, %343
%368 = trunc <16 x i32> %367 to <16 x i8>
%369 = getelementptr inbounds i8, i8* %0, i64 %365
%370 = bitcast i8* %369 to <16 x i8>*
store <16 x i8> %368, <16 x i8>* %370
%371 = or i64 %352, 48
%372 = add <16 x i32> %353, <i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48, i32 48>
%373 = add <16 x i32> %372, %343
%374 = trunc <16 x i32> %373 to <16 x i8>
%375 = getelementptr inbounds i8, i8* %0, i64 %371
%376 = bitcast i8* %375 to <16 x i8>*
store <16 x i8> %374, <16 x i8>* %376
%377 = add nuw i64 %352, 64
%378 = add <16 x i32> %353, <i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64>
%379 = add i64 %354, 4
%380 = icmp eq i64 %379, %350
br i1 %380, label %381, label %351
381: ; preds = %351, %340
%382 = phi i64 [ 0, %340 ], [ %377, %351 ]
%383 = phi <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>, %340 ], [ %378, %351 ]
%384 = icmp eq i64 %347, 0
br i1 %384, label %397, label %385
385: ; preds = %381, %385
%386 = phi i64 [ %393, %385 ], [ %382, %381 ]
%387 = phi <16 x i32> [ %394, %385 ], [ %383, %381 ]
%388 = phi i64 [ %395, %385 ], [ 0, %381 ]
%389 = add <16 x i32> %387, %343
%390 = trunc <16 x i32> %389 to <16 x i8>
%391 = getelementptr inbounds i8, i8* %0, i64 %386
%392 = bitcast i8* %391 to <16 x i8>*
store <16 x i8> %390, <16 x i8>* %392
%393 = add nuw i64 %386, 16
%394 = add <16 x i32> %387, <i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16>
%395 = add i64 %388, 1
%396 = icmp eq i64 %395, %347
br i1 %396, label %397, label %385
397: ; preds = %385, %381
%398 = icmp eq i64 %341, %338
br i1 %398, label %518, label %399
399: ; preds = %337, %397
%400 = phi i64 [ 0, %337 ], [ %341, %397 ]
br label %401
401: ; preds = %399, %401
%402 = phi i64 [ %407, %401 ], [ %400, %399 ]
%403 = trunc i64 %402 to i32
%404 = add i32 %403, %2
%405 = trunc i32 %404 to i8
%406 = getelementptr inbounds i8, i8* %0, i64 %402
store i8 %405, i8* %406
%407 = add nuw nsw i64 %402, 1
%408 = icmp eq i64 %407, %338
br i1 %408, label %518, label %401
409: ; preds = %4, %4
%410 = icmp sgt i32 %3, 0
br i1 %410, label %411, label %518
411: ; preds = %409
%412 = bitcast i8* %0 to i32*
%413 = zext i32 %3 to i64
%414 = icmp ult i32 %3, 8
br i1 %414, label %470, label %415
415: ; preds = %411
%416 = and i64 %413, 4294967288
%417 = insertelement <4 x i32> poison, i32 %2, i64 0
%418 = shufflevector <4 x i32> %417, <4 x i32> poison, <4 x i32> zeroinitializer
%419 = add nsw i64 %416, -8
%420 = lshr exact i64 %419, 3
%421 = add nuw nsw i64 %420, 1
%422 = and i64 %421, 1
%423 = icmp eq i64 %419, 0
br i1 %423, label %454, label %424
424: ; preds = %415
%425 = and i64 %421, 4611686018427387902
%426 = add i32 %2, 4
%427 = insertelement <4 x i32> poison, i32 %426, i64 0
%428 = shufflevector <4 x i32> %427, <4 x i32> poison, <4 x i32> zeroinitializer
%429 = add i32 %2, 4
%430 = insertelement <4 x i32> poison, i32 %429, i64 0
%431 = shufflevector <4 x i32> %430, <4 x i32> poison, <4 x i32> zeroinitializer
br label %432
432: ; preds = %432, %424
%433 = phi i64 [ 0, %424 ], [ %450, %432 ]
%434 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %424 ], [ %451, %432 ]
%435 = phi i64 [ 0, %424 ], [ %452, %432 ]
%436 = add nsw <4 x i32> %434, %418
%437 = add <4 x i32> %428, %434
%438 = getelementptr inbounds i32, i32* %412, i64 %433
%439 = bitcast i32* %438 to <4 x i32>*
store <4 x i32> %436, <4 x i32>* %439
%440 = getelementptr inbounds i32, i32* %438, i64 4
%441 = bitcast i32* %440 to <4 x i32>*
store <4 x i32> %437, <4 x i32>* %441
%442 = or i64 %433, 8
%443 = add <4 x i32> %434, <i32 8, i32 8, i32 8, i32 8>
%444 = add nsw <4 x i32> %443, %418
%445 = add <4 x i32> %431, %443
%446 = getelementptr inbounds i32, i32* %412, i64 %442
%447 = bitcast i32* %446 to <4 x i32>*
store <4 x i32> %444, <4 x i32>* %447
%448 = getelementptr inbounds i32, i32* %446, i64 4
%449 = bitcast i32* %448 to <4 x i32>*
store <4 x i32> %445, <4 x i32>* %449
%450 = add nuw i64 %433, 16
%451 = add <4 x i32> %434, <i32 16, i32 16, i32 16, i32 16>
%452 = add i64 %435, 2
%453 = icmp eq i64 %452, %425
br i1 %453, label %454, label %432
454: ; preds = %432, %415
%455 = phi i64 [ 0, %415 ], [ %450, %432 ]
%456 = phi <4 x i32> [ <i32 0, i32 1, i32 2, i32 3>, %415 ], [ %451, %432 ]
%457 = icmp eq i64 %422, 0
br i1 %457, label %468, label %458
458: ; preds = %454
%459 = add nsw <4 x i32> %456, %418
%460 = add i32 %2, 4
%461 = insertelement <4 x i32> poison, i32 %460, i64 0
%462 = shufflevector <4 x i32> %461, <4 x i32> poison, <4 x i32> zeroinitializer
%463 = add <4 x i32> %462, %456
%464 = getelementptr inbounds i32, i32* %412, i64 %455
%465 = bitcast i32* %464 to <4 x i32>*
store <4 x i32> %459, <4 x i32>* %465
%466 = getelementptr inbounds i32, i32* %464, i64 4
%467 = bitcast i32* %466 to <4 x i32>*
store <4 x i32> %463, <4 x i32>* %467
br label %468
468: ; preds = %454, %458
%469 = icmp eq i64 %416, %413
br i1 %469, label %518, label %470
470: ; preds = %411, %468
%471 = phi i64 [ 0, %411 ], [ %416, %468 ]
br label %472
472: ; preds = %470, %472
%473 = phi i64 [ %477, %472 ], [ %471, %470 ]
%474 = trunc i64 %473 to i32
%475 = add nsw i32 %474, %2
%476 = getelementptr inbounds i32, i32* %412, i64 %473
store i32 %475, i32* %476
%477 = add nuw nsw i64 %473, 1
%478 = icmp eq i64 %477, %413
br i1 %478, label %518, label %472
479: ; preds = %333, %479
%480 = phi i64 [ %485, %479 ], [ %334, %333 ]
%481 = trunc i64 %480 to i32
%482 = add i32 %481, %2
%483 = trunc i32 %482 to i16
%484 = getelementptr inbounds i16, i16* %271, i64 %480
store i16 %483, i16* %484
%485 = add nuw nsw i64 %480, 1
%486 = icmp eq i64 %485, %272
br i1 %486, label %518, label %479
487: ; preds = %266, %487
%488 = phi i64 [ %492, %487 ], [ %267, %266 ]
%489 = trunc i64 %488 to i32
%490 = add i32 %489, %2
%491 = getelementptr inbounds i32, i32* %208, i64 %488
store i32 %490, i32* %491
%492 = add nuw nsw i64 %488, 1
%493 = icmp eq i64 %492, %209
br i1 %493, label %518, label %487
494: ; preds = %203, %494
%495 = phi i64 [ %500, %494 ], [ %204, %203 ]
%496 = trunc i64 %495 to i32
%497 = add i32 %496, %2
%498 = trunc i32 %497 to i16
%499 = getelementptr inbounds i16, i16* %141, i64 %495
store i16 %498, i16* %499
%500 = add nuw nsw i64 %495, 1
%501 = icmp eq i64 %500, %142
br i1 %501, label %518, label %494
502: ; preds = %136, %502
%503 = phi i64 [ %508, %502 ], [ %137, %136 ]
%504 = trunc i64 %503 to i32
%505 = sitofp i32 %504 to float
%506 = fadd float %75, %505
%507 = getelementptr inbounds float, float* %76, i64 %503
store float %506, float* %507
%508 = add nuw nsw i64 %503, 1
%509 = icmp eq i64 %508, %77
br i1 %509, label %518, label %502
510: ; preds = %70, %510
%511 = phi i64 [ %516, %510 ], [ %71, %70 ]
%512 = trunc i64 %511 to i32
%513 = sitofp i32 %512 to double
%514 = fadd double %9, %513
%515 = getelementptr inbounds double, double* %10, i64 %511
store double %514, double* %515
%516 = add nuw nsw i64 %511, 1
%517 = icmp eq i64 %516, %11
br i1 %517, label %518, label %510
518: ; preds = %510, %502, %494, %487, %479, %472, %401, %68, %134, %201, %264, %331, %468, %397, %6, %72, %138, %205, %268, %409, %335, %4
ret void
}