int swi50(int c) {
  int i;
  for (i = 0; i < 50; i++) {
    switch (i) {
    case 0:
      c++;
      break;
    case 1:
      c++;
      break;
    case 2:
      c++;
      break;
    case 3:
      c++;
      break;
    case 4:
      c++;
      break;
    case 5:
      c++;
      break;
    case 6:
      c++;
      break;
    case 7:
      c++;
      break;
    case 8:
      c++;
      break;
    case 9:
      c++;
      break;
    case 10:
      c++;
      break;
    case 11:
      c++;
      break;
    case 12:
      c++;
      break;
    case 13:
      c++;
      break;
    case 14:
      c++;
      break;
    case 15:
      c++;
      break;
    case 16:
      c++;
      break;
    case 17:
      c++;
      break;
    case 18:
      c++;
      break;
    case 19:
      c++;
      break;
    case 20:
      c++;
      break;
    case 21:
      c++;
      break;
    case 22:
      c++;
      break;
    case 23:
      c++;
      break;
    case 24:
      c++;
      break;
    case 25:
      c++;
      break;
    case 26:
      c++;
      break;
    case 27:
      c++;
      break;
    case 28:
      c++;
      break;
    case 29:
      c++;
      break;
    case 30:
      c++;
      break;
    case 31:
      c++;
      break;
    case 32:
      c++;
      break;
    case 33:
      c++;
      break;
    case 34:
      c++;
      break;
    case 35:
      c++;
      break;
    case 36:
      c++;
      break;
    case 37:
      c++;
      break;
    case 38:
      c++;
      break;
    case 39:
      c++;
      break;
    case 40:
      c++;
      break;
    case 41:
      c++;
      break;
    case 42:
      c++;
      break;
    case 43:
      c++;
      break;
    case 44:
      c++;
      break;
    case 45:
      c++;
      break;
    case 46:
      c++;
      break;
    case 47:
      c++;
      break;
    case 48:
      c++;
      break;
    case 49:
      c++;
      break;
    case 50:
      c++;
      break;
    case 51:
      c++;
      break;
    case 52:
      c++;
      break;
    case 53:
      c++;
      break;
    case 54:
      c++;
      break;
    case 55:
      c++;
      break;
    case 56:
      c++;
      break;
    case 57:
      c++;
      break;
    case 58:
      c++;
      break;
    case 59:
      c++;
      break;
    default:
      c--;
      break;
    }
  }
  return c;
}


x86 assembly (clang, -O0):
<swi50>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x32,-0x8(%rbp)
jge    14a1 <swi50+0x3a1>
mov    -0x8(%rbp),%eax
mov    %rax,-0x10(%rbp)
sub    $0x3b,%rax
ja     1485 <swi50+0x385>
mov    -0x10(%rbp),%rax
lea    0xecc(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x4(%rbp)
jmp    148e <swi50+0x38e>
mov    -0x4(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,-0x4(%rbp)
jmp    1493 <swi50+0x393>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    110e <swi50+0xe>
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<swi50>:
mov    %edi,%eax
xor    %ecx,%ecx
jmp    1115 <swi50+0x15>
cs nopw 0x0(%rax,%rax,1)
add    %edx,%eax
add    $0x5,%ecx
mov    $0x1,%edx
mov    $0x1,%esi
cmp    $0x31,%ecx
jae    1173 <swi50+0x73>
add    %esi,%eax
cmp    $0x30,%ecx
jae    116a <swi50+0x6a>
add    %edx,%eax
mov    $0x1,%edx
mov    $0x1,%esi
cmp    $0x2f,%ecx
jae    1161 <swi50+0x61>
add    %esi,%eax
cmp    $0x2e,%ecx
jae    1158 <swi50+0x58>
add    %edx,%eax
mov    $0x1,%edx
cmp    $0x2d,%ecx
jb     1110 <swi50+0x10>
je     117c <swi50+0x7c>
mov    $0xffffffff,%edx
jmp    1110 <swi50+0x10>
je     117c <swi50+0x7c>
mov    $0xffffffff,%edx
jmp    1143 <swi50+0x43>
je     117c <swi50+0x7c>
mov    $0xffffffff,%esi
jmp    113c <swi50+0x3c>
je     117c <swi50+0x7c>
mov    $0xffffffff,%edx
jmp    112b <swi50+0x2b>
je     117c <swi50+0x7c>
mov    $0xffffffff,%esi
jmp    1124 <swi50+0x24>
add    $0x1,%eax
ret

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

LLVM IR (-O2):
define i32 @swi50(i32 %0) {
br label %2
2: ; preds = %22, %1
%3 = phi i32 [ 0, %1 ], [ %25, %22 ]
%4 = phi i32 [ %0, %1 ], [ %24, %22 ]
switch i32 %3, label %5 [
i32 0, label %6
i32 1, label %6
i32 2, label %6
i32 3, label %6
i32 4, label %6
i32 5, label %6
i32 6, label %6
i32 7, label %6
i32 8, label %6
i32 9, label %6
i32 10, label %6
i32 11, label %6
i32 12, label %6
i32 13, label %6
i32 14, label %6
i32 15, label %6
i32 16, label %6
i32 17, label %6
i32 18, label %6
i32 19, label %6
i32 20, label %6
i32 21, label %6
i32 22, label %6
i32 23, label %6
i32 24, label %6
i32 25, label %6
i32 26, label %6
i32 27, label %6
i32 28, label %6
i32 29, label %6
i32 30, label %6
i32 31, label %6
i32 32, label %6
i32 33, label %6
i32 34, label %6
i32 35, label %6
i32 36, label %6
i32 37, label %6
i32 38, label %6
i32 39, label %6
i32 40, label %6
i32 41, label %6
i32 42, label %6
i32 43, label %6
i32 44, label %6
i32 45, label %6
i32 46, label %6
i32 47, label %6
i32 48, label %6
i32 49, label %26
]
5: ; preds = %2
br label %6
6: ; preds = %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %2, %5
%7 = phi i32 [ -1, %5 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ], [ 1, %2 ]
%8 = add nsw i32 %4, %7
switch i32 %3, label %9 [
i32 48, label %26
i32 0, label %10
i32 1, label %10
i32 2, label %10
i32 3, label %10
i32 4, label %10
i32 5, label %10
i32 6, label %10
i32 7, label %10
i32 8, label %10
i32 9, label %10
i32 10, label %10
i32 11, label %10
i32 12, label %10
i32 13, label %10
i32 14, label %10
i32 15, label %10
i32 16, label %10
i32 17, label %10
i32 18, label %10
i32 19, label %10
i32 20, label %10
i32 21, label %10
i32 22, label %10
i32 23, label %10
i32 24, label %10
i32 25, label %10
i32 26, label %10
i32 27, label %10
i32 28, label %10
i32 29, label %10
i32 30, label %10
i32 31, label %10
i32 32, label %10
i32 33, label %10
i32 34, label %10
i32 35, label %10
i32 36, label %10
i32 37, label %10
i32 38, label %10
i32 39, label %10
i32 40, label %10
i32 41, label %10
i32 42, label %10
i32 43, label %10
i32 44, label %10
i32 45, label %10
i32 46, label %10
i32 47, label %10
]
9: ; preds = %6
br label %10
10: ; preds = %9, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6, %6
%11 = phi i32 [ -1, %9 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ], [ 1, %6 ]
%12 = add nsw i32 %8, %11
switch i32 %3, label %13 [
i32 47, label %26
i32 46, label %14
i32 0, label %14
i32 1, label %14
i32 2, label %14
i32 3, label %14
i32 4, label %14
i32 5, label %14
i32 6, label %14
i32 7, label %14
i32 8, label %14
i32 9, label %14
i32 10, label %14
i32 11, label %14
i32 12, label %14
i32 13, label %14
i32 14, label %14
i32 15, label %14
i32 16, label %14
i32 17, label %14
i32 18, label %14
i32 19, label %14
i32 20, label %14
i32 21, label %14
i32 22, label %14
i32 23, label %14
i32 24, label %14
i32 25, label %14
i32 26, label %14
i32 27, label %14
i32 28, label %14
i32 29, label %14
i32 30, label %14
i32 31, label %14
i32 32, label %14
i32 33, label %14
i32 34, label %14
i32 35, label %14
i32 36, label %14
i32 37, label %14
i32 38, label %14
i32 39, label %14
i32 40, label %14
i32 41, label %14
i32 42, label %14
i32 43, label %14
i32 44, label %14
i32 45, label %14
]
13: ; preds = %10
br label %14
14: ; preds = %10, %13, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10, %10
%15 = phi i32 [ -1, %13 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ], [ 1, %10 ]
%16 = add nsw i32 %12, %15
switch i32 %3, label %17 [
i32 46, label %26
i32 45, label %18
i32 44, label %18
i32 0, label %18
i32 1, label %18
i32 2, label %18
i32 3, label %18
i32 4, label %18
i32 5, label %18
i32 6, label %18
i32 7, label %18
i32 8, label %18
i32 9, label %18
i32 10, label %18
i32 11, label %18
i32 12, label %18
i32 13, label %18
i32 14, label %18
i32 15, label %18
i32 16, label %18
i32 17, label %18
i32 18, label %18
i32 19, label %18
i32 20, label %18
i32 21, label %18
i32 22, label %18
i32 23, label %18
i32 24, label %18
i32 25, label %18
i32 26, label %18
i32 27, label %18
i32 28, label %18
i32 29, label %18
i32 30, label %18
i32 31, label %18
i32 32, label %18
i32 33, label %18
i32 34, label %18
i32 35, label %18
i32 36, label %18
i32 37, label %18
i32 38, label %18
i32 39, label %18
i32 40, label %18
i32 41, label %18
i32 42, label %18
i32 43, label %18
]
17: ; preds = %14
br label %18
18: ; preds = %14, %14, %17, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14, %14
%19 = phi i32 [ -1, %17 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ], [ 1, %14 ]
%20 = add nsw i32 %16, %19
switch i32 %3, label %21 [
i32 45, label %26
i32 44, label %22
i32 43, label %22
i32 42, label %22
i32 0, label %22
i32 1, label %22
i32 2, label %22
i32 3, label %22
i32 4, label %22
i32 5, label %22
i32 6, label %22
i32 7, label %22
i32 8, label %22
i32 9, label %22
i32 10, label %22
i32 11, label %22
i32 12, label %22
i32 13, label %22
i32 14, label %22
i32 15, label %22
i32 16, label %22
i32 17, label %22
i32 18, label %22
i32 19, label %22
i32 20, label %22
i32 21, label %22
i32 22, label %22
i32 23, label %22
i32 24, label %22
i32 25, label %22
i32 26, label %22
i32 27, label %22
i32 28, label %22
i32 29, label %22
i32 30, label %22
i32 31, label %22
i32 32, label %22
i32 33, label %22
i32 34, label %22
i32 35, label %22
i32 36, label %22
i32 37, label %22
i32 38, label %22
i32 39, label %22
i32 40, label %22
i32 41, label %22
]
21: ; preds = %18
br label %22
22: ; preds = %18, %18, %18, %21, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18, %18
%23 = phi i32 [ -1, %21 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ], [ 1, %18 ]
%24 = add nsw i32 %20, %23
%25 = add nuw nsw i32 %3, 5
br label %2
26: ; preds = %18, %14, %10, %6, %2
%27 = phi i32 [ %4, %2 ], [ %8, %6 ], [ %12, %10 ], [ %16, %14 ], [ %20, %18 ]
%28 = add nsw i32 %27, 1
ret i32 %28
}