void do_loop(int num_iter, unsigned int *mem, unsigned int *end_in) {
  volatile unsigned long acc;
  register unsigned int *end = end_in;
  acc = 0;
  for (int i = num_iter; i > 0; i--) {
    for (unsigned int *p = mem; p < end;) {
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
      acc += p[0] + p[1] + p[2] + p[3] + p[4] + p[5] + p[6] + p[7] + p[8] +
             p[9] + p[10] + p[11] + p[12] + p[13] + p[14] + p[15] + p[16] +
             p[17] + p[18] + p[19];
      p += 20;
    }
  }
}


x86 assembly (clang, -O0):
<do_loop>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x18(%rbp),%rax
mov    %rax,-0x28(%rbp)
movq   $0x0,-0x20(%rbp)
mov    -0x4(%rbp),%eax
mov    %eax,-0x2c(%rbp)
cmpl   $0x0,-0x2c(%rbp)
jle    17d9 <do_loop+0x6d9>
mov    -0x10(%rbp),%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
cmp    -0x28(%rbp),%rax
jae    17c6 <do_loop+0x6c6>
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
mov    -0x38(%rbp),%rax
mov    (%rax),%eax
mov    -0x38(%rbp),%rcx
add    0x4(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x8(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0xc(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x10(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x14(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x18(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x1c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x20(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x24(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x28(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x2c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x30(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x34(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x38(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x3c(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x40(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x44(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x48(%rcx),%eax
mov    -0x38(%rbp),%rcx
add    0x4c(%rcx),%eax
mov    %eax,%eax
mov    %eax,%ecx
mov    -0x20(%rbp),%rax
add    %rcx,%rax
mov    %rax,-0x20(%rbp)
mov    -0x38(%rbp),%rax
add    $0x50,%rax
mov    %rax,-0x38(%rbp)
jmp    1137 <do_loop+0x37>
jmp    17cb <do_loop+0x6cb>
mov    -0x2c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x2c(%rbp)
jmp    1125 <do_loop+0x25>
pop    %rbp
ret

x86 assembly (clang, -O2):
<do_loop>:
movq   $0x0,-0x8(%rsp)
test   %edi,%edi
jg     111a <do_loop+0x1a>
ret
xchg   %ax,%ax
lea    -0x1(%rdi),%eax
cmp    $0x1,%edi
mov    %eax,%edi
jle    110d <do_loop+0xd>
mov    %rsi,%rax
cmp    %rdx,%rsi
jae    1110 <do_loop+0x10>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
mov    0x4(%rax),%ecx
add    (%rax),%ecx
add    0x8(%rax),%ecx
add    0xc(%rax),%ecx
add    0x10(%rax),%ecx
add    0x14(%rax),%ecx
add    0x18(%rax),%ecx
add    0x1c(%rax),%ecx
add    0x20(%rax),%ecx
add    0x24(%rax),%ecx
add    0x28(%rax),%ecx
add    0x2c(%rax),%ecx
add    0x30(%rax),%ecx
add    0x34(%rax),%ecx
add    0x38(%rax),%ecx
add    0x3c(%rax),%ecx
add    0x40(%rax),%ecx
add    0x44(%rax),%ecx
add    0x48(%rax),%ecx
add    0x4c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x54(%rax),%ecx
add    0x50(%rax),%ecx
add    0x58(%rax),%ecx
add    0x5c(%rax),%ecx
add    0x60(%rax),%ecx
add    0x64(%rax),%ecx
add    0x68(%rax),%ecx
add    0x6c(%rax),%ecx
add    0x70(%rax),%ecx
add    0x74(%rax),%ecx
add    0x78(%rax),%ecx
add    0x7c(%rax),%ecx
add    0x80(%rax),%ecx
add    0x84(%rax),%ecx
add    0x88(%rax),%ecx
add    0x8c(%rax),%ecx
add    0x90(%rax),%ecx
add    0x94(%rax),%ecx
add    0x98(%rax),%ecx
add    0x9c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0xa4(%rax),%ecx
add    0xa0(%rax),%ecx
add    0xa8(%rax),%ecx
add    0xac(%rax),%ecx
add    0xb0(%rax),%ecx
add    0xb4(%rax),%ecx
add    0xb8(%rax),%ecx
add    0xbc(%rax),%ecx
add    0xc0(%rax),%ecx
add    0xc4(%rax),%ecx
add    0xc8(%rax),%ecx
add    0xcc(%rax),%ecx
add    0xd0(%rax),%ecx
add    0xd4(%rax),%ecx
add    0xd8(%rax),%ecx
add    0xdc(%rax),%ecx
add    0xe0(%rax),%ecx
add    0xe4(%rax),%ecx
add    0xe8(%rax),%ecx
add    0xec(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0xf4(%rax),%ecx
add    0xf0(%rax),%ecx
add    0xf8(%rax),%ecx
add    0xfc(%rax),%ecx
add    0x100(%rax),%ecx
add    0x104(%rax),%ecx
add    0x108(%rax),%ecx
add    0x10c(%rax),%ecx
add    0x110(%rax),%ecx
add    0x114(%rax),%ecx
add    0x118(%rax),%ecx
add    0x11c(%rax),%ecx
add    0x120(%rax),%ecx
add    0x124(%rax),%ecx
add    0x128(%rax),%ecx
add    0x12c(%rax),%ecx
add    0x130(%rax),%ecx
add    0x134(%rax),%ecx
add    0x138(%rax),%ecx
add    0x13c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x144(%rax),%ecx
add    0x140(%rax),%ecx
add    0x148(%rax),%ecx
add    0x14c(%rax),%ecx
add    0x150(%rax),%ecx
add    0x154(%rax),%ecx
add    0x158(%rax),%ecx
add    0x15c(%rax),%ecx
add    0x160(%rax),%ecx
add    0x164(%rax),%ecx
add    0x168(%rax),%ecx
add    0x16c(%rax),%ecx
add    0x170(%rax),%ecx
add    0x174(%rax),%ecx
add    0x178(%rax),%ecx
add    0x17c(%rax),%ecx
add    0x180(%rax),%ecx
add    0x184(%rax),%ecx
add    0x188(%rax),%ecx
add    0x18c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x194(%rax),%ecx
add    0x190(%rax),%ecx
add    0x198(%rax),%ecx
add    0x19c(%rax),%ecx
add    0x1a0(%rax),%ecx
add    0x1a4(%rax),%ecx
add    0x1a8(%rax),%ecx
add    0x1ac(%rax),%ecx
add    0x1b0(%rax),%ecx
add    0x1b4(%rax),%ecx
add    0x1b8(%rax),%ecx
add    0x1bc(%rax),%ecx
add    0x1c0(%rax),%ecx
add    0x1c4(%rax),%ecx
add    0x1c8(%rax),%ecx
add    0x1cc(%rax),%ecx
add    0x1d0(%rax),%ecx
add    0x1d4(%rax),%ecx
add    0x1d8(%rax),%ecx
add    0x1dc(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x1e4(%rax),%ecx
add    0x1e0(%rax),%ecx
add    0x1e8(%rax),%ecx
add    0x1ec(%rax),%ecx
add    0x1f0(%rax),%ecx
add    0x1f4(%rax),%ecx
add    0x1f8(%rax),%ecx
add    0x1fc(%rax),%ecx
add    0x200(%rax),%ecx
add    0x204(%rax),%ecx
add    0x208(%rax),%ecx
add    0x20c(%rax),%ecx
add    0x210(%rax),%ecx
add    0x214(%rax),%ecx
add    0x218(%rax),%ecx
add    0x21c(%rax),%ecx
add    0x220(%rax),%ecx
add    0x224(%rax),%ecx
add    0x228(%rax),%ecx
add    0x22c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x234(%rax),%ecx
add    0x230(%rax),%ecx
add    0x238(%rax),%ecx
add    0x23c(%rax),%ecx
add    0x240(%rax),%ecx
add    0x244(%rax),%ecx
add    0x248(%rax),%ecx
add    0x24c(%rax),%ecx
add    0x250(%rax),%ecx
add    0x254(%rax),%ecx
add    0x258(%rax),%ecx
add    0x25c(%rax),%ecx
add    0x260(%rax),%ecx
add    0x264(%rax),%ecx
add    0x268(%rax),%ecx
add    0x26c(%rax),%ecx
add    0x270(%rax),%ecx
add    0x274(%rax),%ecx
add    0x278(%rax),%ecx
add    0x27c(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x284(%rax),%ecx
add    0x280(%rax),%ecx
add    0x288(%rax),%ecx
add    0x28c(%rax),%ecx
add    0x290(%rax),%ecx
add    0x294(%rax),%ecx
add    0x298(%rax),%ecx
add    0x29c(%rax),%ecx
add    0x2a0(%rax),%ecx
add    0x2a4(%rax),%ecx
add    0x2a8(%rax),%ecx
add    0x2ac(%rax),%ecx
add    0x2b0(%rax),%ecx
add    0x2b4(%rax),%ecx
add    0x2b8(%rax),%ecx
add    0x2bc(%rax),%ecx
add    0x2c0(%rax),%ecx
add    0x2c4(%rax),%ecx
add    0x2c8(%rax),%ecx
add    0x2cc(%rax),%ecx
add    %rcx,-0x8(%rsp)
mov    0x2d4(%rax),%ecx
add    0x2d0(%rax),%ecx
add    0x2d8(%rax),%ecx
add    0x2dc(%rax),%ecx
add    0x2e0(%rax),%ecx
add    0x2e4(%rax),%ecx
add    0x2e8(%rax),%ecx
add    0x2ec(%rax),%ecx
add    0x2f0(%rax),%ecx
add    0x2f4(%rax),%ecx
add    0x2f8(%rax),%ecx
add    0x2fc(%rax),%ecx
add    0x300(%rax),%ecx
add    0x304(%rax),%ecx
add    0x308(%rax),%ecx
add    0x30c(%rax),%ecx
add    0x310(%rax),%ecx
add    0x314(%rax),%ecx
add    0x318(%rax),%ecx
add    0x31c(%rax),%ecx
add    %rcx,-0x8(%rsp)
add    $0x320,%rax
cmp    %rdx,%rax
jb     1130 <do_loop+0x30>
jmp    1110 <do_loop+0x10>

LLVM IR (-O0):
define void @do_loop(i32 %0, i32* %1, i32* %2) {
%4 = alloca i32
%5 = alloca i32*
%6 = alloca i32*
%7 = alloca i64
%8 = alloca i32*
%9 = alloca i32
%10 = alloca i32*
store i32 %0, i32* %4
store i32* %1, i32** %5
store i32* %2, i32** %6
%11 = load i32*, i32** %6
store i32* %11, i32** %8
store volatile i64 0, i64* %7
%12 = load i32, i32* %4
store i32 %12, i32* %9
br label %13
13: ; preds = %864, %3
%14 = load i32, i32* %9
%15 = icmp sgt i32 %14, 0
br i1 %15, label %16, label %867
16: ; preds = %13
%17 = load i32*, i32** %5
store i32* %17, i32** %10
br label %18
18: ; preds = %22, %16
%19 = load i32*, i32** %10
%20 = load i32*, i32** %8
%21 = icmp ult i32* %19, %20
br i1 %21, label %22, label %863
22: ; preds = %18
%23 = load i32*, i32** %10
%24 = getelementptr inbounds i32, i32* %23, i64 0
%25 = load i32, i32* %24
%26 = load i32*, i32** %10
%27 = getelementptr inbounds i32, i32* %26, i64 1
%28 = load i32, i32* %27
%29 = add i32 %25, %28
%30 = load i32*, i32** %10
%31 = getelementptr inbounds i32, i32* %30, i64 2
%32 = load i32, i32* %31
%33 = add i32 %29, %32
%34 = load i32*, i32** %10
%35 = getelementptr inbounds i32, i32* %34, i64 3
%36 = load i32, i32* %35
%37 = add i32 %33, %36
%38 = load i32*, i32** %10
%39 = getelementptr inbounds i32, i32* %38, i64 4
%40 = load i32, i32* %39
%41 = add i32 %37, %40
%42 = load i32*, i32** %10
%43 = getelementptr inbounds i32, i32* %42, i64 5
%44 = load i32, i32* %43
%45 = add i32 %41, %44
%46 = load i32*, i32** %10
%47 = getelementptr inbounds i32, i32* %46, i64 6
%48 = load i32, i32* %47
%49 = add i32 %45, %48
%50 = load i32*, i32** %10
%51 = getelementptr inbounds i32, i32* %50, i64 7
%52 = load i32, i32* %51
%53 = add i32 %49, %52
%54 = load i32*, i32** %10
%55 = getelementptr inbounds i32, i32* %54, i64 8
%56 = load i32, i32* %55
%57 = add i32 %53, %56
%58 = load i32*, i32** %10
%59 = getelementptr inbounds i32, i32* %58, i64 9
%60 = load i32, i32* %59
%61 = add i32 %57, %60
%62 = load i32*, i32** %10
%63 = getelementptr inbounds i32, i32* %62, i64 10
%64 = load i32, i32* %63
%65 = add i32 %61, %64
%66 = load i32*, i32** %10
%67 = getelementptr inbounds i32, i32* %66, i64 11
%68 = load i32, i32* %67
%69 = add i32 %65, %68
%70 = load i32*, i32** %10
%71 = getelementptr inbounds i32, i32* %70, i64 12
%72 = load i32, i32* %71
%73 = add i32 %69, %72
%74 = load i32*, i32** %10
%75 = getelementptr inbounds i32, i32* %74, i64 13
%76 = load i32, i32* %75
%77 = add i32 %73, %76
%78 = load i32*, i32** %10
%79 = getelementptr inbounds i32, i32* %78, i64 14
%80 = load i32, i32* %79
%81 = add i32 %77, %80
%82 = load i32*, i32** %10
%83 = getelementptr inbounds i32, i32* %82, i64 15
%84 = load i32, i32* %83
%85 = add i32 %81, %84
%86 = load i32*, i32** %10
%87 = getelementptr inbounds i32, i32* %86, i64 16
%88 = load i32, i32* %87
%89 = add i32 %85, %88
%90 = load i32*, i32** %10
%91 = getelementptr inbounds i32, i32* %90, i64 17
%92 = load i32, i32* %91
%93 = add i32 %89, %92
%94 = load i32*, i32** %10
%95 = getelementptr inbounds i32, i32* %94, i64 18
%96 = load i32, i32* %95
%97 = add i32 %93, %96
%98 = load i32*, i32** %10
%99 = getelementptr inbounds i32, i32* %98, i64 19
%100 = load i32, i32* %99
%101 = add i32 %97, %100
%102 = zext i32 %101 to i64
%103 = load volatile i64, i64* %7
%104 = add i64 %103, %102
store volatile i64 %104, i64* %7
%105 = load i32*, i32** %10
%106 = getelementptr inbounds i32, i32* %105, i64 20
store i32* %106, i32** %10
%107 = load i32*, i32** %10
%108 = getelementptr inbounds i32, i32* %107, i64 0
%109 = load i32, i32* %108
%110 = load i32*, i32** %10
%111 = getelementptr inbounds i32, i32* %110, i64 1
%112 = load i32, i32* %111
%113 = add i32 %109, %112
%114 = load i32*, i32** %10
%115 = getelementptr inbounds i32, i32* %114, i64 2
%116 = load i32, i32* %115
%117 = add i32 %113, %116
%118 = load i32*, i32** %10
%119 = getelementptr inbounds i32, i32* %118, i64 3
%120 = load i32, i32* %119
%121 = add i32 %117, %120
%122 = load i32*, i32** %10
%123 = getelementptr inbounds i32, i32* %122, i64 4
%124 = load i32, i32* %123
%125 = add i32 %121, %124
%126 = load i32*, i32** %10
%127 = getelementptr inbounds i32, i32* %126, i64 5
%128 = load i32, i32* %127
%129 = add i32 %125, %128
%130 = load i32*, i32** %10
%131 = getelementptr inbounds i32, i32* %130, i64 6
%132 = load i32, i32* %131
%133 = add i32 %129, %132
%134 = load i32*, i32** %10
%135 = getelementptr inbounds i32, i32* %134, i64 7
%136 = load i32, i32* %135
%137 = add i32 %133, %136
%138 = load i32*, i32** %10
%139 = getelementptr inbounds i32, i32* %138, i64 8
%140 = load i32, i32* %139
%141 = add i32 %137, %140
%142 = load i32*, i32** %10
%143 = getelementptr inbounds i32, i32* %142, i64 9
%144 = load i32, i32* %143
%145 = add i32 %141, %144
%146 = load i32*, i32** %10
%147 = getelementptr inbounds i32, i32* %146, i64 10
%148 = load i32, i32* %147
%149 = add i32 %145, %148
%150 = load i32*, i32** %10
%151 = getelementptr inbounds i32, i32* %150, i64 11
%152 = load i32, i32* %151
%153 = add i32 %149, %152
%154 = load i32*, i32** %10
%155 = getelementptr inbounds i32, i32* %154, i64 12
%156 = load i32, i32* %155
%157 = add i32 %153, %156
%158 = load i32*, i32** %10
%159 = getelementptr inbounds i32, i32* %158, i64 13
%160 = load i32, i32* %159
%161 = add i32 %157, %160
%162 = load i32*, i32** %10
%163 = getelementptr inbounds i32, i32* %162, i64 14
%164 = load i32, i32* %163
%165 = add i32 %161, %164
%166 = load i32*, i32** %10
%167 = getelementptr inbounds i32, i32* %166, i64 15
%168 = load i32, i32* %167
%169 = add i32 %165, %168
%170 = load i32*, i32** %10
%171 = getelementptr inbounds i32, i32* %170, i64 16
%172 = load i32, i32* %171
%173 = add i32 %169, %172
%174 = load i32*, i32** %10
%175 = getelementptr inbounds i32, i32* %174, i64 17
%176 = load i32, i32* %175
%177 = add i32 %173, %176
%178 = load i32*, i32** %10
%179 = getelementptr inbounds i32, i32* %178, i64 18
%180 = load i32, i32* %179
%181 = add i32 %177, %180
%182 = load i32*, i32** %10
%183 = getelementptr inbounds i32, i32* %182, i64 19
%184 = load i32, i32* %183
%185 = add i32 %181, %184
%186 = zext i32 %185 to i64
%187 = load volatile i64, i64* %7
%188 = add i64 %187, %186
store volatile i64 %188, i64* %7
%189 = load i32*, i32** %10
%190 = getelementptr inbounds i32, i32* %189, i64 20
store i32* %190, i32** %10
%191 = load i32*, i32** %10
%192 = getelementptr inbounds i32, i32* %191, i64 0
%193 = load i32, i32* %192
%194 = load i32*, i32** %10
%195 = getelementptr inbounds i32, i32* %194, i64 1
%196 = load i32, i32* %195
%197 = add i32 %193, %196
%198 = load i32*, i32** %10
%199 = getelementptr inbounds i32, i32* %198, i64 2
%200 = load i32, i32* %199
%201 = add i32 %197, %200
%202 = load i32*, i32** %10
%203 = getelementptr inbounds i32, i32* %202, i64 3
%204 = load i32, i32* %203
%205 = add i32 %201, %204
%206 = load i32*, i32** %10
%207 = getelementptr inbounds i32, i32* %206, i64 4
%208 = load i32, i32* %207
%209 = add i32 %205, %208
%210 = load i32*, i32** %10
%211 = getelementptr inbounds i32, i32* %210, i64 5
%212 = load i32, i32* %211
%213 = add i32 %209, %212
%214 = load i32*, i32** %10
%215 = getelementptr inbounds i32, i32* %214, i64 6
%216 = load i32, i32* %215
%217 = add i32 %213, %216
%218 = load i32*, i32** %10
%219 = getelementptr inbounds i32, i32* %218, i64 7
%220 = load i32, i32* %219
%221 = add i32 %217, %220
%222 = load i32*, i32** %10
%223 = getelementptr inbounds i32, i32* %222, i64 8
%224 = load i32, i32* %223
%225 = add i32 %221, %224
%226 = load i32*, i32** %10
%227 = getelementptr inbounds i32, i32* %226, i64 9
%228 = load i32, i32* %227
%229 = add i32 %225, %228
%230 = load i32*, i32** %10
%231 = getelementptr inbounds i32, i32* %230, i64 10
%232 = load i32, i32* %231
%233 = add i32 %229, %232
%234 = load i32*, i32** %10
%235 = getelementptr inbounds i32, i32* %234, i64 11
%236 = load i32, i32* %235
%237 = add i32 %233, %236
%238 = load i32*, i32** %10
%239 = getelementptr inbounds i32, i32* %238, i64 12
%240 = load i32, i32* %239
%241 = add i32 %237, %240
%242 = load i32*, i32** %10
%243 = getelementptr inbounds i32, i32* %242, i64 13
%244 = load i32, i32* %243
%245 = add i32 %241, %244
%246 = load i32*, i32** %10
%247 = getelementptr inbounds i32, i32* %246, i64 14
%248 = load i32, i32* %247
%249 = add i32 %245, %248
%250 = load i32*, i32** %10
%251 = getelementptr inbounds i32, i32* %250, i64 15
%252 = load i32, i32* %251
%253 = add i32 %249, %252
%254 = load i32*, i32** %10
%255 = getelementptr inbounds i32, i32* %254, i64 16
%256 = load i32, i32* %255
%257 = add i32 %253, %256
%258 = load i32*, i32** %10
%259 = getelementptr inbounds i32, i32* %258, i64 17
%260 = load i32, i32* %259
%261 = add i32 %257, %260
%262 = load i32*, i32** %10
%263 = getelementptr inbounds i32, i32* %262, i64 18
%264 = load i32, i32* %263
%265 = add i32 %261, %264
%266 = load i32*, i32** %10
%267 = getelementptr inbounds i32, i32* %266, i64 19
%268 = load i32, i32* %267
%269 = add i32 %265, %268
%270 = zext i32 %269 to i64
%271 = load volatile i64, i64* %7
%272 = add i64 %271, %270
store volatile i64 %272, i64* %7
%273 = load i32*, i32** %10
%274 = getelementptr inbounds i32, i32* %273, i64 20
store i32* %274, i32** %10
%275 = load i32*, i32** %10
%276 = getelementptr inbounds i32, i32* %275, i64 0
%277 = load i32, i32* %276
%278 = load i32*, i32** %10
%279 = getelementptr inbounds i32, i32* %278, i64 1
%280 = load i32, i32* %279
%281 = add i32 %277, %280
%282 = load i32*, i32** %10
%283 = getelementptr inbounds i32, i32* %282, i64 2
%284 = load i32, i32* %283
%285 = add i32 %281, %284
%286 = load i32*, i32** %10
%287 = getelementptr inbounds i32, i32* %286, i64 3
%288 = load i32, i32* %287
%289 = add i32 %285, %288
%290 = load i32*, i32** %10
%291 = getelementptr inbounds i32, i32* %290, i64 4
%292 = load i32, i32* %291
%293 = add i32 %289, %292
%294 = load i32*, i32** %10
%295 = getelementptr inbounds i32, i32* %294, i64 5
%296 = load i32, i32* %295
%297 = add i32 %293, %296
%298 = load i32*, i32** %10
%299 = getelementptr inbounds i32, i32* %298, i64 6
%300 = load i32, i32* %299
%301 = add i32 %297, %300
%302 = load i32*, i32** %10
%303 = getelementptr inbounds i32, i32* %302, i64 7
%304 = load i32, i32* %303
%305 = add i32 %301, %304
%306 = load i32*, i32** %10
%307 = getelementptr inbounds i32, i32* %306, i64 8
%308 = load i32, i32* %307
%309 = add i32 %305, %308
%310 = load i32*, i32** %10
%311 = getelementptr inbounds i32, i32* %310, i64 9
%312 = load i32, i32* %311
%313 = add i32 %309, %312
%314 = load i32*, i32** %10
%315 = getelementptr inbounds i32, i32* %314, i64 10
%316 = load i32, i32* %315
%317 = add i32 %313, %316
%318 = load i32*, i32** %10
%319 = getelementptr inbounds i32, i32* %318, i64 11
%320 = load i32, i32* %319
%321 = add i32 %317, %320
%322 = load i32*, i32** %10
%323 = getelementptr inbounds i32, i32* %322, i64 12
%324 = load i32, i32* %323
%325 = add i32 %321, %324
%326 = load i32*, i32** %10
%327 = getelementptr inbounds i32, i32* %326, i64 13
%328 = load i32, i32* %327
%329 = add i32 %325, %328
%330 = load i32*, i32** %10
%331 = getelementptr inbounds i32, i32* %330, i64 14
%332 = load i32, i32* %331
%333 = add i32 %329, %332
%334 = load i32*, i32** %10
%335 = getelementptr inbounds i32, i32* %334, i64 15
%336 = load i32, i32* %335
%337 = add i32 %333, %336
%338 = load i32*, i32** %10
%339 = getelementptr inbounds i32, i32* %338, i64 16
%340 = load i32, i32* %339
%341 = add i32 %337, %340
%342 = load i32*, i32** %10
%343 = getelementptr inbounds i32, i32* %342, i64 17
%344 = load i32, i32* %343
%345 = add i32 %341, %344
%346 = load i32*, i32** %10
%347 = getelementptr inbounds i32, i32* %346, i64 18
%348 = load i32, i32* %347
%349 = add i32 %345, %348
%350 = load i32*, i32** %10
%351 = getelementptr inbounds i32, i32* %350, i64 19
%352 = load i32, i32* %351
%353 = add i32 %349, %352
%354 = zext i32 %353 to i64
%355 = load volatile i64, i64* %7
%356 = add i64 %355, %354
store volatile i64 %356, i64* %7
%357 = load i32*, i32** %10
%358 = getelementptr inbounds i32, i32* %357, i64 20
store i32* %358, i32** %10
%359 = load i32*, i32** %10
%360 = getelementptr inbounds i32, i32* %359, i64 0
%361 = load i32, i32* %360
%362 = load i32*, i32** %10
%363 = getelementptr inbounds i32, i32* %362, i64 1
%364 = load i32, i32* %363
%365 = add i32 %361, %364
%366 = load i32*, i32** %10
%367 = getelementptr inbounds i32, i32* %366, i64 2
%368 = load i32, i32* %367
%369 = add i32 %365, %368
%370 = load i32*, i32** %10
%371 = getelementptr inbounds i32, i32* %370, i64 3
%372 = load i32, i32* %371
%373 = add i32 %369, %372
%374 = load i32*, i32** %10
%375 = getelementptr inbounds i32, i32* %374, i64 4
%376 = load i32, i32* %375
%377 = add i32 %373, %376
%378 = load i32*, i32** %10
%379 = getelementptr inbounds i32, i32* %378, i64 5
%380 = load i32, i32* %379
%381 = add i32 %377, %380
%382 = load i32*, i32** %10
%383 = getelementptr inbounds i32, i32* %382, i64 6
%384 = load i32, i32* %383
%385 = add i32 %381, %384
%386 = load i32*, i32** %10
%387 = getelementptr inbounds i32, i32* %386, i64 7
%388 = load i32, i32* %387
%389 = add i32 %385, %388
%390 = load i32*, i32** %10
%391 = getelementptr inbounds i32, i32* %390, i64 8
%392 = load i32, i32* %391
%393 = add i32 %389, %392
%394 = load i32*, i32** %10
%395 = getelementptr inbounds i32, i32* %394, i64 9
%396 = load i32, i32* %395
%397 = add i32 %393, %396
%398 = load i32*, i32** %10
%399 = getelementptr inbounds i32, i32* %398, i64 10
%400 = load i32, i32* %399
%401 = add i32 %397, %400
%402 = load i32*, i32** %10
%403 = getelementptr inbounds i32, i32* %402, i64 11
%404 = load i32, i32* %403
%405 = add i32 %401, %404
%406 = load i32*, i32** %10
%407 = getelementptr inbounds i32, i32* %406, i64 12
%408 = load i32, i32* %407
%409 = add i32 %405, %408
%410 = load i32*, i32** %10
%411 = getelementptr inbounds i32, i32* %410, i64 13
%412 = load i32, i32* %411
%413 = add i32 %409, %412
%414 = load i32*, i32** %10
%415 = getelementptr inbounds i32, i32* %414, i64 14
%416 = load i32, i32* %415
%417 = add i32 %413, %416
%418 = load i32*, i32** %10
%419 = getelementptr inbounds i32, i32* %418, i64 15
%420 = load i32, i32* %419
%421 = add i32 %417, %420
%422 = load i32*, i32** %10
%423 = getelementptr inbounds i32, i32* %422, i64 16
%424 = load i32, i32* %423
%425 = add i32 %421, %424
%426 = load i32*, i32** %10
%427 = getelementptr inbounds i32, i32* %426, i64 17
%428 = load i32, i32* %427
%429 = add i32 %425, %428
%430 = load i32*, i32** %10
%431 = getelementptr inbounds i32, i32* %430, i64 18
%432 = load i32, i32* %431
%433 = add i32 %429, %432
%434 = load i32*, i32** %10
%435 = getelementptr inbounds i32, i32* %434, i64 19
%436 = load i32, i32* %435
%437 = add i32 %433, %436
%438 = zext i32 %437 to i64
%439 = load volatile i64, i64* %7
%440 = add i64 %439, %438
store volatile i64 %440, i64* %7
%441 = load i32*, i32** %10
%442 = getelementptr inbounds i32, i32* %441, i64 20
store i32* %442, i32** %10
%443 = load i32*, i32** %10
%444 = getelementptr inbounds i32, i32* %443, i64 0
%445 = load i32, i32* %444
%446 = load i32*, i32** %10
%447 = getelementptr inbounds i32, i32* %446, i64 1
%448 = load i32, i32* %447
%449 = add i32 %445, %448
%450 = load i32*, i32** %10
%451 = getelementptr inbounds i32, i32* %450, i64 2
%452 = load i32, i32* %451
%453 = add i32 %449, %452
%454 = load i32*, i32** %10
%455 = getelementptr inbounds i32, i32* %454, i64 3
%456 = load i32, i32* %455
%457 = add i32 %453, %456
%458 = load i32*, i32** %10
%459 = getelementptr inbounds i32, i32* %458, i64 4
%460 = load i32, i32* %459
%461 = add i32 %457, %460
%462 = load i32*, i32** %10
%463 = getelementptr inbounds i32, i32* %462, i64 5
%464 = load i32, i32* %463
%465 = add i32 %461, %464
%466 = load i32*, i32** %10
%467 = getelementptr inbounds i32, i32* %466, i64 6
%468 = load i32, i32* %467
%469 = add i32 %465, %468
%470 = load i32*, i32** %10
%471 = getelementptr inbounds i32, i32* %470, i64 7
%472 = load i32, i32* %471
%473 = add i32 %469, %472
%474 = load i32*, i32** %10
%475 = getelementptr inbounds i32, i32* %474, i64 8
%476 = load i32, i32* %475
%477 = add i32 %473, %476
%478 = load i32*, i32** %10
%479 = getelementptr inbounds i32, i32* %478, i64 9
%480 = load i32, i32* %479
%481 = add i32 %477, %480
%482 = load i32*, i32** %10
%483 = getelementptr inbounds i32, i32* %482, i64 10
%484 = load i32, i32* %483
%485 = add i32 %481, %484
%486 = load i32*, i32** %10
%487 = getelementptr inbounds i32, i32* %486, i64 11
%488 = load i32, i32* %487
%489 = add i32 %485, %488
%490 = load i32*, i32** %10
%491 = getelementptr inbounds i32, i32* %490, i64 12
%492 = load i32, i32* %491
%493 = add i32 %489, %492
%494 = load i32*, i32** %10
%495 = getelementptr inbounds i32, i32* %494, i64 13
%496 = load i32, i32* %495
%497 = add i32 %493, %496
%498 = load i32*, i32** %10
%499 = getelementptr inbounds i32, i32* %498, i64 14
%500 = load i32, i32* %499
%501 = add i32 %497, %500
%502 = load i32*, i32** %10
%503 = getelementptr inbounds i32, i32* %502, i64 15
%504 = load i32, i32* %503
%505 = add i32 %501, %504
%506 = load i32*, i32** %10
%507 = getelementptr inbounds i32, i32* %506, i64 16
%508 = load i32, i32* %507
%509 = add i32 %505, %508
%510 = load i32*, i32** %10
%511 = getelementptr inbounds i32, i32* %510, i64 17
%512 = load i32, i32* %511
%513 = add i32 %509, %512
%514 = load i32*, i32** %10
%515 = getelementptr inbounds i32, i32* %514, i64 18
%516 = load i32, i32* %515
%517 = add i32 %513, %516
%518 = load i32*, i32** %10
%519 = getelementptr inbounds i32, i32* %518, i64 19
%520 = load i32, i32* %519
%521 = add i32 %517, %520
%522 = zext i32 %521 to i64
%523 = load volatile i64, i64* %7
%524 = add i64 %523, %522
store volatile i64 %524, i64* %7
%525 = load i32*, i32** %10
%526 = getelementptr inbounds i32, i32* %525, i64 20
store i32* %526, i32** %10
%527 = load i32*, i32** %10
%528 = getelementptr inbounds i32, i32* %527, i64 0
%529 = load i32, i32* %528
%530 = load i32*, i32** %10
%531 = getelementptr inbounds i32, i32* %530, i64 1
%532 = load i32, i32* %531
%533 = add i32 %529, %532
%534 = load i32*, i32** %10
%535 = getelementptr inbounds i32, i32* %534, i64 2
%536 = load i32, i32* %535
%537 = add i32 %533, %536
%538 = load i32*, i32** %10
%539 = getelementptr inbounds i32, i32* %538, i64 3
%540 = load i32, i32* %539
%541 = add i32 %537, %540
%542 = load i32*, i32** %10
%543 = getelementptr inbounds i32, i32* %542, i64 4
%544 = load i32, i32* %543
%545 = add i32 %541, %544
%546 = load i32*, i32** %10
%547 = getelementptr inbounds i32, i32* %546, i64 5
%548 = load i32, i32* %547
%549 = add i32 %545, %548
%550 = load i32*, i32** %10
%551 = getelementptr inbounds i32, i32* %550, i64 6
%552 = load i32, i32* %551
%553 = add i32 %549, %552
%554 = load i32*, i32** %10
%555 = getelementptr inbounds i32, i32* %554, i64 7
%556 = load i32, i32* %555
%557 = add i32 %553, %556
%558 = load i32*, i32** %10
%559 = getelementptr inbounds i32, i32* %558, i64 8
%560 = load i32, i32* %559
%561 = add i32 %557, %560
%562 = load i32*, i32** %10
%563 = getelementptr inbounds i32, i32* %562, i64 9
%564 = load i32, i32* %563
%565 = add i32 %561, %564
%566 = load i32*, i32** %10
%567 = getelementptr inbounds i32, i32* %566, i64 10
%568 = load i32, i32* %567
%569 = add i32 %565, %568
%570 = load i32*, i32** %10
%571 = getelementptr inbounds i32, i32* %570, i64 11
%572 = load i32, i32* %571
%573 = add i32 %569, %572
%574 = load i32*, i32** %10
%575 = getelementptr inbounds i32, i32* %574, i64 12
%576 = load i32, i32* %575
%577 = add i32 %573, %576
%578 = load i32*, i32** %10
%579 = getelementptr inbounds i32, i32* %578, i64 13
%580 = load i32, i32* %579
%581 = add i32 %577, %580
%582 = load i32*, i32** %10
%583 = getelementptr inbounds i32, i32* %582, i64 14
%584 = load i32, i32* %583
%585 = add i32 %581, %584
%586 = load i32*, i32** %10
%587 = getelementptr inbounds i32, i32* %586, i64 15
%588 = load i32, i32* %587
%589 = add i32 %585, %588
%590 = load i32*, i32** %10
%591 = getelementptr inbounds i32, i32* %590, i64 16
%592 = load i32, i32* %591
%593 = add i32 %589, %592
%594 = load i32*, i32** %10
%595 = getelementptr inbounds i32, i32* %594, i64 17
%596 = load i32, i32* %595
%597 = add i32 %593, %596
%598 = load i32*, i32** %10
%599 = getelementptr inbounds i32, i32* %598, i64 18
%600 = load i32, i32* %599
%601 = add i32 %597, %600
%602 = load i32*, i32** %10
%603 = getelementptr inbounds i32, i32* %602, i64 19
%604 = load i32, i32* %603
%605 = add i32 %601, %604
%606 = zext i32 %605 to i64
%607 = load volatile i64, i64* %7
%608 = add i64 %607, %606
store volatile i64 %608, i64* %7
%609 = load i32*, i32** %10
%610 = getelementptr inbounds i32, i32* %609, i64 20
store i32* %610, i32** %10
%611 = load i32*, i32** %10
%612 = getelementptr inbounds i32, i32* %611, i64 0
%613 = load i32, i32* %612
%614 = load i32*, i32** %10
%615 = getelementptr inbounds i32, i32* %614, i64 1
%616 = load i32, i32* %615
%617 = add i32 %613, %616
%618 = load i32*, i32** %10
%619 = getelementptr inbounds i32, i32* %618, i64 2
%620 = load i32, i32* %619
%621 = add i32 %617, %620
%622 = load i32*, i32** %10
%623 = getelementptr inbounds i32, i32* %622, i64 3
%624 = load i32, i32* %623
%625 = add i32 %621, %624
%626 = load i32*, i32** %10
%627 = getelementptr inbounds i32, i32* %626, i64 4
%628 = load i32, i32* %627
%629 = add i32 %625, %628
%630 = load i32*, i32** %10
%631 = getelementptr inbounds i32, i32* %630, i64 5
%632 = load i32, i32* %631
%633 = add i32 %629, %632
%634 = load i32*, i32** %10
%635 = getelementptr inbounds i32, i32* %634, i64 6
%636 = load i32, i32* %635
%637 = add i32 %633, %636
%638 = load i32*, i32** %10
%639 = getelementptr inbounds i32, i32* %638, i64 7
%640 = load i32, i32* %639
%641 = add i32 %637, %640
%642 = load i32*, i32** %10
%643 = getelementptr inbounds i32, i32* %642, i64 8
%644 = load i32, i32* %643
%645 = add i32 %641, %644
%646 = load i32*, i32** %10
%647 = getelementptr inbounds i32, i32* %646, i64 9
%648 = load i32, i32* %647
%649 = add i32 %645, %648
%650 = load i32*, i32** %10
%651 = getelementptr inbounds i32, i32* %650, i64 10
%652 = load i32, i32* %651
%653 = add i32 %649, %652
%654 = load i32*, i32** %10
%655 = getelementptr inbounds i32, i32* %654, i64 11
%656 = load i32, i32* %655
%657 = add i32 %653, %656
%658 = load i32*, i32** %10
%659 = getelementptr inbounds i32, i32* %658, i64 12
%660 = load i32, i32* %659
%661 = add i32 %657, %660
%662 = load i32*, i32** %10
%663 = getelementptr inbounds i32, i32* %662, i64 13
%664 = load i32, i32* %663
%665 = add i32 %661, %664
%666 = load i32*, i32** %10
%667 = getelementptr inbounds i32, i32* %666, i64 14
%668 = load i32, i32* %667
%669 = add i32 %665, %668
%670 = load i32*, i32** %10
%671 = getelementptr inbounds i32, i32* %670, i64 15
%672 = load i32, i32* %671
%673 = add i32 %669, %672
%674 = load i32*, i32** %10
%675 = getelementptr inbounds i32, i32* %674, i64 16
%676 = load i32, i32* %675
%677 = add i32 %673, %676
%678 = load i32*, i32** %10
%679 = getelementptr inbounds i32, i32* %678, i64 17
%680 = load i32, i32* %679
%681 = add i32 %677, %680
%682 = load i32*, i32** %10
%683 = getelementptr inbounds i32, i32* %682, i64 18
%684 = load i32, i32* %683
%685 = add i32 %681, %684
%686 = load i32*, i32** %10
%687 = getelementptr inbounds i32, i32* %686, i64 19
%688 = load i32, i32* %687
%689 = add i32 %685, %688
%690 = zext i32 %689 to i64
%691 = load volatile i64, i64* %7
%692 = add i64 %691, %690
store volatile i64 %692, i64* %7
%693 = load i32*, i32** %10
%694 = getelementptr inbounds i32, i32* %693, i64 20
store i32* %694, i32** %10
%695 = load i32*, i32** %10
%696 = getelementptr inbounds i32, i32* %695, i64 0
%697 = load i32, i32* %696
%698 = load i32*, i32** %10
%699 = getelementptr inbounds i32, i32* %698, i64 1
%700 = load i32, i32* %699
%701 = add i32 %697, %700
%702 = load i32*, i32** %10
%703 = getelementptr inbounds i32, i32* %702, i64 2
%704 = load i32, i32* %703
%705 = add i32 %701, %704
%706 = load i32*, i32** %10
%707 = getelementptr inbounds i32, i32* %706, i64 3
%708 = load i32, i32* %707
%709 = add i32 %705, %708
%710 = load i32*, i32** %10
%711 = getelementptr inbounds i32, i32* %710, i64 4
%712 = load i32, i32* %711
%713 = add i32 %709, %712
%714 = load i32*, i32** %10
%715 = getelementptr inbounds i32, i32* %714, i64 5
%716 = load i32, i32* %715
%717 = add i32 %713, %716
%718 = load i32*, i32** %10
%719 = getelementptr inbounds i32, i32* %718, i64 6
%720 = load i32, i32* %719
%721 = add i32 %717, %720
%722 = load i32*, i32** %10
%723 = getelementptr inbounds i32, i32* %722, i64 7
%724 = load i32, i32* %723
%725 = add i32 %721, %724
%726 = load i32*, i32** %10
%727 = getelementptr inbounds i32, i32* %726, i64 8
%728 = load i32, i32* %727
%729 = add i32 %725, %728
%730 = load i32*, i32** %10
%731 = getelementptr inbounds i32, i32* %730, i64 9
%732 = load i32, i32* %731
%733 = add i32 %729, %732
%734 = load i32*, i32** %10
%735 = getelementptr inbounds i32, i32* %734, i64 10
%736 = load i32, i32* %735
%737 = add i32 %733, %736
%738 = load i32*, i32** %10
%739 = getelementptr inbounds i32, i32* %738, i64 11
%740 = load i32, i32* %739
%741 = add i32 %737, %740
%742 = load i32*, i32** %10
%743 = getelementptr inbounds i32, i32* %742, i64 12
%744 = load i32, i32* %743
%745 = add i32 %741, %744
%746 = load i32*, i32** %10
%747 = getelementptr inbounds i32, i32* %746, i64 13
%748 = load i32, i32* %747
%749 = add i32 %745, %748
%750 = load i32*, i32** %10
%751 = getelementptr inbounds i32, i32* %750, i64 14
%752 = load i32, i32* %751
%753 = add i32 %749, %752
%754 = load i32*, i32** %10
%755 = getelementptr inbounds i32, i32* %754, i64 15
%756 = load i32, i32* %755
%757 = add i32 %753, %756
%758 = load i32*, i32** %10
%759 = getelementptr inbounds i32, i32* %758, i64 16
%760 = load i32, i32* %759
%761 = add i32 %757, %760
%762 = load i32*, i32** %10
%763 = getelementptr inbounds i32, i32* %762, i64 17
%764 = load i32, i32* %763
%765 = add i32 %761, %764
%766 = load i32*, i32** %10
%767 = getelementptr inbounds i32, i32* %766, i64 18
%768 = load i32, i32* %767
%769 = add i32 %765, %768
%770 = load i32*, i32** %10
%771 = getelementptr inbounds i32, i32* %770, i64 19
%772 = load i32, i32* %771
%773 = add i32 %769, %772
%774 = zext i32 %773 to i64
%775 = load volatile i64, i64* %7
%776 = add i64 %775, %774
store volatile i64 %776, i64* %7
%777 = load i32*, i32** %10
%778 = getelementptr inbounds i32, i32* %777, i64 20
store i32* %778, i32** %10
%779 = load i32*, i32** %10
%780 = getelementptr inbounds i32, i32* %779, i64 0
%781 = load i32, i32* %780
%782 = load i32*, i32** %10
%783 = getelementptr inbounds i32, i32* %782, i64 1
%784 = load i32, i32* %783
%785 = add i32 %781, %784
%786 = load i32*, i32** %10
%787 = getelementptr inbounds i32, i32* %786, i64 2
%788 = load i32, i32* %787
%789 = add i32 %785, %788
%790 = load i32*, i32** %10
%791 = getelementptr inbounds i32, i32* %790, i64 3
%792 = load i32, i32* %791
%793 = add i32 %789, %792
%794 = load i32*, i32** %10
%795 = getelementptr inbounds i32, i32* %794, i64 4
%796 = load i32, i32* %795
%797 = add i32 %793, %796
%798 = load i32*, i32** %10
%799 = getelementptr inbounds i32, i32* %798, i64 5
%800 = load i32, i32* %799
%801 = add i32 %797, %800
%802 = load i32*, i32** %10
%803 = getelementptr inbounds i32, i32* %802, i64 6
%804 = load i32, i32* %803
%805 = add i32 %801, %804
%806 = load i32*, i32** %10
%807 = getelementptr inbounds i32, i32* %806, i64 7
%808 = load i32, i32* %807
%809 = add i32 %805, %808
%810 = load i32*, i32** %10
%811 = getelementptr inbounds i32, i32* %810, i64 8
%812 = load i32, i32* %811
%813 = add i32 %809, %812
%814 = load i32*, i32** %10
%815 = getelementptr inbounds i32, i32* %814, i64 9
%816 = load i32, i32* %815
%817 = add i32 %813, %816
%818 = load i32*, i32** %10
%819 = getelementptr inbounds i32, i32* %818, i64 10
%820 = load i32, i32* %819
%821 = add i32 %817, %820
%822 = load i32*, i32** %10
%823 = getelementptr inbounds i32, i32* %822, i64 11
%824 = load i32, i32* %823
%825 = add i32 %821, %824
%826 = load i32*, i32** %10
%827 = getelementptr inbounds i32, i32* %826, i64 12
%828 = load i32, i32* %827
%829 = add i32 %825, %828
%830 = load i32*, i32** %10
%831 = getelementptr inbounds i32, i32* %830, i64 13
%832 = load i32, i32* %831
%833 = add i32 %829, %832
%834 = load i32*, i32** %10
%835 = getelementptr inbounds i32, i32* %834, i64 14
%836 = load i32, i32* %835
%837 = add i32 %833, %836
%838 = load i32*, i32** %10
%839 = getelementptr inbounds i32, i32* %838, i64 15
%840 = load i32, i32* %839
%841 = add i32 %837, %840
%842 = load i32*, i32** %10
%843 = getelementptr inbounds i32, i32* %842, i64 16
%844 = load i32, i32* %843
%845 = add i32 %841, %844
%846 = load i32*, i32** %10
%847 = getelementptr inbounds i32, i32* %846, i64 17
%848 = load i32, i32* %847
%849 = add i32 %845, %848
%850 = load i32*, i32** %10
%851 = getelementptr inbounds i32, i32* %850, i64 18
%852 = load i32, i32* %851
%853 = add i32 %849, %852
%854 = load i32*, i32** %10
%855 = getelementptr inbounds i32, i32* %854, i64 19
%856 = load i32, i32* %855
%857 = add i32 %853, %856
%858 = zext i32 %857 to i64
%859 = load volatile i64, i64* %7
%860 = add i64 %859, %858
store volatile i64 %860, i64* %7
%861 = load i32*, i32** %10
%862 = getelementptr inbounds i32, i32* %861, i64 20
store i32* %862, i32** %10
br label %18
863: ; preds = %18
br label %864
864: ; preds = %863
%865 = load i32, i32* %9
%866 = add nsw i32 %865, -1
store i32 %866, i32* %9
br label %13
867: ; preds = %13
ret void
}

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