#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 /*<<< orphan*/ atom_info(int, char **, int /*<<< orphan*/ *,
                             int /*<<< orphan*/ *);
scalar_t__ isupper(int);
void atom_idx(long num, char **AtomName, long *idx) {
  char c2, atoms_list[12][3];
  long i, j;
  atom_info(1, atoms_list, NULL, NULL);
  for (i = 1; i <= num; i++) {
    if (AtomName[i][0] == 'H') {
      idx[i] = 3;
      continue;
    }
    c2 = isupper((int)AtomName[i][2]) ? AtomName[i][2] : ' ';
    if (c2 != 'L' && c2 != 'R' && c2 != 'I')
      c2 = ' ';
    for (j = 0; j < 12; j++) {
      if (AtomName[i][1] == atoms_list[j][0] && c2 == atoms_list[j][1]) {
        idx[i] = j;
        break;
      }
    }
    if (j >= 12)
      idx[i] = 0;
  }
}


x86 assembly (clang, -O0):
<atom_idx>:
push   %rbp
mov    %rsp,%rbp
sub    $0x60,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
lea    -0x40(%rbp),%rsi
mov    $0x1,%edi
xor    %eax,%eax
mov    %eax,%ecx
mov    %rcx,%rdx
call   1030 <atom_info@plt>
movq   $0x1,-0x48(%rbp)
mov    -0x48(%rbp),%rax
cmp    -0x8(%rbp),%rax
jg     12b3 <atom_idx+0x193>
mov    -0x10(%rbp),%rax
mov    -0x48(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsbl (%rax),%eax
cmp    $0x48,%eax
jne    118c <atom_idx+0x6c>
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%rcx
movq   $0x3,(%rax,%rcx,8)
jmp    12a2 <atom_idx+0x182>
mov    -0x10(%rbp),%rax
mov    -0x48(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsbl 0x2(%rax),%edi
call   1040 <isupper@plt>
cmp    $0x0,%rax
je     11c3 <atom_idx+0xa3>
mov    -0x10(%rbp),%rax
mov    -0x48(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsbl 0x2(%rax),%eax
mov    %eax,-0x54(%rbp)
jmp    11d0 <atom_idx+0xb0>
mov    $0x20,%eax
mov    %eax,-0x54(%rbp)
jmp    11d0 <atom_idx+0xb0>
mov    -0x54(%rbp),%eax
mov    %al,-0x19(%rbp)
movsbl -0x19(%rbp),%eax
cmp    $0x4c,%eax
je     1201 <atom_idx+0xe1>
movsbl -0x19(%rbp),%eax
cmp    $0x52,%eax
je     1201 <atom_idx+0xe1>
movsbl -0x19(%rbp),%eax
cmp    $0x49,%eax
je     1201 <atom_idx+0xe1>
movb   $0x20,-0x19(%rbp)
movq   $0x0,-0x50(%rbp)
cmpq   $0xc,-0x50(%rbp)
jge    1282 <atom_idx+0x162>
mov    -0x10(%rbp),%rax
mov    -0x48(%rbp),%rcx
mov    (%rax,%rcx,8),%rax
movsbl 0x1(%rax),%eax
lea    -0x40(%rbp),%rcx
imul   $0x3,-0x50(%rbp),%rdx
add    %rdx,%rcx
movsbl (%rcx),%ecx
cmp    %ecx,%eax
jne    126c <atom_idx+0x14c>
movsbl -0x19(%rbp),%eax
lea    -0x40(%rbp),%rcx
imul   $0x3,-0x50(%rbp),%rdx
add    %rdx,%rcx
movsbl 0x1(%rcx),%ecx
cmp    %ecx,%eax
jne    126c <atom_idx+0x14c>
mov    -0x50(%rbp),%rdx
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%rcx
mov    %rdx,(%rax,%rcx,8)
jmp    1282 <atom_idx+0x162>
jmp    1271 <atom_idx+0x151>
mov    -0x50(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x50(%rbp)
jmp    1209 <atom_idx+0xe9>
cmpq   $0xc,-0x50(%rbp)
jl     129d <atom_idx+0x17d>
mov    -0x18(%rbp),%rax
mov    -0x48(%rbp),%rcx
movq   $0x0,(%rax,%rcx,8)
jmp    12a2 <atom_idx+0x182>
mov    -0x48(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x48(%rbp)
jmp    1151 <atom_idx+0x31>
add    $0x60,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<atom_idx>:
push   %rbp
push   %r15
push   %r14
push   %r12
push   %rbx
sub    $0x30,%rsp
mov    %rdx,%r14
mov    %rsi,%r12
mov    %rdi,%r15
mov    %rsp,%rsi
mov    $0x1,%edi
xor    %edx,%edx
xor    %ecx,%ecx
call   1030 <atom_info@plt>
test   %r15,%r15
jle    12de <atom_idx+0x1be>
xor    %ebx,%ebx
mov    $0x20,%ebp
jmp    1177 <atom_idx+0x57>
nopl   0x0(%rax,%rax,1)
xor    %edx,%edx
mov    %rdx,%rcx
mov    %rcx,0x8(%r14,%rbx,8)
add    $0x1,%rbx
cmp    %rbx,%r15
je     12de <atom_idx+0x1be>
mov    0x8(%r12,%rbx,8),%rax
mov    $0x3,%ecx
cmpb   $0x48,(%rax)
je     1165 <atom_idx+0x45>
movsbl 0x2(%rax),%edi
call   1040 <isupper@plt>
mov    0x8(%r12,%rbx,8),%rcx
test   %rax,%rax
je     119f <atom_idx+0x7f>
movzbl 0x2(%rcx),%eax
jmp    11a1 <atom_idx+0x81>
mov    $0x20,%al
cmp    $0x52,%al
movsbl %al,%edx
mov    %edx,%eax
cmovne %ebp,%eax
cmp    $0x4c,%dl
cmove  %edx,%eax
cmp    $0x49,%dl
movzbl 0x1(%rcx),%ecx
cmove  %edx,%eax
cmp    (%rsp),%cl
jne    11c9 <atom_idx+0xa9>
movsbl 0x1(%rsp),%edx
cmp    %edx,%eax
je     1160 <atom_idx+0x40>
cmp    0x3(%rsp),%cl
jne    11dd <atom_idx+0xbd>
movsbl 0x4(%rsp),%esi
mov    $0x1,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x6(%rsp),%cl
jne    11f5 <atom_idx+0xd5>
movsbl 0x7(%rsp),%esi
mov    $0x2,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x9(%rsp),%cl
jne    120d <atom_idx+0xed>
movsbl 0xa(%rsp),%esi
mov    $0x3,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0xc(%rsp),%cl
jne    1225 <atom_idx+0x105>
movsbl 0xd(%rsp),%esi
mov    $0x4,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0xf(%rsp),%cl
jne    123d <atom_idx+0x11d>
movsbl 0x10(%rsp),%esi
mov    $0x5,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x12(%rsp),%cl
jne    1255 <atom_idx+0x135>
movsbl 0x13(%rsp),%esi
mov    $0x6,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x15(%rsp),%cl
jne    126d <atom_idx+0x14d>
movsbl 0x16(%rsp),%esi
mov    $0x7,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x18(%rsp),%cl
jne    1285 <atom_idx+0x165>
movsbl 0x19(%rsp),%esi
mov    $0x8,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x1b(%rsp),%cl
jne    129d <atom_idx+0x17d>
movsbl 0x1c(%rsp),%esi
mov    $0x9,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x1e(%rsp),%cl
jne    12b5 <atom_idx+0x195>
movsbl 0x1f(%rsp),%esi
mov    $0xa,%edx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
cmp    0x21(%rsp),%cl
jne    12d7 <atom_idx+0x1b7>
movsbl 0x22(%rsp),%esi
mov    $0xb,%edx
mov    $0x0,%ecx
cmp    %esi,%eax
je     1162 <atom_idx+0x42>
jmp    1165 <atom_idx+0x45>
xor    %ecx,%ecx
jmp    1165 <atom_idx+0x45>
add    $0x30,%rsp
pop    %rbx
pop    %r12
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
define void @atom_idx(i64 %0, i8** %1, i64* %2) {
%4 = alloca i64
%5 = alloca i8**
%6 = alloca i64*
%7 = alloca i8
%8 = alloca [12 x [3 x i8]]
%9 = alloca i64
%10 = alloca i64
store i64 %0, i64* %4
store i8** %1, i8*** %5
store i64* %2, i64** %6
%11 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %8, i64 0, i64 0
%12 = bitcast [3 x i8]* %11 to i8**
%13 = call i32 @atom_info(i32 1, i8** %12, i32* null, i32* null)
store i64 1, i64* %9
br label %14
14: ; preds = %109, %3
%15 = load i64, i64* %9
%16 = load i64, i64* %4
%17 = icmp sle i64 %15, %16
br i1 %17, label %18, label %112
18: ; preds = %14
%19 = load i8**, i8*** %5
%20 = load i64, i64* %9
%21 = getelementptr inbounds i8*, i8** %19, i64 %20
%22 = load i8*, i8** %21
%23 = getelementptr inbounds i8, i8* %22, i64 0
%24 = load i8, i8* %23
%25 = sext i8 %24 to i32
%26 = icmp eq i32 %25, 72
br i1 %26, label %27, label %31
27: ; preds = %18
%28 = load i64*, i64** %6
%29 = load i64, i64* %9
%30 = getelementptr inbounds i64, i64* %28, i64 %29
store i64 3, i64* %30
br label %109
31: ; preds = %18
%32 = load i8**, i8*** %5
%33 = load i64, i64* %9
%34 = getelementptr inbounds i8*, i8** %32, i64 %33
%35 = load i8*, i8** %34
%36 = getelementptr inbounds i8, i8* %35, i64 2
%37 = load i8, i8* %36
%38 = sext i8 %37 to i32
%39 = call i64 @isupper(i32 %38)
%40 = icmp ne i64 %39, 0
br i1 %40, label %41, label %49
41: ; preds = %31
%42 = load i8**, i8*** %5
%43 = load i64, i64* %9
%44 = getelementptr inbounds i8*, i8** %42, i64 %43
%45 = load i8*, i8** %44
%46 = getelementptr inbounds i8, i8* %45, i64 2
%47 = load i8, i8* %46
%48 = sext i8 %47 to i32
br label %50
49: ; preds = %31
br label %50
50: ; preds = %49, %41
%51 = phi i32 [ %48, %41 ], [ 32, %49 ]
%52 = trunc i32 %51 to i8
store i8 %52, i8* %7
%53 = load i8, i8* %7
%54 = sext i8 %53 to i32
%55 = icmp ne i32 %54, 76
br i1 %55, label %56, label %65
56: ; preds = %50
%57 = load i8, i8* %7
%58 = sext i8 %57 to i32
%59 = icmp ne i32 %58, 82
br i1 %59, label %60, label %65
60: ; preds = %56
%61 = load i8, i8* %7
%62 = sext i8 %61 to i32
%63 = icmp ne i32 %62, 73
br i1 %63, label %64, label %65
64: ; preds = %60
store i8 32, i8* %7
br label %65
65: ; preds = %64, %60, %56, %50
store i64 0, i64* %10
br label %66
66: ; preds = %98, %65
%67 = load i64, i64* %10
%68 = icmp slt i64 %67, 12
br i1 %68, label %69, label %101
69: ; preds = %66
%70 = load i8**, i8*** %5
%71 = load i64, i64* %9
%72 = getelementptr inbounds i8*, i8** %70, i64 %71
%73 = load i8*, i8** %72
%74 = getelementptr inbounds i8, i8* %73, i64 1
%75 = load i8, i8* %74
%76 = sext i8 %75 to i32
%77 = load i64, i64* %10
%78 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %8, i64 0, i64 %77
%79 = getelementptr inbounds [3 x i8], [3 x i8]* %78, i64 0, i64 0
%80 = load i8, i8* %79
%81 = sext i8 %80 to i32
%82 = icmp eq i32 %76, %81
br i1 %82, label %83, label %97
83: ; preds = %69
%84 = load i8, i8* %7
%85 = sext i8 %84 to i32
%86 = load i64, i64* %10
%87 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %8, i64 0, i64 %86
%88 = getelementptr inbounds [3 x i8], [3 x i8]* %87, i64 0, i64 1
%89 = load i8, i8* %88
%90 = sext i8 %89 to i32
%91 = icmp eq i32 %85, %90
br i1 %91, label %92, label %97
92: ; preds = %83
%93 = load i64, i64* %10
%94 = load i64*, i64** %6
%95 = load i64, i64* %9
%96 = getelementptr inbounds i64, i64* %94, i64 %95
store i64 %93, i64* %96
br label %101
97: ; preds = %83, %69
br label %98
98: ; preds = %97
%99 = load i64, i64* %10
%100 = add nsw i64 %99, 1
store i64 %100, i64* %10
br label %66
101: ; preds = %92, %66
%102 = load i64, i64* %10
%103 = icmp sge i64 %102, 12
br i1 %103, label %104, label %108
104: ; preds = %101
%105 = load i64*, i64** %6
%106 = load i64, i64* %9
%107 = getelementptr inbounds i64, i64* %105, i64 %106
store i64 0, i64* %107
br label %108
108: ; preds = %104, %101
br label %109
109: ; preds = %108, %27
%110 = load i64, i64* %9
%111 = add nsw i64 %110, 1
store i64 %111, i64* %9
br label %14
112: ; preds = %14
ret void
}

LLVM IR (-O2):
define void @atom_idx(i64 %0, i8** nocapture %1, i64* nocapture writeonly %2) {
%4 = alloca [12 x [3 x i8]]
%5 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 0, i64 0
%6 = bitcast [12 x [3 x i8]]* %4 to i8**
%7 = call i32 @atom_info(i32 1, i8** %6, i32* null, i32* null)
%8 = icmp slt i64 %0, 1
br i1 %8, label %150, label %9
9: ; preds = %3
%10 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 0, i64 1
%11 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 1, i64 0
%12 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 1, i64 1
%13 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 2, i64 0
%14 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 2, i64 1
%15 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 3, i64 0
%16 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 3, i64 1
%17 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 4, i64 0
%18 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 4, i64 1
%19 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 5, i64 0
%20 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 5, i64 1
%21 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 6, i64 0
%22 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 6, i64 1
%23 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 7, i64 0
%24 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 7, i64 1
%25 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 8, i64 0
%26 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 8, i64 1
%27 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 9, i64 0
%28 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 9, i64 1
%29 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 10, i64 0
%30 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 10, i64 1
%31 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 11, i64 0
%32 = getelementptr inbounds [12 x [3 x i8]], [12 x [3 x i8]]* %4, i64 0, i64 11, i64 1
br label %33
33: ; preds = %9, %145
%34 = phi i64 [ %148, %145 ], [ 1, %9 ]
%35 = getelementptr inbounds i8*, i8** %1, i64 %34
%36 = load i8*, i8** %35
%37 = load i8, i8* %36
%38 = icmp eq i8 %37, 72
br i1 %38, label %145, label %39
39: ; preds = %33
%40 = getelementptr inbounds i8, i8* %36, i64 2
%41 = load i8, i8* %40
%42 = sext i8 %41 to i32
%43 = call i64 @isupper(i32 %42)
%44 = icmp eq i64 %43, 0
%45 = load i8*, i8** %35
br i1 %44, label %49, label %46
46: ; preds = %39
%47 = getelementptr inbounds i8, i8* %45, i64 2
%48 = load i8, i8* %47
br label %49
49: ; preds = %39, %46
%50 = phi i8 [ %48, %46 ], [ 32, %39 ]
%51 = icmp ne i8 %50, 76
%52 = icmp ne i8 %50, 82
%53 = and i1 %51, %52
%54 = icmp ne i8 %50, 73
%55 = and i1 %54, %53
%56 = getelementptr inbounds i8, i8* %45, i64 1
%57 = load i8, i8* %56
%58 = sext i8 %50 to i32
%59 = select i1 %55, i32 32, i32 %58
%60 = load i8, i8* %5
%61 = icmp eq i8 %57, %60
%62 = load i8, i8* %10
%63 = sext i8 %62 to i32
%64 = icmp eq i32 %59, %63
%65 = select i1 %61, i1 %64, i1 false
br i1 %65, label %143, label %66
66: ; preds = %49
%67 = load i8, i8* %11
%68 = icmp eq i8 %57, %67
%69 = load i8, i8* %12
%70 = sext i8 %69 to i32
%71 = icmp eq i32 %59, %70
%72 = select i1 %68, i1 %71, i1 false
br i1 %72, label %143, label %73
73: ; preds = %66
%74 = load i8, i8* %13
%75 = icmp eq i8 %57, %74
%76 = load i8, i8* %14
%77 = sext i8 %76 to i32
%78 = icmp eq i32 %59, %77
%79 = select i1 %75, i1 %78, i1 false
br i1 %79, label %143, label %80
80: ; preds = %73
%81 = load i8, i8* %15
%82 = icmp eq i8 %57, %81
%83 = load i8, i8* %16
%84 = sext i8 %83 to i32
%85 = icmp eq i32 %59, %84
%86 = select i1 %82, i1 %85, i1 false
br i1 %86, label %143, label %87
87: ; preds = %80
%88 = load i8, i8* %17
%89 = icmp eq i8 %57, %88
%90 = load i8, i8* %18
%91 = sext i8 %90 to i32
%92 = icmp eq i32 %59, %91
%93 = select i1 %89, i1 %92, i1 false
br i1 %93, label %143, label %94
94: ; preds = %87
%95 = load i8, i8* %19
%96 = icmp eq i8 %57, %95
%97 = load i8, i8* %20
%98 = sext i8 %97 to i32
%99 = icmp eq i32 %59, %98
%100 = select i1 %96, i1 %99, i1 false
br i1 %100, label %143, label %101
101: ; preds = %94
%102 = load i8, i8* %21
%103 = icmp eq i8 %57, %102
%104 = load i8, i8* %22
%105 = sext i8 %104 to i32
%106 = icmp eq i32 %59, %105
%107 = select i1 %103, i1 %106, i1 false
br i1 %107, label %143, label %108
108: ; preds = %101
%109 = load i8, i8* %23
%110 = icmp eq i8 %57, %109
%111 = load i8, i8* %24
%112 = sext i8 %111 to i32
%113 = icmp eq i32 %59, %112
%114 = select i1 %110, i1 %113, i1 false
br i1 %114, label %143, label %115
115: ; preds = %108
%116 = load i8, i8* %25
%117 = icmp eq i8 %57, %116
%118 = load i8, i8* %26
%119 = sext i8 %118 to i32
%120 = icmp eq i32 %59, %119
%121 = select i1 %117, i1 %120, i1 false
br i1 %121, label %143, label %122
122: ; preds = %115
%123 = load i8, i8* %27
%124 = icmp eq i8 %57, %123
%125 = load i8, i8* %28
%126 = sext i8 %125 to i32
%127 = icmp eq i32 %59, %126
%128 = select i1 %124, i1 %127, i1 false
br i1 %128, label %143, label %129
129: ; preds = %122
%130 = load i8, i8* %29
%131 = icmp eq i8 %57, %130
%132 = load i8, i8* %30
%133 = sext i8 %132 to i32
%134 = icmp eq i32 %59, %133
%135 = select i1 %131, i1 %134, i1 false
br i1 %135, label %143, label %136
136: ; preds = %129
%137 = load i8, i8* %31
%138 = icmp eq i8 %57, %137
%139 = load i8, i8* %32
%140 = sext i8 %139 to i32
%141 = icmp eq i32 %59, %140
%142 = select i1 %138, i1 %141, i1 false
br i1 %142, label %143, label %145
143: ; preds = %136, %129, %122, %115, %108, %101, %94, %87, %80, %73, %66, %49
%144 = phi i64 [ 0, %49 ], [ 1, %66 ], [ 2, %73 ], [ 3, %80 ], [ 4, %87 ], [ 5, %94 ], [ 6, %101 ], [ 7, %108 ], [ 8, %115 ], [ 9, %122 ], [ 10, %129 ], [ 11, %136 ]
br label %145
145: ; preds = %136, %33, %143
%146 = phi i64 [ %144, %143 ], [ 3, %33 ], [ 0, %136 ]
%147 = getelementptr inbounds i64, i64* %2, i64 %34
store i64 %146, i64* %147
%148 = add nuw i64 %34, 1
%149 = icmp eq i64 %34, %0
br i1 %149, label %150, label %33
150: ; preds = %145, %3
ret void
}