short breathFirstSearch(short *graph, int zoneCount, short startZone,
                        short endZone, short *temp1, short *temp2, char all) {
  int i, n = 0;
  short zone, next;
  temp1[n++] = startZone;
  for (i = 0; i < zoneCount; i++) {
    temp2[i] = -1;
  }
  for (; n;) {
    zone = temp1[--n];
    if (!all && zone == endZone)
      break;
    for (i = 0; i < 6 && ((next = graph[zone * 6 + i]) != -1); i++) {
      if (temp2[next] == -1) {
        temp1[n++] = next;
        temp2[next] = zone;
      }
    }
  }
  zone = endZone;
  temp1[0] = zone;
  for (i = 1; zone != startZone; i++) {
    zone = temp2[zone];
    temp1[i] = zone;
    if (zone == -1)
      return -1;
  }
  return temp1[i - 2];
}


x86 assembly (clang, -O0):
<breathFirstSearch>:
push   %rbp
mov    %rsp,%rbp
mov    %cx,%ax
mov    %dx,%cx
mov    0x10(%rbp),%dl
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
mov    %cx,-0x16(%rbp)
mov    %ax,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
movl   $0x0,-0x30(%rbp)
mov    -0x16(%rbp),%dx
mov    -0x20(%rbp),%rax
mov    -0x30(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x30(%rbp)
movslq %ecx,%rcx
mov    %dx,(%rax,%rcx,2)
movl   $0x0,-0x2c(%rbp)
mov    -0x2c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1174 <breathFirstSearch+0x74>
mov    -0x28(%rbp),%rax
movslq -0x2c(%rbp),%rcx
movw   $0xffff,(%rax,%rcx,2)
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    114c <breathFirstSearch+0x4c>
jmp    1179 <breathFirstSearch+0x79>
cmpl   $0x0,-0x30(%rbp)
je     125c <breathFirstSearch+0x15c>
mov    -0x20(%rbp),%rax
mov    -0x30(%rbp),%ecx
add    $0xffffffff,%ecx
mov    %ecx,-0x30(%rbp)
movslq %ecx,%rcx
mov    (%rax,%rcx,2),%ax
mov    %ax,-0x32(%rbp)
cmpb   $0x0,0x10(%rbp)
jne    11ba <breathFirstSearch+0xba>
movswl -0x32(%rbp),%eax
movswl -0x18(%rbp),%ecx
cmp    %ecx,%eax
jne    11ba <breathFirstSearch+0xba>
jmp    125c <breathFirstSearch+0x15c>
movl   $0x0,-0x2c(%rbp)
xor    %eax,%eax
cmpl   $0x6,-0x2c(%rbp)
mov    %al,-0x35(%rbp)
jge    11f3 <breathFirstSearch+0xf3>
mov    -0x10(%rbp),%rax
movswl -0x32(%rbp),%ecx
imul   $0x6,%ecx,%ecx
add    -0x2c(%rbp),%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,2),%ax
mov    %ax,-0x34(%rbp)
cwtl
cmp    $0xffffffff,%eax
setne  %al
mov    %al,-0x35(%rbp)
mov    -0x35(%rbp),%al
test   $0x1,%al
jne    1203 <breathFirstSearch+0x103>
jmp    1257 <breathFirstSearch+0x157>
mov    -0x28(%rbp),%rax
movswq -0x34(%rbp),%rcx
movswl (%rax,%rcx,2),%eax
cmp    $0xffffffff,%eax
jne    1244 <breathFirstSearch+0x144>
mov    -0x34(%rbp),%dx
mov    -0x20(%rbp),%rax
mov    -0x30(%rbp),%ecx
mov    %ecx,%esi
add    $0x1,%esi
mov    %esi,-0x30(%rbp)
movslq %ecx,%rcx
mov    %dx,(%rax,%rcx,2)
mov    -0x32(%rbp),%dx
mov    -0x28(%rbp),%rax
movswq -0x34(%rbp),%rcx
mov    %dx,(%rax,%rcx,2)
jmp    1249 <breathFirstSearch+0x149>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    11c1 <breathFirstSearch+0xc1>
jmp    1179 <breathFirstSearch+0x79>
mov    -0x18(%rbp),%ax
mov    %ax,-0x32(%rbp)
mov    -0x32(%rbp),%cx
mov    -0x20(%rbp),%rax
mov    %cx,(%rax)
movl   $0x1,-0x2c(%rbp)
movswl -0x32(%rbp),%eax
movswl -0x16(%rbp),%ecx
cmp    %ecx,%eax
je     12d2 <breathFirstSearch+0x1d2>
mov    -0x28(%rbp),%rax
movswq -0x32(%rbp),%rcx
mov    (%rax,%rcx,2),%ax
mov    %ax,-0x32(%rbp)
mov    -0x32(%rbp),%dx
mov    -0x20(%rbp),%rax
movslq -0x2c(%rbp),%rcx
mov    %dx,(%rax,%rcx,2)
movswl -0x32(%rbp),%eax
cmp    $0xffffffff,%eax
jne    12bf <breathFirstSearch+0x1bf>
movw   $0xffff,-0x2(%rbp)
jmp    12e7 <breathFirstSearch+0x1e7>
jmp    12c4 <breathFirstSearch+0x1c4>
mov    -0x2c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x2c(%rbp)
jmp    1276 <breathFirstSearch+0x176>
mov    -0x20(%rbp),%rax
mov    -0x2c(%rbp),%ecx
sub    $0x2,%ecx
movslq %ecx,%rcx
mov    (%rax,%rcx,2),%ax
mov    %ax,-0x2(%rbp)
movswl -0x2(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<breathFirstSearch>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %r9,%r12
mov    %r8,%r14
mov    %ecx,%ebp
mov    %edx,%r15d
mov    %rdi,%r13
mov    %r15w,(%r8)
test   %esi,%esi
jle    1143 <breathFirstSearch+0x33>
mov    %esi,%edx
add    %rdx,%rdx
mov    %r12,%rdi
mov    $0xff,%esi
call   1030 <memset@plt>
mov    0x40(%rsp),%r8b
mov    $0x1,%edi
jmp    115a <breathFirstSearch+0x4a>
nop
mov    %ecx,%edi
test   %ecx,%ecx
je     1278 <breathFirstSearch+0x168>
movslq %edi,%rax
movzwl -0x2(%r14,%rax,2),%edx
test   %r8b,%r8b
jne    1171 <breathFirstSearch+0x61>
cmp    %bp,%dx
je     1278 <breathFirstSearch+0x168>
lea    -0x1(%rdi),%ecx
movswq %dx,%rsi
add    %rsi,%rsi
lea    (%rsi,%rsi,2),%rsi
movswq 0x0(%r13,%rsi,2),%rbx
cmp    $0xffffffffffffffff,%rbx
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rbx,2)
jne    11a3 <breathFirstSearch+0x93>
add    $0xffffffffffffffff,%rax
mov    %bx,(%r14,%rax,2)
mov    %dx,(%r12,%rbx,2)
mov    %edi,%ecx
lea    (%rsi,%rsi,1),%rax
or     $0x2,%rax
movswq 0x0(%r13,%rax,1),%rax
cmp    $0xffffffffffffffff,%rax
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rax,2)
jne    11cf <breathFirstSearch+0xbf>
movslq %ecx,%rdi
add    $0x1,%ecx
mov    %ax,(%r14,%rdi,2)
mov    %dx,(%r12,%rax,2)
movswq 0x4(%r13,%rsi,2),%rax
cmp    $0xffffffffffffffff,%rax
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rax,2)
jne    11f7 <breathFirstSearch+0xe7>
movslq %ecx,%rdi
add    $0x1,%ecx
mov    %ax,(%r14,%rdi,2)
mov    %dx,(%r12,%rax,2)
movswq 0x6(%r13,%rsi,2),%rax
cmp    $0xffffffffffffffff,%rax
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rax,2)
jne    121f <breathFirstSearch+0x10f>
movslq %ecx,%rdi
add    $0x1,%ecx
mov    %ax,(%r14,%rdi,2)
mov    %dx,(%r12,%rax,2)
movswq 0x8(%r13,%rsi,2),%rax
cmp    $0xffffffffffffffff,%rax
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rax,2)
jne    1247 <breathFirstSearch+0x137>
movslq %ecx,%rdi
add    $0x1,%ecx
mov    %ax,(%r14,%rdi,2)
mov    %dx,(%r12,%rax,2)
movswq 0xa(%r13,%rsi,2),%rax
cmp    $0xffffffffffffffff,%rax
je     1150 <breathFirstSearch+0x40>
cmpw   $0xffff,(%r12,%rax,2)
jne    1150 <breathFirstSearch+0x40>
movslq %ecx,%rsi
add    $0x1,%ecx
mov    %ax,(%r14,%rsi,2)
mov    %dx,(%r12,%rax,2)
jmp    1150 <breathFirstSearch+0x40>
mov    %bp,(%r14)
mov    $0xffffffffffffffff,%rax
cmp    %r15w,%bp
je     12d3 <breathFirstSearch+0x1c3>
lea    0x2(%r14),%rcx
movabs $0xffffffff00000000,%rax
ff ff ff
movabs $0x100000000,%rdx
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movswq %bp,%rsi
movzwl (%r12,%rsi,2),%ebp
mov    %bp,(%rcx)
cmp    $0xffff,%bp
je     12da <breathFirstSearch+0x1ca>
add    %rdx,%rax
add    $0x2,%rcx
cmp    %r15w,%bp
jne    12b0 <breathFirstSearch+0x1a0>
sar    $0x20,%rax
movzwl (%r14,%rax,2),%eax
jmp    12de <breathFirstSearch+0x1ce>
mov    $0xffff,%ax
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

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

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