void main() {
  char A[10];
  int B[5] = {0, 0, 0, 0, 0};
  int i;
  getid(A);
  printid(A);
  for (i = 0; i < 10; i++)
    switch (A[i]) {
    case 'a':
      B[0]++;
      break;
    case 'b':
      B[1]++;
      break;
    case 'c':
      B[2]++;
      break;
    case 'd':
      B[3]++;
      break;
    case 'e':
      B[4]++;
      break;
    }
  printid(B);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
lea    -0x20(%rbp),%rdi
xor    %esi,%esi
mov    $0x14,%edx
call   1040 <memset@plt>
lea    -0xa(%rbp),%rdi
mov    $0x0,%al
call   1030 <getid@plt>
lea    -0xa(%rbp),%rdi
mov    $0x0,%al
call   1050 <printid@plt>
movl   $0x0,-0x24(%rbp)
cmpl   $0xa,-0x24(%rbp)
jge    11f2 <main+0xc2>
movslq -0x24(%rbp),%rax
movsbl -0xa(%rbp,%rax,1),%eax
add    $0xffffff9f,%eax
mov    %eax,%ecx
mov    %rcx,-0x30(%rbp)
sub    $0x4,%eax
ja     11df <main+0xaf>
mov    -0x30(%rbp),%rax
lea    0xe6b(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11df <main+0xaf>
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    11df <main+0xaf>
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    11df <main+0xaf>
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    11df <main+0xaf>
mov    -0x10(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x10(%rbp)
jmp    11e4 <main+0xb4>
mov    -0x24(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x24(%rbp)
jmp    1165 <main+0x35>
lea    -0x20(%rbp),%rdi
mov    $0x0,%al
call   1050 <printid@plt>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %rbx
sub    $0x28,%rsp
xor    %ebp,%ebp
lea    0x6(%rsp),%rbx
mov    %rbx,%rdi
xor    %eax,%eax
call   1030 <getid@plt>
mov    %rbx,%rdi
xor    %eax,%eax
call   1040 <printid@plt>
movsbl 0x6(%rsp),%ebx
lea    -0x61(%rbx),%edi
mov    $0x0,%eax
mov    $0x0,%ecx
mov    $0x0,%edx
mov    $0x0,%esi
cmp    $0x4,%edi
ja     119e <main+0x7e>
movslq %ebx,%rax
lea    0xf48(%rip),%rcx
mov    -0x184(%rcx,%rax,4),%ebp
movslq %edi,%rsi
lea    0xf4b(%rip),%rax
mov    (%rax,%rsi,4),%eax
lea    0xf55(%rip),%rcx
mov    (%rcx,%rsi,4),%ecx
lea    0xf5f(%rip),%rdx
mov    (%rdx,%rsi,4),%edx
lea    0xf69(%rip),%rdi
mov    (%rdi,%rsi,4),%esi
movsbl 0x7(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     11d2 <main+0xb2>
lea    0xe4e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    11d2 <main+0xb2>
add    $0x1,%eax
jmp    11d2 <main+0xb2>
add    $0x1,%ecx
jmp    11d2 <main+0xb2>
add    $0x1,%edx
jmp    11d2 <main+0xb2>
add    $0x1,%esi
movsbl 0x8(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     1206 <main+0xe6>
lea    0xe2e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    1206 <main+0xe6>
add    $0x1,%eax
jmp    1206 <main+0xe6>
add    $0x1,%ecx
jmp    1206 <main+0xe6>
add    $0x1,%edx
jmp    1206 <main+0xe6>
add    $0x1,%esi
movsbl 0x9(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     123a <main+0x11a>
lea    0xe0e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    123a <main+0x11a>
add    $0x1,%eax
jmp    123a <main+0x11a>
add    $0x1,%ecx
jmp    123a <main+0x11a>
add    $0x1,%edx
jmp    123a <main+0x11a>
add    $0x1,%esi
movsbl 0xa(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     126e <main+0x14e>
lea    0xdee(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    126e <main+0x14e>
add    $0x1,%eax
jmp    126e <main+0x14e>
add    $0x1,%ecx
jmp    126e <main+0x14e>
add    $0x1,%edx
jmp    126e <main+0x14e>
add    $0x1,%esi
movsbl 0xb(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     12a2 <main+0x182>
lea    0xdce(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    12a2 <main+0x182>
add    $0x1,%eax
jmp    12a2 <main+0x182>
add    $0x1,%ecx
jmp    12a2 <main+0x182>
add    $0x1,%edx
jmp    12a2 <main+0x182>
add    $0x1,%esi
movsbl 0xc(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     12d6 <main+0x1b6>
lea    0xdae(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    12d6 <main+0x1b6>
add    $0x1,%eax
jmp    12d6 <main+0x1b6>
add    $0x1,%ecx
jmp    12d6 <main+0x1b6>
add    $0x1,%edx
jmp    12d6 <main+0x1b6>
add    $0x1,%esi
movsbl 0xd(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     130a <main+0x1ea>
lea    0xd8e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    130a <main+0x1ea>
add    $0x1,%eax
jmp    130a <main+0x1ea>
add    $0x1,%ecx
jmp    130a <main+0x1ea>
add    $0x1,%edx
jmp    130a <main+0x1ea>
add    $0x1,%esi
movsbl 0xe(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     133e <main+0x21e>
lea    0xd6e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    133e <main+0x21e>
add    $0x1,%eax
jmp    133e <main+0x21e>
add    $0x1,%ecx
jmp    133e <main+0x21e>
add    $0x1,%edx
jmp    133e <main+0x21e>
add    $0x1,%esi
movsbl 0xf(%rsp),%edi
add    $0xffffff9f,%edi
cmp    $0x4,%edi
ja     1372 <main+0x252>
lea    0xd4e(%rip),%rbx
movslq (%rbx,%rdi,4),%rdi
add    %rbx,%rdi
jmp    *%rdi
add    $0x1,%ebp
jmp    1372 <main+0x252>
add    $0x1,%eax
jmp    1372 <main+0x252>
add    $0x1,%ecx
jmp    1372 <main+0x252>
add    $0x1,%edx
jmp    1372 <main+0x252>
add    $0x1,%esi
mov    %esi,0x20(%rsp)
mov    %edx,0x1c(%rsp)
mov    %ecx,0x18(%rsp)
mov    %eax,0x14(%rsp)
mov    %ebp,0x10(%rsp)
lea    0x10(%rsp),%rdi
xor    %eax,%eax
call   1040 <printid@plt>
add    $0x28,%rsp
pop    %rbx
pop    %rbp
ret

LLVM IR (-O0):
define void @main() {
%1 = alloca [10 x i8]
%2 = alloca [5 x i32]
%3 = alloca i32
%4 = bitcast [5 x i32]* %2 to i8*
%5 = getelementptr inbounds [10 x i8], [10 x i8]* %1, i64 0, i64 0
%6 = call i32 (i8*, ...) bitcast (i32 (...)* @getid to i32 (i8*, ...)*)(i8* %5)
%7 = getelementptr inbounds [10 x i8], [10 x i8]* %1, i64 0, i64 0
%8 = call i32 (i8*, ...) bitcast (i32 (...)* @printid to i32 (i8*, ...)*)(i8* %7)
store i32 0, i32* %3
br label %9
9: ; preds = %39, %0
%10 = load i32, i32* %3
%11 = icmp slt i32 %10, 10
br i1 %11, label %12, label %42
12: ; preds = %9
%13 = load i32, i32* %3
%14 = sext i32 %13 to i64
%15 = getelementptr inbounds [10 x i8], [10 x i8]* %1, i64 0, i64 %14
%16 = load i8, i8* %15
%17 = sext i8 %16 to i32
switch i32 %17, label %38 [
i32 97, label %18
i32 98, label %22
i32 99, label %26
i32 100, label %30
i32 101, label %34
]
18: ; preds = %12
%19 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 0
%20 = load i32, i32* %19
%21 = add nsw i32 %20, 1
store i32 %21, i32* %19
br label %38
22: ; preds = %12
%23 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 1
%24 = load i32, i32* %23
%25 = add nsw i32 %24, 1
store i32 %25, i32* %23
br label %38
26: ; preds = %12
%27 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 2
%28 = load i32, i32* %27
%29 = add nsw i32 %28, 1
store i32 %29, i32* %27
br label %38
30: ; preds = %12
%31 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 3
%32 = load i32, i32* %31
%33 = add nsw i32 %32, 1
store i32 %33, i32* %31
br label %38
34: ; preds = %12
%35 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 4
%36 = load i32, i32* %35
%37 = add nsw i32 %36, 1
store i32 %37, i32* %35
br label %38
38: ; preds = %12, %34, %30, %26, %22, %18
br label %39
39: ; preds = %38
%40 = load i32, i32* %3
%41 = add nsw i32 %40, 1
store i32 %41, i32* %3
br label %9
42: ; preds = %9
%43 = getelementptr inbounds [5 x i32], [5 x i32]* %2, i64 0, i64 0
%44 = call i32 (i32*, ...) bitcast (i32 (...)* @printid to i32 (i32*, ...)*)(i32* %43)
ret void
}

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