void rebuffer_audio(const short *insamp, float buffer[2][2048], int *buffer_idx,
                    unsigned int samples_read, int stereo) {
  int idx, med, fin;
  *buffer_idx = (*buffer_idx + 1152) & 2047;
  idx = (*buffer_idx + 768) & 2047;
  fin = (idx + 1152) & 2047;
  if (stereo == 2) {
    med = (idx + samples_read / 2) & 2047;
    if (idx >= med) {
      while (idx < 2048) {
        buffer[0][idx] = *insamp++;
        buffer[1][idx] = *insamp++;
        idx++;
      }
      idx = 0;
    }
    while (idx < med) {
      buffer[0][idx] = *insamp++;
      buffer[1][idx] = *insamp++;
      idx++;
    }
  } else {
    med = (idx + samples_read) & 2047;
    if (idx >= med) {
      while (idx < 2048) {
        buffer[0][idx] = *insamp++;
        buffer[1][idx] = 0;
        idx++;
      }
      idx = 0;
    }
    while (idx < med) {
      buffer[0][idx] = *insamp++;
      buffer[1][idx] = 0;
      idx++;
    }
  }
  if (idx != fin) {
    if (idx > fin) {
      while (idx < 2048) {
        buffer[0][idx] = 0;
        buffer[1][idx] = 0;
        idx++;
      }
      idx = 0;
    }
    while (idx < fin) {
      buffer[0][idx] = 0;
      buffer[1][idx] = 0;
      idx++;
    }
  }
}


x86 assembly (clang, -O0):
<rebuffer_audio>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8d,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    (%rax),%ecx
add    $0x480,%ecx
and    $0x7ff,%ecx
mov    -0x18(%rbp),%rax
mov    %ecx,(%rax)
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
add    $0x300,%eax
and    $0x7ff,%eax
mov    %eax,-0x24(%rbp)
mov    -0x24(%rbp),%eax
add    $0x480,%eax
and    $0x7ff,%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x2,-0x20(%rbp)
jne    125a <rebuffer_audio+0x15a>
mov    -0x24(%rbp),%eax
mov    -0x1c(%rbp),%ecx
shr    $0x1,%ecx
add    %ecx,%eax
and    $0x7ff,%eax
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x28(%rbp),%eax
jl     11ec <rebuffer_audio+0xec>
jmp    1180 <rebuffer_audio+0x80>
cmpl   $0x800,-0x24(%rbp)
jge    11e5 <rebuffer_audio+0xe5>
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1180 <rebuffer_audio+0x80>
movl   $0x0,-0x24(%rbp)
jmp    11f1 <rebuffer_audio+0xf1>
mov    -0x24(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    1255 <rebuffer_audio+0x155>
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    11f1 <rebuffer_audio+0xf1>
jmp    132d <rebuffer_audio+0x22d>
mov    -0x24(%rbp),%eax
add    -0x1c(%rbp),%eax
and    $0x7ff,%eax
mov    %eax,-0x28(%rbp)
mov    -0x24(%rbp),%eax
cmp    -0x28(%rbp),%eax
jl     12d2 <rebuffer_audio+0x1d2>
jmp    1279 <rebuffer_audio+0x179>
cmpl   $0x800,-0x24(%rbp)
jge    12cb <rebuffer_audio+0x1cb>
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1279 <rebuffer_audio+0x179>
movl   $0x0,-0x24(%rbp)
jmp    12d7 <rebuffer_audio+0x1d7>
mov    -0x24(%rbp),%eax
cmp    -0x28(%rbp),%eax
jge    1328 <rebuffer_audio+0x228>
mov    -0x8(%rbp),%rax
mov    %rax,%rcx
add    $0x2,%rcx
mov    %rcx,-0x8(%rbp)
movswl (%rax),%eax
cvtsi2ss %eax,%xmm0
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    12d7 <rebuffer_audio+0x1d7>
jmp    132d <rebuffer_audio+0x22d>
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
je     13d8 <rebuffer_audio+0x2d8>
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jle    1390 <rebuffer_audio+0x290>
jmp    134a <rebuffer_audio+0x24a>
cmpl   $0x800,-0x24(%rbp)
jge    1389 <rebuffer_audio+0x289>
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    134a <rebuffer_audio+0x24a>
movl   $0x0,-0x24(%rbp)
jmp    1395 <rebuffer_audio+0x295>
mov    -0x24(%rbp),%eax
cmp    -0x2c(%rbp),%eax
jge    13d3 <rebuffer_audio+0x2d3>
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,(%rax,%rcx,4)
mov    -0x10(%rbp),%rax
movslq -0x24(%rbp),%rcx
xorps  %xmm0,%xmm0
movss  %xmm0,0x2000(%rax,%rcx,4)
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1395 <rebuffer_audio+0x295>
jmp    13d8 <rebuffer_audio+0x2d8>
pop    %rbp
ret

x86 assembly (clang, -O2):
<rebuffer_audio>:
push   %r15
push   %r14
push   %rbx
mov    (%rdx),%r11d
lea    0x480(%r11),%eax
and    $0x7ff,%eax
mov    %eax,(%rdx)
lea    0x780(%r11),%edx
mov    %edx,%eax
and    $0x7ff,%eax
add    $0x400,%r11d
and    $0x7ff,%r11d
cmp    $0x2,%r8d
jne    13f3 <rebuffer_audio+0x2f3>
shr    %ecx
add    %edx,%ecx
and    $0x7ff,%ecx
cmp    %ecx,%eax
jb     1296 <rebuffer_audio+0x196>
and    $0x7ff,%edx
cmp    $0x7fc,%edx
ja     1260 <rebuffer_audio+0x160>
mov    $0x800,%r8d
sub    %rdx,%r8
mov    %r8d,%r9d
and    $0xfffffffc,%r9d
lea    -0x4(%r9),%rax
mov    %rax,%r10
shr    $0x2,%r10
add    $0x1,%r10
test   %rax,%rax
je     1911 <rebuffer_audio+0x811>
movabs $0x7ffffffffffffffc,%rbx
ff ff 7f
or     $0x2,%rbx
and    %r10,%rbx
lea    (%rsi,%rdx,4),%r14
add    $0x2010,%r14
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
movdqu (%rdi,%rax,4),%xmm0
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2010(%r14,%rax,4)
ff ff
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,-0x10(%r14,%rax,4)
movdqu 0x10(%rdi,%rax,4),%xmm0
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%r14,%rax,4)
ff ff
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,(%r14,%rax,4)
add    $0x8,%rax
add    $0xfffffffffffffffe,%rbx
jne    11b0 <rebuffer_audio+0xb0>
test   $0x1,%r10b
je     1247 <rebuffer_audio+0x147>
movdqu (%rdi,%rax,4),%xmm0
add    %rdx,%rax
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,(%rsi,%rax,4)
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,0x2000(%rsi,%rax,4)
lea    (%rdi,%r9,4),%rdi
xor    %eax,%eax
cmp    %r9,%r8
je     1296 <rebuffer_audio+0x196>
add    %r9,%rdx
cs nopw 0x0(%rax,%rax,1)
nop
movswl (%rdi),%eax
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,(%rsi,%rdx,4)
movswl 0x2(%rdi),%eax
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
add    $0x4,%rdi
movss  %xmm0,0x2000(%rsi,%rdx,4)
add    $0x1,%rdx
cmp    $0x800,%rdx
jne    1260 <rebuffer_audio+0x160>
xor    %eax,%eax
cmp    %ecx,%eax
jae    1706 <rebuffer_audio+0x606>
mov    %eax,%r8d
mov    %ecx,%r15d
mov    %r15,%r10
sub    %r8,%r10
cmp    $0x4,%r10
jb     13a3 <rebuffer_audio+0x2a3>
mov    %r10,%r9
and    $0xfffffffffffffffc,%r9
lea    -0x4(%r9),%rax
mov    %rax,%r14
shr    $0x2,%r14
add    $0x1,%r14
test   %rax,%rax
je     1922 <rebuffer_audio+0x822>
movabs $0x7ffffffffffffffc,%rbx
ff ff 7f
or     $0x2,%rbx
and    %r14,%rbx
lea    (%rsi,%r8,4),%rdx
add    $0x2010,%rdx
xor    %eax,%eax
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movdqu (%rdi,%rax,4),%xmm0
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2010(%rdx,%rax,4)
ff
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,-0x10(%rdx,%rax,4)
movdqu 0x10(%rdi,%rax,4),%xmm0
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%rdx,%rax,4)
ff
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,(%rdx,%rax,4)
add    $0x8,%rax
add    $0xfffffffffffffffe,%rbx
jne    1300 <rebuffer_audio+0x200>
test   $0x1,%r14b
je     1393 <rebuffer_audio+0x293>
movdqu (%rdi,%rax,4),%xmm0
add    %r8,%rax
movdqa %xmm0,%xmm1
pslld  $0x10,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,(%rsi,%rax,4)
psrad  $0x10,%xmm0
cvtdq2ps %xmm0,%xmm0
movups %xmm0,0x2000(%rsi,%rax,4)
cmp    %r9,%r10
je     1704 <rebuffer_audio+0x604>
add    %r9,%r8
lea    (%rdi,%r9,4),%rdi
lea    (%rsi,%r8,4),%rax
add    $0x2000,%rax
sub    %r8,%r15
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movswl (%rdi,%rdx,4),%ebx
xorps  %xmm0,%xmm0
cvtsi2ss %ebx,%xmm0
movss  %xmm0,-0x2000(%rax,%rdx,4)
ff ff
movswl 0x2(%rdi,%rdx,4),%ebx
xorps  %xmm0,%xmm0
cvtsi2ss %ebx,%xmm0
movss  %xmm0,(%rax,%rdx,4)
add    $0x1,%rdx
cmp    %rdx,%r15
jne    13c0 <rebuffer_audio+0x2c0>
jmp    1704 <rebuffer_audio+0x604>
add    %edx,%ecx
and    $0x7ff,%ecx
cmp    %ecx,%eax
jb     157d <rebuffer_audio+0x47d>
and    $0x7ff,%edx
cmp    $0x7fc,%edx
ja     1550 <rebuffer_audio+0x450>
mov    $0x800,%r8d
sub    %rdx,%r8
mov    %r8d,%r9d
and    $0xfffffffc,%r9d
lea    -0x4(%r9),%rax
mov    %rax,%r14
shr    $0x2,%r14
add    $0x1,%r14
mov    %r14d,%r10d
and    $0x3,%r10d
cmp    $0xc,%rax
jae    1448 <rebuffer_audio+0x348>
xor    %ebx,%ebx
jmp    14e8 <rebuffer_audio+0x3e8>
and    $0xfffffffffffffffc,%r14
lea    (%rsi,%rdx,4),%rax
add    $0x2030,%rax
xor    %ebx,%ebx
xorps  %xmm0,%xmm0
nopl   0x0(%rax,%rax,1)
movq   (%rdi,%rbx,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2030(%rax,%rbx,4)
ff
movups %xmm0,-0x30(%rax,%rbx,4)
movq   0x8(%rdi,%rbx,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2020(%rax,%rbx,4)
ff
movups %xmm0,-0x20(%rax,%rbx,4)
movq   0x10(%rdi,%rbx,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2010(%rax,%rbx,4)
ff
movups %xmm0,-0x10(%rax,%rbx,4)
movq   0x18(%rdi,%rbx,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%rax,%rbx,4)
ff
movups %xmm0,(%rax,%rbx,4)
add    $0x10,%rbx
add    $0xfffffffffffffffc,%r14
jne    1460 <rebuffer_audio+0x360>
test   %r10,%r10
je     1537 <rebuffer_audio+0x437>
lea    (%rdi,%rbx,2),%r14
add    %rdx,%rbx
lea    (%rsi,%rbx,4),%rbx
add    $0x2000,%rbx
shl    $0x3,%r10
xor    %eax,%eax
xorps  %xmm0,%xmm0
nopl   0x0(%rax,%rax,1)
movq   (%r14,%rax,1),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%rbx,%rax,2)
ff
movups %xmm0,(%rbx,%rax,2)
add    $0x8,%rax
cmp    %rax,%r10
jne    1510 <rebuffer_audio+0x410>
lea    (%rdi,%r9,2),%rdi
xor    %eax,%eax
cmp    %r9,%r8
je     157d <rebuffer_audio+0x47d>
add    %r9,%rdx
cs nopw 0x0(%rax,%rax,1)
nop
movswl (%rdi),%eax
add    $0x2,%rdi
xorps  %xmm0,%xmm0
cvtsi2ss %eax,%xmm0
movss  %xmm0,(%rsi,%rdx,4)
movl   $0x0,0x2000(%rsi,%rdx,4)
add    $0x1,%rdx
cmp    $0x800,%rdx
jne    1550 <rebuffer_audio+0x450>
xor    %eax,%eax
cmp    %ecx,%eax
jae    1706 <rebuffer_audio+0x606>
mov    %eax,%r8d
mov    %ecx,%r15d
mov    %r15,%r9
sub    %r8,%r9
cmp    $0x4,%r9
jb     16c2 <rebuffer_audio+0x5c2>
mov    %r9,%r10
and    $0xfffffffffffffffc,%r10
lea    -0x4(%r10),%rax
mov    %rax,%rbx
shr    $0x2,%rbx
add    $0x1,%rbx
mov    %ebx,%r14d
and    $0x3,%r14d
cmp    $0xc,%rax
jae    15c5 <rebuffer_audio+0x4c5>
xor    %eax,%eax
jmp    1668 <rebuffer_audio+0x568>
and    $0xfffffffffffffffc,%rbx
lea    (%rsi,%r8,4),%rdx
add    $0x2030,%rdx
xor    %eax,%eax
xorps  %xmm0,%xmm0
nopl   0x0(%rax)
movq   (%rdi,%rax,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2030(%rdx,%rax,4)
ff
movups %xmm0,-0x30(%rdx,%rax,4)
movq   0x8(%rdi,%rax,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2020(%rdx,%rax,4)
ff
movups %xmm0,-0x20(%rdx,%rax,4)
movq   0x10(%rdi,%rax,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2010(%rdx,%rax,4)
ff
movups %xmm0,-0x10(%rdx,%rax,4)
movq   0x18(%rdi,%rax,2),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%rdx,%rax,4)
ff
movups %xmm0,(%rdx,%rax,4)
add    $0x10,%rax
add    $0xfffffffffffffffc,%rbx
jne    15e0 <rebuffer_audio+0x4e0>
test   %r14,%r14
je     16b6 <rebuffer_audio+0x5b6>
lea    (%rdi,%rax,2),%rdx
add    %r8,%rax
lea    (%rsi,%rax,4),%rax
add    $0x2000,%rax
shl    $0x3,%r14
xor    %ebx,%ebx
xorps  %xmm0,%xmm0
nopw   0x0(%rax,%rax,1)
movq   (%rdx,%rbx,1),%xmm1
punpcklwd %xmm1,%xmm1
psrad  $0x10,%xmm1
cvtdq2ps %xmm1,%xmm1
movups %xmm1,-0x2000(%rax,%rbx,2)
ff
movups %xmm0,(%rax,%rbx,2)
add    $0x8,%rbx
cmp    %rbx,%r14
jne    1690 <rebuffer_audio+0x590>
cmp    %r10,%r9
je     1704 <rebuffer_audio+0x604>
add    %r10,%r8
lea    (%rdi,%r10,2),%rdi
lea    (%rsi,%r8,4),%rax
add    $0x2000,%rax
sub    %r8,%r15
xor    %edx,%edx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movswl (%rdi,%rdx,2),%ebx
xorps  %xmm0,%xmm0
cvtsi2ss %ebx,%xmm0
movss  %xmm0,-0x2000(%rax,%rdx,4)
ff ff
movl   $0x0,(%rax,%rdx,4)
add    $0x1,%rdx
cmp    %rdx,%r15
jne    16e0 <rebuffer_audio+0x5e0>
mov    %ecx,%eax
cmp    %r11d,%eax
je     190b <rebuffer_audio+0x80b>
jle    1811 <rebuffer_audio+0x711>
mov    %eax,%ecx
mov    $0x800,%r9d
sub    %rcx,%r9
cmp    $0x4,%r9
jb     17f0 <rebuffer_audio+0x6f0>
mov    %r9d,%r8d
and    $0xfffffffc,%r8d
lea    -0x4(%r8),%rdx
mov    %rdx,%rax
shr    $0x2,%rax
add    $0x1,%rax
mov    %eax,%ebx
and    $0x3,%ebx
cmp    $0xc,%rdx
jae    174f <rebuffer_audio+0x64f>
xor    %edi,%edi
jmp    17ad <rebuffer_audio+0x6ad>
and    $0xfffffffffffffffc,%rax
lea    (%rsi,%rcx,4),%rdx
add    $0x2030,%rdx
xor    %edi,%edi
xorps  %xmm0,%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   (%rax)
movups %xmm0,-0x2030(%rdx,%rdi,4)
ff
movups %xmm0,-0x30(%rdx,%rdi,4)
movups %xmm0,-0x2020(%rdx,%rdi,4)
ff
movups %xmm0,-0x20(%rdx,%rdi,4)
movups %xmm0,-0x2010(%rdx,%rdi,4)
ff
movups %xmm0,-0x10(%rdx,%rdi,4)
movups %xmm0,-0x2000(%rdx,%rdi,4)
ff
movups %xmm0,(%rdx,%rdi,4)
add    $0x10,%rdi
add    $0xfffffffffffffffc,%rax
jne    1770 <rebuffer_audio+0x670>
test   %rbx,%rbx
je     17e5 <rebuffer_audio+0x6e5>
add    %rcx,%rdi
lea    (%rsi,%rdi,4),%rax
add    $0x2000,%rax
shl    $0x4,%rbx
xor    %edx,%edx
xorps  %xmm0,%xmm0
nopl   0x0(%rax,%rax,1)
movups %xmm0,-0x2000(%rax,%rdx,1)
ff
movups %xmm0,(%rax,%rdx,1)
add    $0x10,%rdx
cmp    %rdx,%rbx
jne    17d0 <rebuffer_audio+0x6d0>
xor    %eax,%eax
cmp    %r8,%r9
je     1811 <rebuffer_audio+0x711>
add    %r8,%rcx
nop
movl   $0x0,(%rsi,%rcx,4)
movl   $0x0,0x2000(%rsi,%rcx,4)
add    $0x1,%rcx
cmp    $0x800,%rcx
jne    17f0 <rebuffer_audio+0x6f0>
xor    %eax,%eax
cmp    %r11d,%eax
jge    190b <rebuffer_audio+0x80b>
mov    %eax,%ecx
mov    %r11d,%eax
mov    %rax,%r9
sub    %rcx,%r9
cmp    $0x4,%r9
jb     18f0 <rebuffer_audio+0x7f0>
mov    %r9,%r8
and    $0xfffffffffffffffc,%r8
lea    -0x4(%r8),%rdx
mov    %rdx,%rdi
shr    $0x2,%rdi
add    $0x1,%rdi
mov    %edi,%r10d
and    $0x3,%r10d
cmp    $0xc,%rdx
jae    1856 <rebuffer_audio+0x756>
xor    %edx,%edx
jmp    18ad <rebuffer_audio+0x7ad>
and    $0xfffffffffffffffc,%rdi
lea    (%rsi,%rcx,4),%rbx
add    $0x2030,%rbx
xor    %edx,%edx
xorps  %xmm0,%xmm0
nopw   0x0(%rax,%rax,1)
movups %xmm0,-0x2030(%rbx,%rdx,4)
ff
movups %xmm0,-0x30(%rbx,%rdx,4)
movups %xmm0,-0x2020(%rbx,%rdx,4)
ff
movups %xmm0,-0x20(%rbx,%rdx,4)
movups %xmm0,-0x2010(%rbx,%rdx,4)
ff
movups %xmm0,-0x10(%rbx,%rdx,4)
movups %xmm0,-0x2000(%rbx,%rdx,4)
ff
movups %xmm0,(%rbx,%rdx,4)
add    $0x10,%rdx
add    $0xfffffffffffffffc,%rdi
jne    1870 <rebuffer_audio+0x770>
test   %r10,%r10
je     18e5 <rebuffer_audio+0x7e5>
add    %rcx,%rdx
lea    (%rsi,%rdx,4),%rdx
add    $0x2000,%rdx
shl    $0x4,%r10
xor    %edi,%edi
xorps  %xmm0,%xmm0
nopl   0x0(%rax)
movups %xmm0,-0x2000(%rdx,%rdi,1)
ff
movups %xmm0,(%rdx,%rdi,1)
add    $0x10,%rdi
cmp    %rdi,%r10
jne    18d0 <rebuffer_audio+0x7d0>
cmp    %r8,%r9
je     190b <rebuffer_audio+0x80b>
add    %r8,%rcx
nopl   (%rax)
movl   $0x0,(%rsi,%rcx,4)
movl   $0x0,0x2000(%rsi,%rcx,4)
add    $0x1,%rcx
cmp    %rcx,%rax
jne    18f0 <rebuffer_audio+0x7f0>
pop    %rbx
pop    %r14
pop    %r15
ret
xor    %eax,%eax
test   $0x1,%r10b
jne    121a <rebuffer_audio+0x11a>
jmp    1247 <rebuffer_audio+0x147>
xor    %eax,%eax
test   $0x1,%r14b
jne    1366 <rebuffer_audio+0x266>
jmp    1393 <rebuffer_audio+0x293>

LLVM IR (-O0):
define void @rebuffer_audio(i16* %0, [2048 x float]* %1, i32* %2, i32 %3, i32 %4) {
%6 = alloca i16*
%7 = alloca [2048 x float]*
%8 = alloca i32*
%9 = alloca i32
%10 = alloca i32
%11 = alloca i32
%12 = alloca i32
%13 = alloca i32
store i16* %0, i16** %6
store [2048 x float]* %1, [2048 x float]** %7
store i32* %2, i32** %8
store i32 %3, i32* %9
store i32 %4, i32* %10
%14 = load i32*, i32** %8
%15 = load i32, i32* %14
%16 = add nsw i32 %15, 1152
%17 = and i32 %16, 2047
%18 = load i32*, i32** %8
store i32 %17, i32* %18
%19 = load i32*, i32** %8
%20 = load i32, i32* %19
%21 = add nsw i32 %20, 768
%22 = and i32 %21, 2047
store i32 %22, i32* %11
%23 = load i32, i32* %11
%24 = add nsw i32 %23, 1152
%25 = and i32 %24, 2047
store i32 %25, i32* %13
%26 = load i32, i32* %10
%27 = icmp eq i32 %26, 2
br i1 %27, label %28, label %90
28: ; preds = %5
%29 = load i32, i32* %11
%30 = load i32, i32* %9
%31 = udiv i32 %30, 2
%32 = add i32 %29, %31
%33 = and i32 %32, 2047
store i32 %33, i32* %12
%34 = load i32, i32* %11
%35 = load i32, i32* %12
%36 = icmp sge i32 %34, %35
br i1 %36, label %37, label %63
37: ; preds = %28
br label %38
38: ; preds = %41, %37
%39 = load i32, i32* %11
%40 = icmp slt i32 %39, 2048
br i1 %40, label %41, label %62
41: ; preds = %38
%42 = load i16*, i16** %6
%43 = getelementptr inbounds i16, i16* %42, i32 1
store i16* %43, i16** %6
%44 = load i16, i16* %42
%45 = sitofp i16 %44 to float
%46 = load [2048 x float]*, [2048 x float]** %7
%47 = getelementptr inbounds [2048 x float], [2048 x float]* %46, i64 0
%48 = load i32, i32* %11
%49 = sext i32 %48 to i64
%50 = getelementptr inbounds [2048 x float], [2048 x float]* %47, i64 0, i64 %49
store float %45, float* %50
%51 = load i16*, i16** %6
%52 = getelementptr inbounds i16, i16* %51, i32 1
store i16* %52, i16** %6
%53 = load i16, i16* %51
%54 = sitofp i16 %53 to float
%55 = load [2048 x float]*, [2048 x float]** %7
%56 = getelementptr inbounds [2048 x float], [2048 x float]* %55, i64 1
%57 = load i32, i32* %11
%58 = sext i32 %57 to i64
%59 = getelementptr inbounds [2048 x float], [2048 x float]* %56, i64 0, i64 %58
store float %54, float* %59
%60 = load i32, i32* %11
%61 = add nsw i32 %60, 1
store i32 %61, i32* %11
br label %38
62: ; preds = %38
store i32 0, i32* %11
br label %63
63: ; preds = %62, %28
br label %64
64: ; preds = %68, %63
%65 = load i32, i32* %11
%66 = load i32, i32* %12
%67 = icmp slt i32 %65, %66
br i1 %67, label %68, label %89
68: ; preds = %64
%69 = load i16*, i16** %6
%70 = getelementptr inbounds i16, i16* %69, i32 1
store i16* %70, i16** %6
%71 = load i16, i16* %69
%72 = sitofp i16 %71 to float
%73 = load [2048 x float]*, [2048 x float]** %7
%74 = getelementptr inbounds [2048 x float], [2048 x float]* %73, i64 0
%75 = load i32, i32* %11
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [2048 x float], [2048 x float]* %74, i64 0, i64 %76
store float %72, float* %77
%78 = load i16*, i16** %6
%79 = getelementptr inbounds i16, i16* %78, i32 1
store i16* %79, i16** %6
%80 = load i16, i16* %78
%81 = sitofp i16 %80 to float
%82 = load [2048 x float]*, [2048 x float]** %7
%83 = getelementptr inbounds [2048 x float], [2048 x float]* %82, i64 1
%84 = load i32, i32* %11
%85 = sext i32 %84 to i64
%86 = getelementptr inbounds [2048 x float], [2048 x float]* %83, i64 0, i64 %85
store float %81, float* %86
%87 = load i32, i32* %11
%88 = add nsw i32 %87, 1
store i32 %88, i32* %11
br label %64
89: ; preds = %64
br label %143
90: ; preds = %5
%91 = load i32, i32* %11
%92 = load i32, i32* %9
%93 = add i32 %91, %92
%94 = and i32 %93, 2047
store i32 %94, i32* %12
%95 = load i32, i32* %11
%96 = load i32, i32* %12
%97 = icmp sge i32 %95, %96
br i1 %97, label %98, label %120
98: ; preds = %90
br label %99
99: ; preds = %102, %98
%100 = load i32, i32* %11
%101 = icmp slt i32 %100, 2048
br i1 %101, label %102, label %119
102: ; preds = %99
%103 = load i16*, i16** %6
%104 = getelementptr inbounds i16, i16* %103, i32 1
store i16* %104, i16** %6
%105 = load i16, i16* %103
%106 = sitofp i16 %105 to float
%107 = load [2048 x float]*, [2048 x float]** %7
%108 = getelementptr inbounds [2048 x float], [2048 x float]* %107, i64 0
%109 = load i32, i32* %11
%110 = sext i32 %109 to i64
%111 = getelementptr inbounds [2048 x float], [2048 x float]* %108, i64 0, i64 %110
store float %106, float* %111
%112 = load [2048 x float]*, [2048 x float]** %7
%113 = getelementptr inbounds [2048 x float], [2048 x float]* %112, i64 1
%114 = load i32, i32* %11
%115 = sext i32 %114 to i64
%116 = getelementptr inbounds [2048 x float], [2048 x float]* %113, i64 0, i64 %115
store float 0.000000e+00, float* %116
%117 = load i32, i32* %11
%118 = add nsw i32 %117, 1
store i32 %118, i32* %11
br label %99
119: ; preds = %99
store i32 0, i32* %11
br label %120
120: ; preds = %119, %90
br label %121
121: ; preds = %125, %120
%122 = load i32, i32* %11
%123 = load i32, i32* %12
%124 = icmp slt i32 %122, %123
br i1 %124, label %125, label %142
125: ; preds = %121
%126 = load i16*, i16** %6
%127 = getelementptr inbounds i16, i16* %126, i32 1
store i16* %127, i16** %6
%128 = load i16, i16* %126
%129 = sitofp i16 %128 to float
%130 = load [2048 x float]*, [2048 x float]** %7
%131 = getelementptr inbounds [2048 x float], [2048 x float]* %130, i64 0
%132 = load i32, i32* %11
%133 = sext i32 %132 to i64
%134 = getelementptr inbounds [2048 x float], [2048 x float]* %131, i64 0, i64 %133
store float %129, float* %134
%135 = load [2048 x float]*, [2048 x float]** %7
%136 = getelementptr inbounds [2048 x float], [2048 x float]* %135, i64 1
%137 = load i32, i32* %11
%138 = sext i32 %137 to i64
%139 = getelementptr inbounds [2048 x float], [2048 x float]* %136, i64 0, i64 %138
store float 0.000000e+00, float* %139
%140 = load i32, i32* %11
%141 = add nsw i32 %140, 1
store i32 %141, i32* %11
br label %121
142: ; preds = %121
br label %143
143: ; preds = %142, %89
%144 = load i32, i32* %11
%145 = load i32, i32* %13
%146 = icmp ne i32 %144, %145
br i1 %146, label %147, label %188
147: ; preds = %143
%148 = load i32, i32* %11
%149 = load i32, i32* %13
%150 = icmp sgt i32 %148, %149
br i1 %150, label %151, label %169
151: ; preds = %147
br label %152
152: ; preds = %155, %151
%153 = load i32, i32* %11
%154 = icmp slt i32 %153, 2048
br i1 %154, label %155, label %168
155: ; preds = %152
%156 = load [2048 x float]*, [2048 x float]** %7
%157 = getelementptr inbounds [2048 x float], [2048 x float]* %156, i64 0
%158 = load i32, i32* %11
%159 = sext i32 %158 to i64
%160 = getelementptr inbounds [2048 x float], [2048 x float]* %157, i64 0, i64 %159
store float 0.000000e+00, float* %160
%161 = load [2048 x float]*, [2048 x float]** %7
%162 = getelementptr inbounds [2048 x float], [2048 x float]* %161, i64 1
%163 = load i32, i32* %11
%164 = sext i32 %163 to i64
%165 = getelementptr inbounds [2048 x float], [2048 x float]* %162, i64 0, i64 %164
store float 0.000000e+00, float* %165
%166 = load i32, i32* %11
%167 = add nsw i32 %166, 1
store i32 %167, i32* %11
br label %152
168: ; preds = %152
store i32 0, i32* %11
br label %169
169: ; preds = %168, %147
br label %170
170: ; preds = %174, %169
%171 = load i32, i32* %11
%172 = load i32, i32* %13
%173 = icmp slt i32 %171, %172
br i1 %173, label %174, label %187
174: ; preds = %170
%175 = load [2048 x float]*, [2048 x float]** %7
%176 = getelementptr inbounds [2048 x float], [2048 x float]* %175, i64 0
%177 = load i32, i32* %11
%178 = sext i32 %177 to i64
%179 = getelementptr inbounds [2048 x float], [2048 x float]* %176, i64 0, i64 %178
store float 0.000000e+00, float* %179
%180 = load [2048 x float]*, [2048 x float]** %7
%181 = getelementptr inbounds [2048 x float], [2048 x float]* %180, i64 1
%182 = load i32, i32* %11
%183 = sext i32 %182 to i64
%184 = getelementptr inbounds [2048 x float], [2048 x float]* %181, i64 0, i64 %183
store float 0.000000e+00, float* %184
%185 = load i32, i32* %11
%186 = add nsw i32 %185, 1
store i32 %186, i32* %11
br label %170
187: ; preds = %170
br label %188
188: ; preds = %187, %143
ret void
}

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