#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int EOF;
int getchar();
int /*<<< orphan*/ printf(char *, ...);
int /*<<< orphan*/ putchar(char);
int main() {
  int c, e, ee, high;
  int length[127 + 1];
  for (e = 0; e <= 127; ++e) {
    length[e] = 0;
  }
  high = 0;
  while ((c = getchar()) != EOF) {
    if (++length[c] > high) {
      high = length[c];
    }
  }
  for (e = 0; e <= 127; ++e) {
    if (e == 0) {
      printf("[NUL] ");
    } else if (e == 1) {
      printf("[SOH] ");
    } else if (e == 2) {
      printf("[STX] ");
    } else if (e == 3) {
      printf("[ETX] ");
    } else if (e == 4) {
      printf("[EOT] ");
    } else if (e == 5) {
      printf("[ENQ] ");
    } else if (e == 6) {
      printf("[ACK] ");
    } else if (e == 7) {
      printf("[BEL] ");
    } else if (e == 8) {
      printf("[BS]  ");
    } else if (e == 9) {
      printf("[HT]  ");
    } else if (e == 10) {
      printf("[NL]  ");
    } else if (e == 11) {
      printf("[VT]  ");
    } else if (e == 12) {
      printf("[NP]  ");
    } else if (e == 13) {
      printf("[CR]  ");
    } else if (e == 14) {
      printf("[SO] ");
    } else if (e == 15) {
      printf("[SI] ");
    } else if (e == 16) {
      printf("[DLE] ");
    } else if (e == 17) {
      printf("[DC1] ");
    } else if (e == 18) {
      printf("[DC2] ");
    } else if (e == 19) {
      printf("[DC3] ");
    } else if (e == 20) {
      printf("[DC4] ");
    } else if (e == 21) {
      printf("[NAK] ");
    } else if (e == 22) {
      printf("[SYN] ");
    } else if (e == 23) {
      printf("[ETB] ");
    } else if (e == 24) {
      printf("[CAN] ");
    } else if (e == 25) {
      printf("[EM]  ");
    } else if (e == 26) {
      printf("[SUB] ");
    } else if (e == 27) {
      printf("[ESC] ");
    } else if (e == 28) {
      printf("[FS]  ");
    } else if (e == 29) {
      printf("[GS]  ");
    } else if (e == 30) {
      printf("[RS]  ");
    } else if (e == 31) {
      printf("[US]  ");
    } else if (e >= ' ' && e <= '~') {
      printf("[%c]   ", e);
    } else if (e == 127) {
      printf("[DEL] ");
    }
    for (ee = 0; ee < (int)((length[e] * (160 / (double)high)) + 0.99); ++ee) {
      putchar('|');
    }
    putchar('\n');
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x220,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0xc(%rbp)
cmpl   $0x7f,-0xc(%rbp)
jg     1170 <main+0x40>
movslq -0xc(%rbp),%rax
movl   $0x0,-0x220(%rbp,%rax,4)
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    1149 <main+0x19>
movl   $0x0,-0x14(%rbp)
mov    $0x0,%al
call   1050 <getchar@plt>
mov    %eax,-0x8(%rbp)
mov    0x2e60(%rip),%rcx
cmp    (%rcx),%eax
je     11c1 <main+0x91>
movslq -0x8(%rbp),%rcx
mov    -0x220(%rbp,%rcx,4),%eax
add    $0x1,%eax
mov    %eax,-0x220(%rbp,%rcx,4)
cmp    -0x14(%rbp),%eax
jle    11bc <main+0x8c>
movslq -0x8(%rbp),%rax
mov    -0x220(%rbp,%rax,4),%eax
mov    %eax,-0x14(%rbp)
jmp    1177 <main+0x47>
movl   $0x0,-0xc(%rbp)
cmpl   $0x7f,-0xc(%rbp)
jg     16cd <main+0x59d>
cmpl   $0x0,-0xc(%rbp)
jne    11ef <main+0xbf>
lea    0xe2d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1659 <main+0x529>
cmpl   $0x1,-0xc(%rbp)
jne    120c <main+0xdc>
lea    0xe17(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1654 <main+0x524>
cmpl   $0x2,-0xc(%rbp)
jne    1229 <main+0xf9>
lea    0xe01(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    164f <main+0x51f>
cmpl   $0x3,-0xc(%rbp)
jne    1246 <main+0x116>
lea    0xdeb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    164a <main+0x51a>
cmpl   $0x4,-0xc(%rbp)
jne    1263 <main+0x133>
lea    0xdd5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1645 <main+0x515>
cmpl   $0x5,-0xc(%rbp)
jne    1280 <main+0x150>
lea    0xdbf(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1640 <main+0x510>
cmpl   $0x6,-0xc(%rbp)
jne    129d <main+0x16d>
lea    0xda9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    163b <main+0x50b>
cmpl   $0x7,-0xc(%rbp)
jne    12ba <main+0x18a>
lea    0xd93(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1636 <main+0x506>
cmpl   $0x8,-0xc(%rbp)
jne    12d7 <main+0x1a7>
lea    0xd7d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1631 <main+0x501>
cmpl   $0x9,-0xc(%rbp)
jne    12f4 <main+0x1c4>
lea    0xd67(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    162c <main+0x4fc>
cmpl   $0xa,-0xc(%rbp)
jne    1311 <main+0x1e1>
lea    0xd51(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1627 <main+0x4f7>
cmpl   $0xb,-0xc(%rbp)
jne    132e <main+0x1fe>
lea    0xd3b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1622 <main+0x4f2>
cmpl   $0xc,-0xc(%rbp)
jne    134b <main+0x21b>
lea    0xd25(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    161d <main+0x4ed>
cmpl   $0xd,-0xc(%rbp)
jne    1368 <main+0x238>
lea    0xd0f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1618 <main+0x4e8>
cmpl   $0xe,-0xc(%rbp)
jne    1385 <main+0x255>
lea    0xcf9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1613 <main+0x4e3>
cmpl   $0xf,-0xc(%rbp)
jne    13a2 <main+0x272>
lea    0xce2(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    160e <main+0x4de>
cmpl   $0x10,-0xc(%rbp)
jne    13bf <main+0x28f>
lea    0xccb(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1609 <main+0x4d9>
cmpl   $0x11,-0xc(%rbp)
jne    13dc <main+0x2ac>
lea    0xcb5(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    1604 <main+0x4d4>
cmpl   $0x12,-0xc(%rbp)
jne    13f9 <main+0x2c9>
lea    0xc9f(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15ff <main+0x4cf>
cmpl   $0x13,-0xc(%rbp)
jne    1416 <main+0x2e6>
lea    0xc89(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15fa <main+0x4ca>
cmpl   $0x14,-0xc(%rbp)
jne    1433 <main+0x303>
lea    0xc73(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15f5 <main+0x4c5>
cmpl   $0x15,-0xc(%rbp)
jne    1450 <main+0x320>
lea    0xc5d(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15f0 <main+0x4c0>
cmpl   $0x16,-0xc(%rbp)
jne    146d <main+0x33d>
lea    0xc47(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15eb <main+0x4bb>
cmpl   $0x17,-0xc(%rbp)
jne    148a <main+0x35a>
lea    0xc31(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15e6 <main+0x4b6>
cmpl   $0x18,-0xc(%rbp)
jne    14a7 <main+0x377>
lea    0xc1b(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15e1 <main+0x4b1>
cmpl   $0x19,-0xc(%rbp)
jne    14c4 <main+0x394>
lea    0xc05(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15dc <main+0x4ac>
cmpl   $0x1a,-0xc(%rbp)
jne    14e1 <main+0x3b1>
lea    0xbef(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15d7 <main+0x4a7>
cmpl   $0x1b,-0xc(%rbp)
jne    14fe <main+0x3ce>
lea    0xbd9(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15d2 <main+0x4a2>
cmpl   $0x1c,-0xc(%rbp)
jne    151b <main+0x3eb>
lea    0xbc3(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15cd <main+0x49d>
cmpl   $0x1d,-0xc(%rbp)
jne    1538 <main+0x408>
lea    0xbad(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15c8 <main+0x498>
cmpl   $0x1e,-0xc(%rbp)
jne    1555 <main+0x425>
lea    0xb97(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15c3 <main+0x493>
cmpl   $0x1f,-0xc(%rbp)
jne    1572 <main+0x442>
lea    0xb81(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15be <main+0x48e>
cmpl   $0x20,-0xc(%rbp)
jl     159c <main+0x46c>
cmpl   $0x7e,-0xc(%rbp)
jg     159c <main+0x46c>
mov    -0xc(%rbp),%esi
lea    0xb5e(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15b9 <main+0x489>
cmpl   $0x7f,-0xc(%rbp)
jne    15b4 <main+0x484>
lea    0xb49(%rip),%rdi
mov    $0x0,%al
call   1040 <printf@plt>
jmp    15b9 <main+0x489>
jmp    15be <main+0x48e>
jmp    15c3 <main+0x493>
jmp    15c8 <main+0x498>
jmp    15cd <main+0x49d>
jmp    15d2 <main+0x4a2>
jmp    15d7 <main+0x4a7>
jmp    15dc <main+0x4ac>
jmp    15e1 <main+0x4b1>
jmp    15e6 <main+0x4b6>
jmp    15eb <main+0x4bb>
jmp    15f0 <main+0x4c0>
jmp    15f5 <main+0x4c5>
jmp    15fa <main+0x4ca>
jmp    15ff <main+0x4cf>
jmp    1604 <main+0x4d4>
jmp    1609 <main+0x4d9>
jmp    160e <main+0x4de>
jmp    1613 <main+0x4e3>
jmp    1618 <main+0x4e8>
jmp    161d <main+0x4ed>
jmp    1622 <main+0x4f2>
jmp    1627 <main+0x4f7>
jmp    162c <main+0x4fc>
jmp    1631 <main+0x501>
jmp    1636 <main+0x506>
jmp    163b <main+0x50b>
jmp    1640 <main+0x510>
jmp    1645 <main+0x515>
jmp    164a <main+0x51a>
jmp    164f <main+0x51f>
jmp    1654 <main+0x524>
jmp    1659 <main+0x529>
movl   $0x0,-0x10(%rbp)
mov    -0x10(%rbp),%eax
movslq -0xc(%rbp),%rcx
cvtsi2sdl -0x220(%rbp,%rcx,4),%xmm0
ff ff
cvtsi2sdl -0x14(%rbp),%xmm2
movsd  0x98b(%rip),%xmm1
divsd  %xmm2,%xmm1
mulsd  %xmm1,%xmm0
movsd  0x973(%rip),%xmm1
addsd  %xmm1,%xmm0
cvttsd2si %xmm0,%ecx
cmp    %ecx,%eax
jge    16b5 <main+0x585>
mov    $0x7c,%edi
call   1030 <putchar@plt>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    1660 <main+0x530>
mov    $0xa,%edi
call   1030 <putchar@plt>
mov    -0xc(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xc(%rbp)
jmp    11c8 <main+0x98>
xor    %eax,%eax
add    $0x220,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x210,%rsp
lea    0x10(%rsp),%rdi
mov    $0x200,%edx
xor    %esi,%esi
call   1050 <memset@plt>
xor    %eax,%eax
call   1060 <getchar@plt>
mov    0x2e7a(%rip),%rbx
xorpd  %xmm0,%xmm0
cmp    (%rbx),%eax
je     11a6 <main+0x66>
xor    %ebp,%ebp
nopl   0x0(%rax,%rax,1)
mov    %ebp,%ecx
cltq
mov    0x10(%rsp,%rax,4),%edx
lea    0x1(%rdx),%ebp
mov    %ebp,0x10(%rsp,%rax,4)
cmp    %ecx,%edx
cmovl  %ecx,%ebp
xor    %eax,%eax
call   1060 <getchar@plt>
cmp    (%rbx),%eax
jne    1180 <main+0x40>
xorps  %xmm0,%xmm0
cvtsi2sd %ebp,%xmm0
movsd  0xe52(%rip),%xmm1
divsd  %xmm0,%xmm1
movsd  %xmm1,0x8(%rsp)
lea    0xfaf(%rip),%r14
lea    0xfb0(%rip),%r15
lea    0xe43(%rip),%r12
xor    %ebx,%ebx
jmp    11fb <main+0xbb>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
mov    $0xa,%edi
call   1030 <putchar@plt>
add    $0x1,%rbx
cmp    $0x80,%rbx
je     13d4 <main+0x294>
cmp    $0x1f,%ebx
ja     1338 <main+0x1f8>
mov    %ebx,%eax
movslq (%r12,%rax,4),%rax
add    %r12,%rax
jmp    *%rax
lea    0xe7a(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe75(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe70(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe6b(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe66(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe61(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe5c(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe57(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe52(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe4d(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe48(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe43(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe3e(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe39(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe34(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe2e(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe28(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe23(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe1e(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe20(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe1b(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe24(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe22(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe27(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe33(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xe31(%rip),%rdi
jmp    1390 <main+0x250>
lea    -0x20(%rbx),%eax
cmp    $0x5e,%eax
ja     1384 <main+0x244>
mov    %r14,%rdi
mov    %ebx,%esi
xor    %eax,%eax
call   1040 <printf@plt>
jmp    1397 <main+0x257>
lea    0xdbe(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xdca(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xdc8(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xdd4(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xdd9(%rip),%rdi
jmp    1390 <main+0x250>
lea    0xdd7(%rip),%rdi
jmp    1390 <main+0x250>
mov    %r15,%rdi
nopw   0x0(%rax,%rax,1)
xor    %eax,%eax
call   1040 <printf@plt>
xorps  %xmm0,%xmm0
cvtsi2sdl 0x10(%rsp,%rbx,4),%xmm0
mulsd  0x8(%rsp),%xmm0
addsd  0xc5a(%rip),%xmm0
cvttsd2si %xmm0,%ebp
test   %ebp,%ebp
jle    11e0 <main+0xa0>
nopw   0x0(%rax,%rax,1)
mov    $0x7c,%edi
call   1030 <putchar@plt>
add    $0xffffffff,%ebp
jne    13c0 <main+0x280>
jmp    11e0 <main+0xa0>
xor    %eax,%eax
add    $0x210,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@EOF = global i32 0
@.str = [7 x i8] c"[NUL] \00"
@.str.1 = [7 x i8] c"[SOH] \00"
@.str.2 = [7 x i8] c"[STX] \00"
@.str.3 = [7 x i8] c"[ETX] \00"
@.str.4 = [7 x i8] c"[EOT] \00"
@.str.5 = [7 x i8] c"[ENQ] \00"
@.str.6 = [7 x i8] c"[ACK] \00"
@.str.7 = [7 x i8] c"[BEL] \00"
@.str.8 = [7 x i8] c"[BS] \00"
@.str.9 = [7 x i8] c"[HT] \00"
@.str.10 = [7 x i8] c"[NL] \00"
@.str.11 = [7 x i8] c"[VT] \00"
@.str.12 = [7 x i8] c"[NP] \00"
@.str.13 = [7 x i8] c"[CR] \00"
@.str.14 = [6 x i8] c"[SO] \00"
@.str.15 = [6 x i8] c"[SI] \00"
@.str.16 = [7 x i8] c"[DLE] \00"
@.str.17 = [7 x i8] c"[DC1] \00"
@.str.18 = [7 x i8] c"[DC2] \00"
@.str.19 = [7 x i8] c"[DC3] \00"
@.str.20 = [7 x i8] c"[DC4] \00"
@.str.21 = [7 x i8] c"[NAK] \00"
@.str.22 = [7 x i8] c"[SYN] \00"
@.str.23 = [7 x i8] c"[ETB] \00"
@.str.24 = [7 x i8] c"[CAN] \00"
@.str.25 = [7 x i8] c"[EM] \00"
@.str.26 = [7 x i8] c"[SUB] \00"
@.str.27 = [7 x i8] c"[ESC] \00"
@.str.28 = [7 x i8] c"[FS] \00"
@.str.29 = [7 x i8] c"[GS] \00"
@.str.30 = [7 x i8] c"[RS] \00"
@.str.31 = [7 x i8] c"[US] \00"
@.str.32 = [8 x i8] c"[%c] \00"
@.str.33 = [7 x i8] c"[DEL] \00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca [128 x i32]
store i32 0, i32* %1
store i32 0, i32* %3
br label %7
7: ; preds = %14, %0
%8 = load i32, i32* %3
%9 = icmp sle i32 %8, 127
br i1 %9, label %10, label %17
10: ; preds = %7
%11 = load i32, i32* %3
%12 = sext i32 %11 to i64
%13 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %12
store i32 0, i32* %13
br label %14
14: ; preds = %10
%15 = load i32, i32* %3
%16 = add nsw i32 %15, 1
store i32 %16, i32* %3
br label %7
17: ; preds = %7
store i32 0, i32* %5
br label %18
18: ; preds = %35, %17
%19 = call i32 (...) @getchar()
store i32 %19, i32* %2
%20 = load i32, i32* @EOF
%21 = icmp ne i32 %19, %20
br i1 %21, label %22, label %36
22: ; preds = %18
%23 = load i32, i32* %2
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %24
%26 = load i32, i32* %25
%27 = add nsw i32 %26, 1
store i32 %27, i32* %25
%28 = load i32, i32* %5
%29 = icmp sgt i32 %27, %28
br i1 %29, label %30, label %35
30: ; preds = %22
%31 = load i32, i32* %2
%32 = sext i32 %31 to i64
%33 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %32
%34 = load i32, i32* %33
store i32 %34, i32* %5
br label %35
35: ; preds = %30, %22
br label %18
36: ; preds = %18
store i32 0, i32* %3
br label %37
37: ; preds = %268, %36
%38 = load i32, i32* %3
%39 = icmp sle i32 %38, 127
br i1 %39, label %40, label %271
40: ; preds = %37
%41 = load i32, i32* %3
%42 = icmp eq i32 %41, 0
br i1 %42, label %43, label %45
43: ; preds = %40
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
br label %247
45: ; preds = %40
%46 = load i32, i32* %3
%47 = icmp eq i32 %46, 1
br i1 %47, label %48, label %50
48: ; preds = %45
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
br label %246
50: ; preds = %45
%51 = load i32, i32* %3
%52 = icmp eq i32 %51, 2
br i1 %52, label %53, label %55
53: ; preds = %50
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
br label %245
55: ; preds = %50
%56 = load i32, i32* %3
%57 = icmp eq i32 %56, 3
br i1 %57, label %58, label %60
58: ; preds = %55
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
br label %244
60: ; preds = %55
%61 = load i32, i32* %3
%62 = icmp eq i32 %61, 4
br i1 %62, label %63, label %65
63: ; preds = %60
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
br label %243
65: ; preds = %60
%66 = load i32, i32* %3
%67 = icmp eq i32 %66, 5
br i1 %67, label %68, label %70
68: ; preds = %65
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %242
70: ; preds = %65
%71 = load i32, i32* %3
%72 = icmp eq i32 %71, 6
br i1 %72, label %73, label %75
73: ; preds = %70
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
br label %241
75: ; preds = %70
%76 = load i32, i32* %3
%77 = icmp eq i32 %76, 7
br i1 %77, label %78, label %80
78: ; preds = %75
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
br label %240
80: ; preds = %75
%81 = load i32, i32* %3
%82 = icmp eq i32 %81, 8
br i1 %82, label %83, label %85
83: ; preds = %80
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
br label %239
85: ; preds = %80
%86 = load i32, i32* %3
%87 = icmp eq i32 %86, 9
br i1 %87, label %88, label %90
88: ; preds = %85
%89 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
br label %238
90: ; preds = %85
%91 = load i32, i32* %3
%92 = icmp eq i32 %91, 10
br i1 %92, label %93, label %95
93: ; preds = %90
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
br label %237
95: ; preds = %90
%96 = load i32, i32* %3
%97 = icmp eq i32 %96, 11
br i1 %97, label %98, label %100
98: ; preds = %95
%99 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
br label %236
100: ; preds = %95
%101 = load i32, i32* %3
%102 = icmp eq i32 %101, 12
br i1 %102, label %103, label %105
103: ; preds = %100
%104 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %235
105: ; preds = %100
%106 = load i32, i32* %3
%107 = icmp eq i32 %106, 13
br i1 %107, label %108, label %110
108: ; preds = %105
%109 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0))
br label %234
110: ; preds = %105
%111 = load i32, i32* %3
%112 = icmp eq i32 %111, 14
br i1 %112, label %113, label %115
113: ; preds = %110
%114 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
br label %233
115: ; preds = %110
%116 = load i32, i32* %3
%117 = icmp eq i32 %116, 15
br i1 %117, label %118, label %120
118: ; preds = %115
%119 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0))
br label %232
120: ; preds = %115
%121 = load i32, i32* %3
%122 = icmp eq i32 %121, 16
br i1 %122, label %123, label %125
123: ; preds = %120
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0))
br label %231
125: ; preds = %120
%126 = load i32, i32* %3
%127 = icmp eq i32 %126, 17
br i1 %127, label %128, label %130
128: ; preds = %125
%129 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0))
br label %230
130: ; preds = %125
%131 = load i32, i32* %3
%132 = icmp eq i32 %131, 18
br i1 %132, label %133, label %135
133: ; preds = %130
%134 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0))
br label %229
135: ; preds = %130
%136 = load i32, i32* %3
%137 = icmp eq i32 %136, 19
br i1 %137, label %138, label %140
138: ; preds = %135
%139 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
br label %228
140: ; preds = %135
%141 = load i32, i32* %3
%142 = icmp eq i32 %141, 20
br i1 %142, label %143, label %145
143: ; preds = %140
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0))
br label %227
145: ; preds = %140
%146 = load i32, i32* %3
%147 = icmp eq i32 %146, 21
br i1 %147, label %148, label %150
148: ; preds = %145
%149 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0))
br label %226
150: ; preds = %145
%151 = load i32, i32* %3
%152 = icmp eq i32 %151, 22
br i1 %152, label %153, label %155
153: ; preds = %150
%154 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0))
br label %225
155: ; preds = %150
%156 = load i32, i32* %3
%157 = icmp eq i32 %156, 23
br i1 %157, label %158, label %160
158: ; preds = %155
%159 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0))
br label %224
160: ; preds = %155
%161 = load i32, i32* %3
%162 = icmp eq i32 %161, 24
br i1 %162, label %163, label %165
163: ; preds = %160
%164 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0))
br label %223
165: ; preds = %160
%166 = load i32, i32* %3
%167 = icmp eq i32 %166, 25
br i1 %167, label %168, label %170
168: ; preds = %165
%169 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0))
br label %222
170: ; preds = %165
%171 = load i32, i32* %3
%172 = icmp eq i32 %171, 26
br i1 %172, label %173, label %175
173: ; preds = %170
%174 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0))
br label %221
175: ; preds = %170
%176 = load i32, i32* %3
%177 = icmp eq i32 %176, 27
br i1 %177, label %178, label %180
178: ; preds = %175
%179 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0))
br label %220
180: ; preds = %175
%181 = load i32, i32* %3
%182 = icmp eq i32 %181, 28
br i1 %182, label %183, label %185
183: ; preds = %180
%184 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0))
br label %219
185: ; preds = %180
%186 = load i32, i32* %3
%187 = icmp eq i32 %186, 29
br i1 %187, label %188, label %190
188: ; preds = %185
%189 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0))
br label %218
190: ; preds = %185
%191 = load i32, i32* %3
%192 = icmp eq i32 %191, 30
br i1 %192, label %193, label %195
193: ; preds = %190
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0))
br label %217
195: ; preds = %190
%196 = load i32, i32* %3
%197 = icmp eq i32 %196, 31
br i1 %197, label %198, label %200
198: ; preds = %195
%199 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
br label %216
200: ; preds = %195
%201 = load i32, i32* %3
%202 = icmp sge i32 %201, 32
br i1 %202, label %203, label %209
203: ; preds = %200
%204 = load i32, i32* %3
%205 = icmp sle i32 %204, 126
br i1 %205, label %206, label %209
206: ; preds = %203
%207 = load i32, i32* %3
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0), i32 %207)
br label %215
209: ; preds = %203, %200
%210 = load i32, i32* %3
%211 = icmp eq i32 %210, 127
br i1 %211, label %212, label %214
212: ; preds = %209
%213 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0))
br label %214
214: ; preds = %212, %209
br label %215
215: ; preds = %214, %206
br label %216
216: ; preds = %215, %198
br label %217
217: ; preds = %216, %193
br label %218
218: ; preds = %217, %188
br label %219
219: ; preds = %218, %183
br label %220
220: ; preds = %219, %178
br label %221
221: ; preds = %220, %173
br label %222
222: ; preds = %221, %168
br label %223
223: ; preds = %222, %163
br label %224
224: ; preds = %223, %158
br label %225
225: ; preds = %224, %153
br label %226
226: ; preds = %225, %148
br label %227
227: ; preds = %226, %143
br label %228
228: ; preds = %227, %138
br label %229
229: ; preds = %228, %133
br label %230
230: ; preds = %229, %128
br label %231
231: ; preds = %230, %123
br label %232
232: ; preds = %231, %118
br label %233
233: ; preds = %232, %113
br label %234
234: ; preds = %233, %108
br label %235
235: ; preds = %234, %103
br label %236
236: ; preds = %235, %98
br label %237
237: ; preds = %236, %93
br label %238
238: ; preds = %237, %88
br label %239
239: ; preds = %238, %83
br label %240
240: ; preds = %239, %78
br label %241
241: ; preds = %240, %73
br label %242
242: ; preds = %241, %68
br label %243
243: ; preds = %242, %63
br label %244
244: ; preds = %243, %58
br label %245
245: ; preds = %244, %53
br label %246
246: ; preds = %245, %48
br label %247
247: ; preds = %246, %43
store i32 0, i32* %4
br label %248
248: ; preds = %263, %247
%249 = load i32, i32* %4
%250 = load i32, i32* %3
%251 = sext i32 %250 to i64
%252 = getelementptr inbounds [128 x i32], [128 x i32]* %6, i64 0, i64 %251
%253 = load i32, i32* %252
%254 = sitofp i32 %253 to double
%255 = load i32, i32* %5
%256 = sitofp i32 %255 to double
%257 = fdiv double 1.600000e+02, %256
%258 = call double @llvm.fmuladd.f64(double %254, double %257, double 0x3FEFAE147AE147AE)
%259 = fptosi double %258 to i32
%260 = icmp slt i32 %249, %259
br i1 %260, label %261, label %266
261: ; preds = %248
%262 = call i32 @putchar(i8 signext 124)
br label %263
263: ; preds = %261
%264 = load i32, i32* %4
%265 = add nsw i32 %264, 1
store i32 %265, i32* %4
br label %248
266: ; preds = %248
%267 = call i32 @putchar(i8 signext 10)
br label %268
268: ; preds = %266
%269 = load i32, i32* %3
%270 = add nsw i32 %269, 1
store i32 %270, i32* %3
br label %37
271: ; preds = %37
ret i32 0
}

LLVM IR (-O2):
@EOF = global i32 0
@.str = [7 x i8] c"[NUL] \00"
@.str.1 = [7 x i8] c"[SOH] \00"
@.str.2 = [7 x i8] c"[STX] \00"
@.str.3 = [7 x i8] c"[ETX] \00"
@.str.4 = [7 x i8] c"[EOT] \00"
@.str.5 = [7 x i8] c"[ENQ] \00"
@.str.6 = [7 x i8] c"[ACK] \00"
@.str.7 = [7 x i8] c"[BEL] \00"
@.str.8 = [7 x i8] c"[BS] \00"
@.str.9 = [7 x i8] c"[HT] \00"
@.str.10 = [7 x i8] c"[NL] \00"
@.str.11 = [7 x i8] c"[VT] \00"
@.str.12 = [7 x i8] c"[NP] \00"
@.str.13 = [7 x i8] c"[CR] \00"
@.str.14 = [6 x i8] c"[SO] \00"
@.str.15 = [6 x i8] c"[SI] \00"
@.str.16 = [7 x i8] c"[DLE] \00"
@.str.17 = [7 x i8] c"[DC1] \00"
@.str.18 = [7 x i8] c"[DC2] \00"
@.str.19 = [7 x i8] c"[DC3] \00"
@.str.20 = [7 x i8] c"[DC4] \00"
@.str.21 = [7 x i8] c"[NAK] \00"
@.str.22 = [7 x i8] c"[SYN] \00"
@.str.23 = [7 x i8] c"[ETB] \00"
@.str.24 = [7 x i8] c"[CAN] \00"
@.str.25 = [7 x i8] c"[EM] \00"
@.str.26 = [7 x i8] c"[SUB] \00"
@.str.27 = [7 x i8] c"[ESC] \00"
@.str.28 = [7 x i8] c"[FS] \00"
@.str.29 = [7 x i8] c"[GS] \00"
@.str.30 = [7 x i8] c"[RS] \00"
@.str.31 = [7 x i8] c"[US] \00"
@.str.32 = [8 x i8] c"[%c] \00"
@.str.33 = [7 x i8] c"[DEL] \00"
define i32 @main() {
%1 = alloca [128 x i32]
%2 = bitcast [128 x i32]* %1 to i8*
%3 = tail call i32 (...) @getchar()
%4 = load i32, i32* @EOF
%5 = icmp eq i32 %3, %4
br i1 %5, label %8, label %11
6: ; preds = %11
%7 = sitofp i32 %19 to double
br label %8
8: ; preds = %6, %0
%9 = phi double [ 0.000000e+00, %0 ], [ %7, %6 ]
%10 = fdiv double 1.600000e+02, %9
br label %23
11: ; preds = %0, %11
%12 = phi i32 [ %20, %11 ], [ %3, %0 ]
%13 = phi i32 [ %19, %11 ], [ 0, %0 ]
%14 = sext i32 %12 to i64
%15 = getelementptr inbounds [128 x i32], [128 x i32]* %1, i64 0, i64 %14
%16 = load i32, i32* %15
%17 = add nsw i32 %16, 1
store i32 %17, i32* %15
%18 = icmp slt i32 %16, %13
%19 = select i1 %18, i32 %13, i32 %17
%20 = tail call i32 (...) @getchar()
%21 = load i32, i32* @EOF
%22 = icmp eq i32 %20, %21
br i1 %22, label %6, label %11
23: ; preds = %8, %110
%24 = phi i64 [ 0, %8 ], [ %112, %110 ]
%25 = trunc i64 %24 to i32
switch i32 %25, label %90 [
i32 0, label %26
i32 1, label %28
i32 2, label %30
i32 3, label %32
i32 4, label %34
i32 5, label %36
i32 6, label %38
i32 7, label %40
i32 8, label %42
i32 9, label %44
i32 10, label %46
i32 11, label %48
i32 12, label %50
i32 13, label %52
i32 14, label %54
i32 15, label %56
i32 16, label %58
i32 17, label %60
i32 18, label %62
i32 19, label %64
i32 20, label %66
i32 21, label %68
i32 22, label %70
i32 23, label %72
i32 24, label %74
i32 25, label %76
i32 26, label %78
i32 27, label %80
i32 28, label %82
i32 29, label %84
i32 30, label %86
i32 31, label %88
]
26: ; preds = %23
%27 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str, i64 0, i64 0))
br label %98
28: ; preds = %23
%29 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.1, i64 0, i64 0))
br label %98
30: ; preds = %23
%31 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.2, i64 0, i64 0))
br label %98
32: ; preds = %23
%33 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3, i64 0, i64 0))
br label %98
34: ; preds = %23
%35 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
br label %98
36: ; preds = %23
%37 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.5, i64 0, i64 0))
br label %98
38: ; preds = %23
%39 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
br label %98
40: ; preds = %23
%41 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
br label %98
42: ; preds = %23
%43 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.8, i64 0, i64 0))
br label %98
44: ; preds = %23
%45 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.9, i64 0, i64 0))
br label %98
46: ; preds = %23
%47 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.10, i64 0, i64 0))
br label %98
48: ; preds = %23
%49 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.11, i64 0, i64 0))
br label %98
50: ; preds = %23
%51 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.12, i64 0, i64 0))
br label %98
52: ; preds = %23
%53 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.13, i64 0, i64 0))
br label %98
54: ; preds = %23
%55 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0))
br label %98
56: ; preds = %23
%57 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.15, i64 0, i64 0))
br label %98
58: ; preds = %23
%59 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.16, i64 0, i64 0))
br label %98
60: ; preds = %23
%61 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.17, i64 0, i64 0))
br label %98
62: ; preds = %23
%63 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0))
br label %98
64: ; preds = %23
%65 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.19, i64 0, i64 0))
br label %98
66: ; preds = %23
%67 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.20, i64 0, i64 0))
br label %98
68: ; preds = %23
%69 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.21, i64 0, i64 0))
br label %98
70: ; preds = %23
%71 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.22, i64 0, i64 0))
br label %98
72: ; preds = %23
%73 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.23, i64 0, i64 0))
br label %98
74: ; preds = %23
%75 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.24, i64 0, i64 0))
br label %98
76: ; preds = %23
%77 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.25, i64 0, i64 0))
br label %98
78: ; preds = %23
%79 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.26, i64 0, i64 0))
br label %98
80: ; preds = %23
%81 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0))
br label %98
82: ; preds = %23
%83 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.28, i64 0, i64 0))
br label %98
84: ; preds = %23
%85 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.29, i64 0, i64 0))
br label %98
86: ; preds = %23
%87 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0))
br label %98
88: ; preds = %23
%89 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
br label %98
90: ; preds = %23
%91 = trunc i64 %24 to i32
%92 = add i32 %91, -32
%93 = icmp ult i32 %92, 95
br i1 %93, label %94, label %96
94: ; preds = %90
%95 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.32, i64 0, i64 0), i32 %25)
br label %98
96: ; preds = %90
%97 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.33, i64 0, i64 0))
br label %98
98: ; preds = %28, %32, %36, %40, %44, %48, %52, %56, %60, %64, %68, %72, %76, %80, %84, %88, %96, %94, %86, %82, %78, %74, %70, %66, %62, %58, %54, %50, %46, %42, %38, %34, %30, %26
%99 = getelementptr inbounds [128 x i32], [128 x i32]* %1, i64 0, i64 %24
%100 = load i32, i32* %99
%101 = sitofp i32 %100 to double
%102 = tail call double @llvm.fmuladd.f64(double %101, double %10, double 0x3FEFAE147AE147AE)
%103 = fptosi double %102 to i32
%104 = icmp sgt i32 %103, 0
br i1 %104, label %105, label %110
105: ; preds = %98, %105
%106 = phi i32 [ %108, %105 ], [ 0, %98 ]
%107 = tail call i32 @putchar(i8 signext 124)
%108 = add nuw nsw i32 %106, 1
%109 = icmp eq i32 %108, %103
br i1 %109, label %110, label %105
110: ; preds = %105, %98
%111 = tail call i32 @putchar(i8 signext 10)
%112 = add nuw nsw i64 %24, 1
%113 = icmp eq i64 %112, 128
br i1 %113, label %114, label %23
114: ; preds = %110
ret i32 0
}