void modbig(int *x, int *y, int *z) {
  int a, b, n = y[0], l;
  for (a = 0; a <= x[0]; a++)
    z[a] = x[a];
  l = x[0] - y[0];
  for (a = l; a >= 0; a--) {
    if (z[0] < y[0] + a)
      continue;
    else if (z[0] == n + a) {
      for (b = 0; z[z[0] - b] == y[n - b] && b + 1 < n; b++)
        ;
      if (z[z[0] - b] < y[n - b])
        continue;
    }
    for (b = 1; b <= n; b++) {
      z[a + b] -= y[b];
      if (z[a + b] < 0) {
        z[a + b] += 2;
        z[a + b + 1]--;
      }
    }
    while (z[0] > 1 && z[z[0]] == 0)
      z[0]--;
  }
}


x86 assembly (clang, -O0):
<modbig>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x10(%rbp),%rax
mov    (%rax),%eax
mov    %eax,-0x24(%rbp)
movl   $0x0,-0x1c(%rbp)
mov    -0x1c(%rbp),%eax
mov    -0x8(%rbp),%rcx
cmp    (%rcx),%eax
jg     1153 <modbig+0x53>
mov    -0x8(%rbp),%rax
movslq -0x1c(%rbp),%rcx
mov    (%rax,%rcx,4),%edx
mov    -0x18(%rbp),%rax
movslq -0x1c(%rbp),%rcx
mov    %edx,(%rax,%rcx,4)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    1120 <modbig+0x20>
mov    -0x8(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
sub    (%rcx),%eax
mov    %eax,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    %eax,-0x1c(%rbp)
cmpl   $0x0,-0x1c(%rbp)
jl     132c <modbig+0x22c>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
mov    -0x10(%rbp),%rcx
mov    (%rcx),%ecx
add    -0x1c(%rbp),%ecx
cmp    %ecx,%eax
jge    118e <modbig+0x8e>
jmp    131e <modbig+0x21e>
mov    -0x18(%rbp),%rax
mov    (%rax),%eax
mov    -0x24(%rbp),%ecx
add    -0x1c(%rbp),%ecx
cmp    %ecx,%eax
jne    123c <modbig+0x13c>
movl   $0x0,-0x20(%rbp)
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
mov    (%rcx),%ecx
sub    -0x20(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%ecx
mov    -0x10(%rbp),%rdx
mov    -0x24(%rbp),%eax
sub    -0x20(%rbp),%eax
movslq %eax,%rsi
xor    %eax,%eax
cmp    (%rdx,%rsi,4),%ecx
mov    %al,-0x29(%rbp)
jne    11e6 <modbig+0xe6>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
cmp    -0x24(%rbp),%eax
setl   %al
mov    %al,-0x29(%rbp)
mov    -0x29(%rbp),%al
test   $0x1,%al
jne    11f6 <modbig+0xf6>
jmp    1209 <modbig+0x109>
jmp    11fb <modbig+0xfb>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11a9 <modbig+0xa9>
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
mov    (%rcx),%ecx
sub    -0x20(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%eax
mov    -0x10(%rbp),%rcx
mov    -0x24(%rbp),%edx
sub    -0x20(%rbp),%edx
movslq %edx,%rdx
cmp    (%rcx,%rdx,4),%eax
jge    1237 <modbig+0x137>
jmp    131e <modbig+0x21e>
jmp    123c <modbig+0x13c>
jmp    1241 <modbig+0x141>
movl   $0x1,-0x20(%rbp)
mov    -0x20(%rbp),%eax
cmp    -0x24(%rbp),%eax
jg     12cd <modbig+0x1cd>
mov    -0x10(%rbp),%rax
movslq -0x20(%rbp),%rcx
mov    (%rax,%rcx,4),%esi
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x20(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
sub    %esi,%edx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x20(%rbp),%ecx
movslq %ecx,%rcx
cmpl   $0x0,(%rax,%rcx,4)
jge    12ba <modbig+0x1ba>
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x20(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
add    $0x2,%edx
mov    %edx,(%rax,%rcx,4)
mov    -0x18(%rbp),%rax
mov    -0x1c(%rbp),%ecx
add    -0x20(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,4),%edx
add    $0xffffffff,%edx
mov    %edx,(%rax,%rcx,4)
jmp    12bf <modbig+0x1bf>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    1248 <modbig+0x148>
jmp    12d2 <modbig+0x1d2>
mov    -0x18(%rbp),%rcx
xor    %eax,%eax
cmpl   $0x1,(%rcx)
mov    %al,-0x2a(%rbp)
jle    12f9 <modbig+0x1f9>
mov    -0x18(%rbp),%rax
mov    -0x18(%rbp),%rcx
movslq (%rcx),%rcx
cmpl   $0x0,(%rax,%rcx,4)
sete   %al
mov    %al,-0x2a(%rbp)
mov    -0x2a(%rbp),%al
test   $0x1,%al
jne    1309 <modbig+0x209>
jmp    1319 <modbig+0x219>
mov    -0x18(%rbp),%rax
mov    (%rax),%ecx
add    $0xffffffff,%ecx
mov    %ecx,(%rax)
jmp    12d2 <modbig+0x1d2>
jmp    131e <modbig+0x21e>
mov    -0x1c(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x1c(%rbp)
jmp    1168 <modbig+0x68>
pop    %rbp
ret

x86 assembly (clang, -O2):
<modbig>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
mov    (%rsi),%ebx
mov    (%rdi),%eax
test   %eax,%eax
js     1141 <modbig+0x41>
mov    %eax,(%rdx)
mov    (%rdi),%eax
test   %eax,%eax
jle    1134 <modbig+0x34>
xor    %ecx,%ecx
nopl   0x0(%rax)
mov    0x4(%rdi,%rcx,4),%eax
mov    %eax,0x4(%rdx,%rcx,4)
movslq (%rdi),%rax
add    $0x1,%rcx
cmp    %rax,%rcx
jl     1120 <modbig+0x20>
mov    (%rsi),%r14d
sub    %r14d,%eax
jns    114d <modbig+0x4d>
jmp    125e <modbig+0x15e>
mov    %ebx,%r14d
sub    %r14d,%eax
js     125e <modbig+0x15e>
movslq %ebx,%r11
lea    0x1(%r11),%r10d
mov    %eax,%r9d
mov    (%rdx),%r8d
lea    (%rsi,%r11,4),%r15
lea    (%rdx,%r9,4),%r13
mov    %r8d,%r12d
mov    %rbx,-0x8(%rsp)
nopw   0x0(%rax,%rax,1)
lea    (%r9,%r14,1),%eax
cmp    %eax,%r12d
jl     11c0 <modbig+0xc0>
lea    (%rbx,%r9,1),%eax
cmp    %eax,%r12d
jne    11d0 <modbig+0xd0>
movslq %r12d,%rax
lea    (%rdx,%rax,4),%r14
mov    $0x1,%eax
xor    %ebx,%ebx
mov    (%r14,%rbx,1),%edi
mov    (%r15,%rbx,1),%ecx
cmp    %ecx,%edi
jne    11ac <modbig+0xac>
add    $0xfffffffffffffffc,%rbx
lea    0x1(%rax),%rbp
cmp    %r11,%rax
mov    %rbp,%rax
jl     1190 <modbig+0x90>
cmp    %ecx,%edi
mov    -0x8(%rsp),%rbx
jge    11d0 <modbig+0xd0>
cs nopw 0x0(%rax,%rax,1)
nop
mov    %r8d,%ebp
jmp    1246 <modbig+0x146>
nopl   0x0(%rax,%rax,1)
test   %ebx,%ebx
jle    1213 <modbig+0x113>
mov    $0x1,%ecx
jmp    11e9 <modbig+0xe9>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rcx
cmp    %rcx,%r10
je     1210 <modbig+0x110>
mov    0x0(%r13,%rcx,4),%eax
sub    (%rsi,%rcx,4),%eax
mov    %eax,0x0(%r13,%rcx,4)
jns    11e0 <modbig+0xe0>
add    $0x2,%eax
mov    %eax,0x0(%r13,%rcx,4)
addl   $0xffffffff,0x4(%r13,%rcx,4)
jmp    11e0 <modbig+0xe0>
nopl   0x0(%rax,%rax,1)
mov    (%rdx),%r8d
cmp    $0x2,%r8d
jl     1240 <modbig+0x140>
mov    %r8d,%eax
lea    (%rdx,%rax,4),%rax
cmpl   $0x0,(%rax)
jne    1240 <modbig+0x140>
lea    -0x1(%r8),%ebp
mov    %ebp,(%rdx)
add    $0xfffffffffffffffc,%rax
mov    %ebp,%r12d
cmp    $0x2,%r8d
mov    %ebp,%r8d
jg     1220 <modbig+0x120>
jmp    1246 <modbig+0x146>
nopl   (%rax)
mov    %r8d,%ebp
mov    %r8d,%r12d
test   %r9,%r9
jle    125e <modbig+0x15e>
add    $0xffffffffffffffff,%r9
mov    (%rsi),%r14d
add    $0xfffffffffffffffc,%r13
mov    %ebp,%r8d
jmp    1170 <modbig+0x70>
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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