void op_inc_addr(void) {
  asm("inc %rsi");
  asm("cmp %rcx, %rsi");
  asm("jl _exit");
  asm("mov %rsi, %rdx");
  asm("sub %rbx, %rdx");
  asm("mov %rdx, %rdi");
  asm("add $0x20, %rdi");
  asm("push %rsi");
  asm("push %rbx");
  asm("push %rcx");
  asm("push %rdi");
  asm("push %rdx");
  asm("mov %rdi, %rsi");
  asm("mov %rbx, %rdi");
  asm("call realloc");
  asm("pop %rdx");
  asm("pop %rdi");
  asm("pop %rcx");
  asm("pop %rbx");
  asm("pop %rsi");
  asm("cmp $0, %rax");
  asm("jne _continue_alloc");
  asm("push $1");
  asm("call _abort");
  asm("_continue_alloc:");
  asm("mov %rax, %rbx");
  asm("mov %rbx, %rsi");
  asm("add %rdx, %rsi");
  asm("mov %rbx, %rcx");
  asm("add %rdi, %rcx");
  asm("mov %rsi, %rax");
  asm("_zero_memset1:");
  asm("movb $0, (%rax)");
  asm("cmp %rcx, %rax");
  asm("je  _exit");
  asm("inc %rax");
  asm("jmp _zero_memset1");
  asm("_exit:");
}


x86 assembly (clang, -O0):
<op_inc_addr>:
push   %rbp
mov    %rsp,%rbp
inc    %rsi
cmp    %rcx,%rsi
jl     1189 <_exit>
mov    %rsi,%rdx
sub    %rbx,%rdx
mov    %rdx,%rdi
add    $0x20,%rdi
push   %rsi
push   %rbx
push   %rcx
push   %rdi
push   %rdx
mov    %rdi,%rsi
mov    %rbx,%rdi
call   1030 <realloc@plt>
pop    %rdx
pop    %rdi
pop    %rcx
pop    %rbx
pop    %rsi
cmp    $0x0,%rax
jne    1163 <_continue_alloc>
push   $0x1
call   1040 <_abort@plt>

x86 assembly (clang, -O2):
<op_inc_addr>:
inc    %rsi
cmp    %rcx,%rsi
jl     1176 <_exit>
mov    %rsi,%rdx
sub    %rbx,%rdx
mov    %rdx,%rdi
add    $0x20,%rdi
push   %rsi
push   %rbx
push   %rcx
push   %rdi
push   %rdx
mov    %rdi,%rsi
mov    %rbx,%rdi
call   1030 <realloc@plt>
pop    %rdx
pop    %rdi
pop    %rcx
pop    %rbx
pop    %rsi
cmp    $0x0,%rax
jne    1157 <_continue_alloc>
push   $0x1
call   1040 <_abort@plt>

LLVM IR (-O0):
define void @op_inc_addr() {
ret void
}

LLVM IR (-O2):
define void @op_inc_addr() {
tail call void asm sideeffect "inc %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "cmp %rcx, %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "jl _exit", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rsi, %rdx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "sub %rbx, %rdx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rdx, %rdi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "add $$0x20, %rdi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push %rbx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push %rcx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push %rdi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push %rdx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rdi, %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rbx, %rdi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "call realloc", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "pop %rdx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "pop %rdi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "pop %rcx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "pop %rbx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "pop %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "cmp $$0, %rax", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "jne _continue_alloc", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "push $$1", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "call _abort", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "_continue_alloc:", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rax, %rbx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rbx, %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "add %rdx, %rsi", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rbx, %rcx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "add %rdi, %rcx", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "mov %rsi, %rax", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "_zero_memset1:", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "movb $$0, (%rax)", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "cmp %rcx, %rax", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "je _exit", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "inc %rax", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "jmp _zero_memset1", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "_exit:", "~{dirflag},~{fpsr},~{flags}"()
ret void
}