void main() {
  signed char i = 0;
  int j = 0;
  int x = 0;
  int p = 0;
  int n = 0;
  signed char y = 0;
  signed char o = 0;
  x = 466;
  p = 7;
  n = 3;
  y = 164;
  i = ~1;
  printf("i = %d; and in binary = %d;\n", i, dec_bin(i));
  printf("x = %d & ~ i = %d = %d;\n", x, i, x & (~i));
  printf("x = %d | ~ i = %d = %d;\n", dec_bin(x), dec_bin(i),
         dec_bin(x | (~i)));
  j = -0;
  printf("j = %d; and in binary = %d;\n", j, dec_bin(j));
  printf("x = %d | ~ i = %d = %d;\n\n", dec_bin(x), dec_bin(i),
         dec_bin(x | (~i)));
  y = 127;
  printf("y in dec = %8d; and in binary = %8d; and in oct = %8o;\n", y,
         dec_bin(y), y);
  printf("~ y in dec = %6d; and in binary = %8d; and in oct = %8o;\n\n", ~y,
         ~dec_bin(y), ~y);
  o = 077;
  printf("o in dec = %8d; and in binary = %8d; and in oct = %8o\n", o,
         dec_bin(o), o);
  printf("~ o in dec = %6d; and in binary = %8d; and in oct = %8o\n\n", ~o,
         ~dec_bin(o), ~o);
  i = ~(~0 << n) << n;
  printf("i in dec = %8d; and in binary = %8d; and in oct = %8o;\n", i,
         dec_bin(i), i);
  printf("~ i in dec = %6d; and in binary = %8d; and in oct = %8o;\n\n", ~i,
         ~dec_bin(i), ~i);
  printf("y ^ i in dec = %4d; and in binary = %8d; and in oct = %8o;\n",
         (y ^ i), dec_bin(y ^ i), (y ^ i));
  printf("~ y ^ i in dec =%d; and in binary = %8d; and in oct = %8o;\n",
         ~(y ^ i), ~(dec_bin(y ^ i)), ~(y ^ i));
  printf("-72 in binary = %29d; and in oct = %o;\n\n", dec_bin(-72), -72);
  printf("13 in binary = %29d;\n", dec_bin(-13));
  printf("~13 in binary = %28d; and in dec = %d;\n\n", ~(dec_bin(-13)), ~13);
  printf("14 in binary = %29d;\n", dec_bin(-14));
  printf("~14 in binary = %28d; and in dec = %d;\n\n", ~(dec_bin(-14)), ~14);
  printf("-52 in binary = %29d;\n", dec_bin(-52));
  printf("0x76 in binary = %28d;\n", dec_bin(0x76));
  printf("127 in binary = %29d;\n\n", dec_bin(127));
  printf("1 in binary = %31d;\n", dec_bin(1));
  printf("-1 in binary = %30d;\n", dec_bin(-1));
  printf("~1 in binary = %30d; and in dec = %8d;\n", dec_bin(~1), (~1));
  printf("~ ( -1 ) in binary = %24d; and in dec = %8d;\n\n", dec_bin(~(-1)),
         (~(-1)));
  printf("2 in binary = %31d;\n", dec_bin(2));
  printf("-2 in binary = %30d;\n", dec_bin(-2));
  printf("~2 in binary = %30d;and in dec = %8d;\n", dec_bin(~2), (~2));
  printf("~ ( -2 ) in binary = %24d;\n", dec_bin(~(-2)));
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x50,%rsp
movb   $0x0,-0x1(%rbp)
movl   $0x0,-0x8(%rbp)
movl   $0x0,-0xc(%rbp)
movl   $0x0,-0x10(%rbp)
movl   $0x0,-0x14(%rbp)
movb   $0x0,-0x15(%rbp)
movb   $0x0,-0x16(%rbp)
movl   $0x1d2,-0xc(%rbp)
movl   $0x7,-0x10(%rbp)
movl   $0x3,-0x14(%rbp)
movb   $0xa4,-0x15(%rbp)
movb   $0xfe,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
mov    %eax,-0x50(%rbp)
movsbl -0x1(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x50(%rbp),%esi
mov    %eax,%edx
lea    0xe75(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%esi
movsbl -0x1(%rbp),%edx
mov    -0xc(%rbp),%ecx
movsbl -0x1(%rbp),%eax
xor    $0xffffffff,%eax
and    %eax,%ecx
lea    0xe71(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,-0x4c(%rbp)
movsbl -0x1(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,-0x48(%rbp)
mov    -0xc(%rbp),%edi
movsbl -0x1(%rbp),%eax
xor    $0xffffffff,%eax
or     %eax,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x4c(%rbp),%esi
mov    -0x48(%rbp),%edx
mov    %eax,%ecx
lea    0xe46(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movl   $0x0,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x44(%rbp)
mov    -0x8(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x44(%rbp),%esi
mov    %eax,%edx
lea    0xe35(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0xc(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,-0x40(%rbp)
movsbl -0x1(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,-0x3c(%rbp)
mov    -0xc(%rbp),%edi
movsbl -0x1(%rbp),%eax
xor    $0xffffffff,%eax
or     %eax,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x40(%rbp),%esi
mov    -0x3c(%rbp),%edx
mov    %eax,%ecx
lea    0xe0e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movb   $0x7f,-0x15(%rbp)
movsbl -0x15(%rbp),%eax
mov    %eax,-0x38(%rbp)
movsbl -0x15(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x38(%rbp),%esi
mov    %eax,%edx
movsbl -0x15(%rbp),%ecx
lea    0xdfb(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x15(%rbp),%eax
xor    $0xffffffff,%eax
mov    %eax,-0x34(%rbp)
movsbl -0x15(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x34(%rbp),%esi
mov    %eax,%edx
xor    $0xffffffff,%edx
movsbl -0x15(%rbp),%ecx
xor    $0xffffffff,%ecx
lea    0xe01(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movb   $0x3f,-0x16(%rbp)
movsbl -0x16(%rbp),%eax
mov    %eax,-0x30(%rbp)
movsbl -0x16(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x30(%rbp),%esi
mov    %eax,%edx
movsbl -0x16(%rbp),%ecx
lea    0xe0f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x16(%rbp),%eax
xor    $0xffffffff,%eax
mov    %eax,-0x2c(%rbp)
movsbl -0x16(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x2c(%rbp),%esi
mov    %eax,%edx
xor    $0xffffffff,%edx
movsbl -0x16(%rbp),%ecx
xor    $0xffffffff,%ecx
lea    0xe14(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x14(%rbp),%ecx
mov    $0xffffffff,%eax
shl    %cl,%eax
xor    $0xffffffff,%eax
mov    -0x14(%rbp),%ecx
shl    %cl,%eax
mov    %al,-0x1(%rbp)
movsbl -0x1(%rbp),%eax
mov    %eax,-0x28(%rbp)
movsbl -0x1(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x28(%rbp),%esi
mov    %eax,%edx
movsbl -0x1(%rbp),%ecx
lea    0xe10(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x1(%rbp),%eax
xor    $0xffffffff,%eax
mov    %eax,-0x24(%rbp)
movsbl -0x1(%rbp),%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x24(%rbp),%esi
mov    %eax,%edx
xor    $0xffffffff,%edx
movsbl -0x1(%rbp),%ecx
xor    $0xffffffff,%ecx
lea    0xe16(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x15(%rbp),%eax
movsbl -0x1(%rbp),%ecx
xor    %ecx,%eax
mov    %eax,-0x20(%rbp)
movsbl -0x15(%rbp),%edi
movsbl -0x1(%rbp),%eax
xor    %eax,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x20(%rbp),%esi
mov    %eax,%edx
movsbl -0x15(%rbp),%ecx
movsbl -0x1(%rbp),%eax
xor    %eax,%ecx
lea    0xe16(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
movsbl -0x15(%rbp),%eax
movsbl -0x1(%rbp),%ecx
xor    %ecx,%eax
xor    $0xffffffff,%eax
mov    %eax,-0x1c(%rbp)
movsbl -0x15(%rbp),%edi
movsbl -0x1(%rbp),%eax
xor    %eax,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    -0x1c(%rbp),%esi
mov    %eax,%edx
xor    $0xffffffff,%edx
movsbl -0x15(%rbp),%ecx
movsbl -0x1(%rbp),%eax
xor    %eax,%ecx
xor    $0xffffffff,%ecx
lea    0xe0e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xffffffb8,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe2e(%rip),%rdi
mov    $0xffffffb8,%edx
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffff3,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe36(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffff3,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
xor    $0xffffffff,%esi
lea    0xe2d(%rip),%rdi
mov    $0xfffffff2,%edx
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffff2,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe35(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffff2,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
xor    $0xffffffff,%esi
lea    0xe2c(%rip),%rdi
mov    $0xfffffff1,%edx
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xffffffcc,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe34(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x76,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe2f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x7f,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe2b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe27(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xffffffff,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe20(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffffe,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe1a(%rip),%rdi
mov    $0xfffffffe,%edx
mov    $0x0,%al
call   1030 <printf@plt>
xor    %edi,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe24(%rip),%rdi
xor    %edx,%edx
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x2,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe35(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffffe,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe2e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0xfffffffd,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe28(%rip),%rdi
mov    $0xfffffffd,%edx
mov    $0x0,%al
call   1030 <printf@plt>
mov    $0x1,%edi
mov    $0x0,%al
call   1040 <dec_bin@plt>
mov    %eax,%esi
lea    0xe2e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x50,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
push   %rax
mov    $0xfffffffe,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xeca(%rip),%rdi
mov    $0xfffffffe,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1030 <printf@plt>
lea    0xed2(%rip),%rdi
mov    $0x1d2,%esi
mov    $0xfffffffe,%edx
xor    %ecx,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x1d2,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
mov    %eax,%ebx
mov    $0xfffffffe,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
mov    %eax,%ebp
mov    $0x1d3,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xea9(%rip),%rdi
mov    %ebx,%esi
mov    %ebp,%edx
mov    %eax,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xea5(%rip),%rdi
xor    %esi,%esi
mov    %eax,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x1d2,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
mov    %eax,%ebx
mov    $0xfffffffe,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
mov    %eax,%ebp
mov    $0x1d3,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xe88(%rip),%rdi
mov    %ebx,%esi
mov    %ebp,%edx
mov    %eax,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x7f,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xe82(%rip),%rdi
mov    $0x7f,%esi
mov    %eax,%edx
mov    $0x7f,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x7f,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xe92(%rip),%rdi
mov    $0xffffff80,%esi
mov    %eax,%edx
mov    $0xffffff80,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x3f,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xea7(%rip),%rdi
mov    $0x3f,%esi
mov    %eax,%edx
mov    $0x3f,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x3f,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xeb6(%rip),%rdi
mov    $0xffffffc0,%esi
mov    %eax,%edx
mov    $0xffffffc0,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x38,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xeca(%rip),%rdi
mov    $0x38,%esi
mov    %eax,%edx
mov    $0x38,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x38,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xeda(%rip),%rdi
mov    $0xffffffc7,%esi
mov    %eax,%edx
mov    $0xffffffc7,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x47,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xeef(%rip),%rdi
mov    $0x47,%esi
mov    %eax,%edx
mov    $0x47,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x47,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xf03(%rip),%rdi
mov    $0xffffffb8,%esi
mov    %eax,%edx
mov    $0xffffffb8,%ecx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xffffffb8,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf19(%rip),%rdi
mov    %eax,%esi
mov    $0xffffffb8,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffff3,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf21(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffff3,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xf19(%rip),%rdi
mov    %eax,%esi
mov    $0xfffffff2,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffff2,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf21(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffff2,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
not    %eax
lea    0xf19(%rip),%rdi
mov    %eax,%esi
mov    $0xfffffff1,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xffffffcc,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf21(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x76,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf1c(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x7f,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf18(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf14(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xffffffff,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf0d(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffffe,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf07(%rip),%rdi
mov    %eax,%esi
mov    $0xfffffffe,%edx
xor    %eax,%eax
call   1030 <printf@plt>
xor    %edi,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf11(%rip),%rdi
mov    %eax,%esi
xor    %edx,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x2,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf22(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffffe,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf1b(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0xfffffffd,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf15(%rip),%rdi
mov    %eax,%esi
mov    $0xfffffffd,%edx
xor    %eax,%eax
call   1030 <printf@plt>
mov    $0x1,%edi
xor    %eax,%eax
call   1040 <dec_bin@plt>
lea    0xf1b(%rip),%rdi
mov    %eax,%esi
xor    %eax,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [29 x i8] c"i = %d; and in binary = %d;\0A\00"
@.str.1 = [25 x i8] c"x = %d & ~ i = %d = %d;\0A\00"
@.str.2 = [25 x i8] c"x = %d | ~ i = %d = %d;\0A\00"
@.str.3 = [29 x i8] c"j = %d; and in binary = %d;\0A\00"
@.str.4 = [26 x i8] c"x = %d | ~ i = %d = %d;\0A\0A\00"
@.str.5 = [56 x i8] c"y in dec = %8d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.6 = [59 x i8] c"~ y in dec = %6d; and in binary = %8d; and in oct = %8o;\0A\0A\00"
@.str.7 = [55 x i8] c"o in dec = %8d; and in binary = %8d; and in oct = %8o\0A\00"
@.str.8 = [58 x i8] c"~ o in dec = %6d; and in binary = %8d; and in oct = %8o\0A\0A\00"
@.str.9 = [56 x i8] c"i in dec = %8d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.10 = [59 x i8] c"~ i in dec = %6d; and in binary = %8d; and in oct = %8o;\0A\0A\00"
@.str.11 = [60 x i8] c"y ^ i in dec = %4d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.12 = [60 x i8] c"~ y ^ i in dec =%d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.13 = [41 x i8] c"-72 in binary = %29d; and in oct = %o;\0A\0A\00"
@.str.14 = [22 x i8] c"13 in binary = %29d;\0A\00"
@.str.15 = [41 x i8] c"~13 in binary = %28d; and in dec = %d;\0A\0A\00"
@.str.16 = [22 x i8] c"14 in binary = %29d;\0A\00"
@.str.17 = [41 x i8] c"~14 in binary = %28d; and in dec = %d;\0A\0A\00"
@.str.18 = [23 x i8] c"-52 in binary = %29d;\0A\00"
@.str.19 = [24 x i8] c"0x76 in binary = %28d;\0A\00"
@.str.20 = [24 x i8] c"127 in binary = %29d;\0A\0A\00"
@.str.21 = [21 x i8] c"1 in binary = %31d;\0A\00"
@.str.22 = [22 x i8] c"-1 in binary = %30d;\0A\00"
@.str.23 = [40 x i8] c"~1 in binary = %30d; and in dec = %8d;\0A\00"
@.str.24 = [47 x i8] c"~ ( -1 ) in binary = %24d; and in dec = %8d;\0A\0A\00"
@.str.25 = [21 x i8] c"2 in binary = %31d;\0A\00"
@.str.26 = [22 x i8] c"-2 in binary = %30d;\0A\00"
@.str.27 = [39 x i8] c"~2 in binary = %30d;and in dec = %8d;\0A\00"
@.str.28 = [28 x i8] c"~ ( -2 ) in binary = %24d;\0A\00"
define void @main() {
%1 = alloca i8
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i8
%7 = alloca i8
store i8 0, i8* %1
store i32 0, i32* %2
store i32 0, i32* %3
store i32 0, i32* %4
store i32 0, i32* %5
store i8 0, i8* %6
store i8 0, i8* %7
store i32 466, i32* %3
store i32 7, i32* %4
store i32 3, i32* %5
store i8 -92, i8* %6
store i8 -2, i8* %1
%8 = load i8, i8* %1
%9 = sext i8 %8 to i32
%10 = load i8, i8* %1
%11 = sext i8 %10 to i32
%12 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %11)
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0), i32 %9, i32 %12)
%14 = load i32, i32* %3
%15 = load i8, i8* %1
%16 = sext i8 %15 to i32
%17 = load i32, i32* %3
%18 = load i8, i8* %1
%19 = sext i8 %18 to i32
%20 = xor i32 %19, -1
%21 = and i32 %17, %20
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1, i64 0, i64 0), i32 %14, i32 %16, i32 %21)
%23 = load i32, i32* %3
%24 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %23)
%25 = load i8, i8* %1
%26 = sext i8 %25 to i32
%27 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %26)
%28 = load i32, i32* %3
%29 = load i8, i8* %1
%30 = sext i8 %29 to i32
%31 = xor i32 %30, -1
%32 = or i32 %28, %31
%33 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %32)
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2, i64 0, i64 0), i32 %24, i32 %27, i32 %33)
store i32 0, i32* %2
%35 = load i32, i32* %2
%36 = load i32, i32* %2
%37 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %36)
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 %35, i32 %37)
%39 = load i32, i32* %3
%40 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %39)
%41 = load i8, i8* %1
%42 = sext i8 %41 to i32
%43 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %42)
%44 = load i32, i32* %3
%45 = load i8, i8* %1
%46 = sext i8 %45 to i32
%47 = xor i32 %46, -1
%48 = or i32 %44, %47
%49 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %48)
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0), i32 %40, i32 %43, i32 %49)
store i8 127, i8* %6
%51 = load i8, i8* %6
%52 = sext i8 %51 to i32
%53 = load i8, i8* %6
%54 = sext i8 %53 to i32
%55 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %54)
%56 = load i8, i8* %6
%57 = sext i8 %56 to i32
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.5, i64 0, i64 0), i32 %52, i32 %55, i32 %57)
%59 = load i8, i8* %6
%60 = sext i8 %59 to i32
%61 = xor i32 %60, -1
%62 = load i8, i8* %6
%63 = sext i8 %62 to i32
%64 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %63)
%65 = xor i32 %64, -1
%66 = load i8, i8* %6
%67 = sext i8 %66 to i32
%68 = xor i32 %67, -1
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.6, i64 0, i64 0), i32 %61, i32 %65, i32 %68)
store i8 63, i8* %7
%70 = load i8, i8* %7
%71 = sext i8 %70 to i32
%72 = load i8, i8* %7
%73 = sext i8 %72 to i32
%74 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %73)
%75 = load i8, i8* %7
%76 = sext i8 %75 to i32
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.7, i64 0, i64 0), i32 %71, i32 %74, i32 %76)
%78 = load i8, i8* %7
%79 = sext i8 %78 to i32
%80 = xor i32 %79, -1
%81 = load i8, i8* %7
%82 = sext i8 %81 to i32
%83 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %82)
%84 = xor i32 %83, -1
%85 = load i8, i8* %7
%86 = sext i8 %85 to i32
%87 = xor i32 %86, -1
%88 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.8, i64 0, i64 0), i32 %80, i32 %84, i32 %87)
%89 = load i32, i32* %5
%90 = shl i32 -1, %89
%91 = xor i32 %90, -1
%92 = load i32, i32* %5
%93 = shl i32 %91, %92
%94 = trunc i32 %93 to i8
store i8 %94, i8* %1
%95 = load i8, i8* %1
%96 = sext i8 %95 to i32
%97 = load i8, i8* %1
%98 = sext i8 %97 to i32
%99 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %98)
%100 = load i8, i8* %1
%101 = sext i8 %100 to i32
%102 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.9, i64 0, i64 0), i32 %96, i32 %99, i32 %101)
%103 = load i8, i8* %1
%104 = sext i8 %103 to i32
%105 = xor i32 %104, -1
%106 = load i8, i8* %1
%107 = sext i8 %106 to i32
%108 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %107)
%109 = xor i32 %108, -1
%110 = load i8, i8* %1
%111 = sext i8 %110 to i32
%112 = xor i32 %111, -1
%113 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.10, i64 0, i64 0), i32 %105, i32 %109, i32 %112)
%114 = load i8, i8* %6
%115 = sext i8 %114 to i32
%116 = load i8, i8* %1
%117 = sext i8 %116 to i32
%118 = xor i32 %115, %117
%119 = load i8, i8* %6
%120 = sext i8 %119 to i32
%121 = load i8, i8* %1
%122 = sext i8 %121 to i32
%123 = xor i32 %120, %122
%124 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %123)
%125 = load i8, i8* %6
%126 = sext i8 %125 to i32
%127 = load i8, i8* %1
%128 = sext i8 %127 to i32
%129 = xor i32 %126, %128
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.11, i64 0, i64 0), i32 %118, i32 %124, i32 %129)
%131 = load i8, i8* %6
%132 = sext i8 %131 to i32
%133 = load i8, i8* %1
%134 = sext i8 %133 to i32
%135 = xor i32 %132, %134
%136 = xor i32 %135, -1
%137 = load i8, i8* %6
%138 = sext i8 %137 to i32
%139 = load i8, i8* %1
%140 = sext i8 %139 to i32
%141 = xor i32 %138, %140
%142 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 %141)
%143 = xor i32 %142, -1
%144 = load i8, i8* %6
%145 = sext i8 %144 to i32
%146 = load i8, i8* %1
%147 = sext i8 %146 to i32
%148 = xor i32 %145, %147
%149 = xor i32 %148, -1
%150 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.12, i64 0, i64 0), i32 %136, i32 %143, i32 %149)
%151 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -72)
%152 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.13, i64 0, i64 0), i32 %151, i32 -72)
%153 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -13)
%154 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.14, i64 0, i64 0), i32 %153)
%155 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -13)
%156 = xor i32 %155, -1
%157 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.15, i64 0, i64 0), i32 %156, i32 -14)
%158 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -14)
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.16, i64 0, i64 0), i32 %158)
%160 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -14)
%161 = xor i32 %160, -1
%162 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str.17, i64 0, i64 0), i32 %161, i32 -15)
%163 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -52)
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.18, i64 0, i64 0), i32 %163)
%165 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 118)
%166 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.19, i64 0, i64 0), i32 %165)
%167 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 127)
%168 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), i32 %167)
%169 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 1)
%170 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), i32 %169)
%171 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -1)
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), i32 %171)
%173 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.23, i64 0, i64 0), i32 %173, i32 -2)
%175 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 0)
%176 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.24, i64 0, i64 0), i32 %175, i32 0)
%177 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 2)
%178 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.25, i64 0, i64 0), i32 %177)
%179 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%180 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.26, i64 0, i64 0), i32 %179)
%181 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -3)
%182 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([39 x i8], [39 x i8]* @.str.27, i64 0, i64 0), i32 %181, i32 -3)
%183 = call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 1)
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i64 0, i64 0), i32 %183)
ret void
}

LLVM IR (-O2):
@.str = [29 x i8] c"i = %d; and in binary = %d;\0A\00"
@.str.1 = [25 x i8] c"x = %d & ~ i = %d = %d;\0A\00"
@.str.2 = [25 x i8] c"x = %d | ~ i = %d = %d;\0A\00"
@.str.3 = [29 x i8] c"j = %d; and in binary = %d;\0A\00"
@.str.4 = [26 x i8] c"x = %d | ~ i = %d = %d;\0A\0A\00"
@.str.5 = [56 x i8] c"y in dec = %8d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.6 = [59 x i8] c"~ y in dec = %6d; and in binary = %8d; and in oct = %8o;\0A\0A\00"
@.str.7 = [55 x i8] c"o in dec = %8d; and in binary = %8d; and in oct = %8o\0A\00"
@.str.8 = [58 x i8] c"~ o in dec = %6d; and in binary = %8d; and in oct = %8o\0A\0A\00"
@.str.9 = [56 x i8] c"i in dec = %8d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.10 = [59 x i8] c"~ i in dec = %6d; and in binary = %8d; and in oct = %8o;\0A\0A\00"
@.str.11 = [60 x i8] c"y ^ i in dec = %4d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.12 = [60 x i8] c"~ y ^ i in dec =%d; and in binary = %8d; and in oct = %8o;\0A\00"
@.str.13 = [41 x i8] c"-72 in binary = %29d; and in oct = %o;\0A\0A\00"
@.str.14 = [22 x i8] c"13 in binary = %29d;\0A\00"
@.str.15 = [41 x i8] c"~13 in binary = %28d; and in dec = %d;\0A\0A\00"
@.str.16 = [22 x i8] c"14 in binary = %29d;\0A\00"
@.str.17 = [41 x i8] c"~14 in binary = %28d; and in dec = %d;\0A\0A\00"
@.str.18 = [23 x i8] c"-52 in binary = %29d;\0A\00"
@.str.19 = [24 x i8] c"0x76 in binary = %28d;\0A\00"
@.str.20 = [24 x i8] c"127 in binary = %29d;\0A\0A\00"
@.str.21 = [21 x i8] c"1 in binary = %31d;\0A\00"
@.str.22 = [22 x i8] c"-1 in binary = %30d;\0A\00"
@.str.23 = [40 x i8] c"~1 in binary = %30d; and in dec = %8d;\0A\00"
@.str.24 = [47 x i8] c"~ ( -1 ) in binary = %24d; and in dec = %8d;\0A\0A\00"
@.str.25 = [21 x i8] c"2 in binary = %31d;\0A\00"
@.str.26 = [22 x i8] c"-2 in binary = %30d;\0A\00"
@.str.27 = [39 x i8] c"~2 in binary = %30d;and in dec = %8d;\0A\00"
@.str.28 = [28 x i8] c"~ ( -2 ) in binary = %24d;\0A\00"
define void @main() {
%1 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str, i64 0, i64 0), i32 -2, i32 %1)
%3 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1, i64 0, i64 0), i32 466, i32 -2, i32 0)
%4 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 466)
%5 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%6 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 467)
%7 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2, i64 0, i64 0), i32 %4, i32 %5, i32 %6)
%8 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 0)
%9 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([29 x i8], [29 x i8]* @.str.3, i64 0, i64 0), i32 0, i32 %8)
%10 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 466)
%11 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%12 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 467)
%13 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @.str.4, i64 0, i64 0), i32 %10, i32 %11, i32 %12)
%14 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 127)
%15 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.5, i64 0, i64 0), i32 127, i32 %14, i32 127)
%16 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 127)
%17 = xor i32 %16, -1
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.6, i64 0, i64 0), i32 -128, i32 %17, i32 -128)
%19 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 63)
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.7, i64 0, i64 0), i32 63, i32 %19, i32 63)
%21 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 63)
%22 = xor i32 %21, -1
%23 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @.str.8, i64 0, i64 0), i32 -64, i32 %22, i32 -64)
%24 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 56)
%25 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @.str.9, i64 0, i64 0), i32 56, i32 %24, i32 56)
%26 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 56)
%27 = xor i32 %26, -1
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @.str.10, i64 0, i64 0), i32 -57, i32 %27, i32 -57)
%29 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 71)
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.11, i64 0, i64 0), i32 71, i32 %29, i32 71)
%31 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 71)
%32 = xor i32 %31, -1
%33 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([60 x i8], [60 x i8]* @.str.12, i64 0, i64 0), i32 -72, i32 %32, i32 -72)
%34 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -72)
%35 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.13, i64 0, i64 0), i32 %34, i32 -72)
%36 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -13)
%37 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.14, i64 0, i64 0), i32 %36)
%38 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -13)
%39 = xor i32 %38, -1
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.15, i64 0, i64 0), i32 %39, i32 -14)
%41 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -14)
%42 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.16, i64 0, i64 0), i32 %41)
%43 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -14)
%44 = xor i32 %43, -1
%45 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @.str.17, i64 0, i64 0), i32 %44, i32 -15)
%46 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -52)
%47 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.18, i64 0, i64 0), i32 %46)
%48 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 118)
%49 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.19, i64 0, i64 0), i32 %48)
%50 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 127)
%51 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.20, i64 0, i64 0), i32 %50)
%52 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 1)
%53 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.21, i64 0, i64 0), i32 %52)
%54 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -1)
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.22, i64 0, i64 0), i32 %54)
%56 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%57 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @.str.23, i64 0, i64 0), i32 %56, i32 -2)
%58 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 0)
%59 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.24, i64 0, i64 0), i32 %58, i32 0)
%60 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 2)
%61 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.25, i64 0, i64 0), i32 %60)
%62 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -2)
%63 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.26, i64 0, i64 0), i32 %62)
%64 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 -3)
%65 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @.str.27, i64 0, i64 0), i32 %64, i32 -3)
%66 = tail call i32 (i32, ...) bitcast (i32 (...)* @dec_bin to i32 (i32, ...)*)(i32 1)
%67 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @.str.28, i64 0, i64 0), i32 %66)
ret void
}