unsigned int funD(unsigned int x) {
  switch (x) {
  case 3 ... 4:
    return 0x4;
  case 5 ... 8:
    return 0x8;
  case 9 ... 16:
    return 0x10;
  case 17 ... 32:
    return 0x20;
  case 33 ... 64:
    return 0x40;
  case 65 ... 128:
    return 0x80;
  case 129 ... 256:
    return 0x100;
  case 257 ... 512:
    return 0x200;
  case 513 ... 1024:
    return 0x400;
  case 1025 ... 2048:
    return 0x800;
  case 2049 ... 4096:
    return 0x1000;
  case 4097 ... 8192:
    return 0x2000;
  case 8193 ... 16384:
    return 0x4000;
  case 16385 ... 32768:
    return 0x8000;
  case 32769 ... 65536:
    return 0x10000;
  case 0x10001 ... 0x20000:
    return 0x20000;
  case 0x20001 ... 0x40000:
    return 0x40000;
  case 0x40001 ... 0x80000:
    return 0x80000;
  case 0x80001 ... 0x100000:
    return 0x100000;
  case 0x100001 ... 0x200000:
    return 0x200000;
  case 0x200001 ... 0x400000:
    return 0x400000;
  case 0x400001 ... 0x800000:
    return 0x800000;
  case 0x800001 ... 0x1000000:
    return 0x1000000;
  case 0x1000001 ... 0x2000000:
    return 0x2000000;
  case 0x2000001 ... 0x4000000:
    return 0x4000000;
  case 0x4000001 ... 0x8000000:
    return 0x8000000;
  }
  return x;
}


x86 assembly (clang, -O0):
<funD>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0x14(%rbp)
add    $0xfffffffd,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x7d,%eax
ja     1431 <funD+0x331>
mov    -0x10(%rbp),%rax
lea    0xed6(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x4,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x8,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x10,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x20,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x40,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x80,-0x4(%rbp)
jmp    144f <funD+0x34f>
movl   $0x100,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x81,%eax
cmp    $0x7f,%eax
jbe    117b <funD+0x7b>
jmp    1449 <funD+0x349>
movl   $0x200,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x101,%eax
cmp    $0xff,%eax
jbe    119d <funD+0x9d>
jmp    1187 <funD+0x87>
movl   $0x400,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x201,%eax
cmp    $0x1ff,%eax
jbe    11c1 <funD+0xc1>
jmp    11a9 <funD+0xa9>
movl   $0x800,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x401,%eax
cmp    $0x3ff,%eax
jbe    11e5 <funD+0xe5>
jmp    11cd <funD+0xcd>
movl   $0x1000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x801,%eax
cmp    $0x7ff,%eax
jbe    1209 <funD+0x109>
jmp    11f1 <funD+0xf1>
movl   $0x2000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x1001,%eax
cmp    $0xfff,%eax
jbe    122d <funD+0x12d>
jmp    1215 <funD+0x115>
movl   $0x4000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x2001,%eax
cmp    $0x1fff,%eax
jbe    1251 <funD+0x151>
jmp    1239 <funD+0x139>
movl   $0x8000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x4001,%eax
cmp    $0x3fff,%eax
jbe    1275 <funD+0x175>
jmp    125d <funD+0x15d>
movl   $0x10000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x8001,%eax
cmp    $0x7fff,%eax
jbe    1299 <funD+0x199>
jmp    1281 <funD+0x181>
movl   $0x20000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x10001,%eax
cmp    $0xffff,%eax
jbe    12bd <funD+0x1bd>
jmp    12a5 <funD+0x1a5>
movl   $0x40000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x20001,%eax
cmp    $0x1ffff,%eax
jbe    12e1 <funD+0x1e1>
jmp    12c9 <funD+0x1c9>
movl   $0x80000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x40001,%eax
cmp    $0x3ffff,%eax
jbe    1305 <funD+0x205>
jmp    12ed <funD+0x1ed>
movl   $0x100000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x80001,%eax
cmp    $0x7ffff,%eax
jbe    1329 <funD+0x229>
jmp    1311 <funD+0x211>
movl   $0x200000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x100001,%eax
cmp    $0xfffff,%eax
jbe    134d <funD+0x24d>
jmp    1335 <funD+0x235>
movl   $0x400000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x200001,%eax
cmp    $0x1fffff,%eax
jbe    1371 <funD+0x271>
jmp    1359 <funD+0x259>
movl   $0x800000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x400001,%eax
cmp    $0x3fffff,%eax
jbe    1395 <funD+0x295>
jmp    137d <funD+0x27d>
movl   $0x1000000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x800001,%eax
cmp    $0x7fffff,%eax
jbe    13b9 <funD+0x2b9>
jmp    13a1 <funD+0x2a1>
movl   $0x2000000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x1000001,%eax
cmp    $0xffffff,%eax
jbe    13dd <funD+0x2dd>
jmp    13c5 <funD+0x2c5>
movl   $0x4000000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x2000001,%eax
cmp    $0x1ffffff,%eax
jbe    1401 <funD+0x301>
jmp    13e9 <funD+0x2e9>
movl   $0x8000000,-0x4(%rbp)
jmp    144f <funD+0x34f>
mov    -0x14(%rbp),%eax
sub    $0x4000001,%eax
cmp    $0x3ffffff,%eax
jbe    1425 <funD+0x325>
jmp    140d <funD+0x30d>
mov    -0x8(%rbp),%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<funD>:
lea    -0x3(%rdi),%eax
cmp    $0x7e,%eax
jae    1119 <funD+0x19>
cltq
lea    0xeef(%rip),%rcx
mov    (%rcx,%rax,4),%eax
jmp    12b2 <funD+0x1b2>
lea    -0x4000001(%rdi),%ecx
mov    $0x8000000,%eax
cmp    $0x4000000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x2000001(%rdi),%ecx
mov    $0x4000000,%eax
cmp    $0x2000000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x1000001(%rdi),%ecx
mov    $0x2000000,%eax
cmp    $0x1000000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x800001(%rdi),%ecx
mov    $0x1000000,%eax
cmp    $0x800000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x400001(%rdi),%ecx
mov    $0x800000,%eax
cmp    $0x400000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x200001(%rdi),%ecx
mov    $0x400000,%eax
cmp    $0x200000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x100001(%rdi),%ecx
mov    $0x200000,%eax
cmp    $0x100000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x80001(%rdi),%ecx
mov    $0x100000,%eax
cmp    $0x80000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x40001(%rdi),%ecx
mov    $0x80000,%eax
cmp    $0x40000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x20001(%rdi),%ecx
mov    $0x40000,%eax
cmp    $0x20000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x10001(%rdi),%ecx
mov    $0x20000,%eax
cmp    $0x10000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x8001(%rdi),%ecx
mov    $0x10000,%eax
cmp    $0x8000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x4001(%rdi),%ecx
mov    $0x8000,%eax
cmp    $0x4000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x2001(%rdi),%ecx
mov    $0x4000,%eax
cmp    $0x2000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x1001(%rdi),%ecx
mov    $0x2000,%eax
cmp    $0x1000,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x801(%rdi),%ecx
mov    $0x1000,%eax
cmp    $0x800,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x401(%rdi),%ecx
mov    $0x800,%eax
cmp    $0x400,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x201(%rdi),%ecx
mov    $0x400,%eax
cmp    $0x200,%ecx
jb     12b2 <funD+0x1b2>
lea    -0x101(%rdi),%ecx
mov    $0x200,%eax
cmp    $0x100,%ecx
jae    12b3 <funD+0x1b3>
ret
lea    -0x81(%rdi),%eax
cmp    $0x80,%eax
mov    $0x100,%eax
cmovae %edi,%eax
ret

LLVM IR (-O0):
define i32 @funD(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %88 [
i32 3, label %5
i32 4, label %5
i32 5, label %6
i32 6, label %6
i32 7, label %6
i32 8, label %6
i32 9, label %7
i32 10, label %7
i32 11, label %7
i32 12, label %7
i32 13, label %7
i32 14, label %7
i32 15, label %7
i32 16, label %7
i32 17, label %8
i32 18, label %8
i32 19, label %8
i32 20, label %8
i32 21, label %8
i32 22, label %8
i32 23, label %8
i32 24, label %8
i32 25, label %8
i32 26, label %8
i32 27, label %8
i32 28, label %8
i32 29, label %8
i32 30, label %8
i32 31, label %8
i32 32, label %8
i32 33, label %9
i32 34, label %9
i32 35, label %9
i32 36, label %9
i32 37, label %9
i32 38, label %9
i32 39, label %9
i32 40, label %9
i32 41, label %9
i32 42, label %9
i32 43, label %9
i32 44, label %9
i32 45, label %9
i32 46, label %9
i32 47, label %9
i32 48, label %9
i32 49, label %9
i32 50, label %9
i32 51, label %9
i32 52, label %9
i32 53, label %9
i32 54, label %9
i32 55, label %9
i32 56, label %9
i32 57, label %9
i32 58, label %9
i32 59, label %9
i32 60, label %9
i32 61, label %9
i32 62, label %9
i32 63, label %9
i32 64, label %9
i32 65, label %10
i32 66, label %10
i32 67, label %10
i32 68, label %10
i32 69, label %10
i32 70, label %10
i32 71, label %10
i32 72, label %10
i32 73, label %10
i32 74, label %10
i32 75, label %10
i32 76, label %10
i32 77, label %10
i32 78, label %10
i32 79, label %10
i32 80, label %10
i32 81, label %10
i32 82, label %10
i32 83, label %10
i32 84, label %10
i32 85, label %10
i32 86, label %10
i32 87, label %10
i32 88, label %10
i32 89, label %10
i32 90, label %10
i32 91, label %10
i32 92, label %10
i32 93, label %10
i32 94, label %10
i32 95, label %10
i32 96, label %10
i32 97, label %10
i32 98, label %10
i32 99, label %10
i32 100, label %10
i32 101, label %10
i32 102, label %10
i32 103, label %10
i32 104, label %10
i32 105, label %10
i32 106, label %10
i32 107, label %10
i32 108, label %10
i32 109, label %10
i32 110, label %10
i32 111, label %10
i32 112, label %10
i32 113, label %10
i32 114, label %10
i32 115, label %10
i32 116, label %10
i32 117, label %10
i32 118, label %10
i32 119, label %10
i32 120, label %10
i32 121, label %10
i32 122, label %10
i32 123, label %10
i32 124, label %10
i32 125, label %10
i32 126, label %10
i32 127, label %10
i32 128, label %10
]
5: ; preds = %1, %1
store i32 4, i32* %2
br label %93
6: ; preds = %1, %1, %1, %1
store i32 8, i32* %2
br label %93
7: ; preds = %1, %1, %1, %1, %1, %1, %1, %1
store i32 16, i32* %2
br label %93
8: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
store i32 32, i32* %2
br label %93
9: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
store i32 64, i32* %2
br label %93
10: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1
store i32 128, i32* %2
br label %93
11: ; preds = %12
store i32 256, i32* %2
br label %93
12: ; preds = %16
%13 = sub i32 %4, 129
%14 = icmp ule i32 %13, 127
br i1 %14, label %11, label %91
15: ; preds = %16
store i32 512, i32* %2
br label %93
16: ; preds = %20
%17 = sub i32 %4, 257
%18 = icmp ule i32 %17, 255
br i1 %18, label %15, label %12
19: ; preds = %20
store i32 1024, i32* %2
br label %93
20: ; preds = %24
%21 = sub i32 %4, 513
%22 = icmp ule i32 %21, 511
br i1 %22, label %19, label %16
23: ; preds = %24
store i32 2048, i32* %2
br label %93
24: ; preds = %28
%25 = sub i32 %4, 1025
%26 = icmp ule i32 %25, 1023
br i1 %26, label %23, label %20
27: ; preds = %28
store i32 4096, i32* %2
br label %93
28: ; preds = %32
%29 = sub i32 %4, 2049
%30 = icmp ule i32 %29, 2047
br i1 %30, label %27, label %24
31: ; preds = %32
store i32 8192, i32* %2
br label %93
32: ; preds = %36
%33 = sub i32 %4, 4097
%34 = icmp ule i32 %33, 4095
br i1 %34, label %31, label %28
35: ; preds = %36
store i32 16384, i32* %2
br label %93
36: ; preds = %40
%37 = sub i32 %4, 8193
%38 = icmp ule i32 %37, 8191
br i1 %38, label %35, label %32
39: ; preds = %40
store i32 32768, i32* %2
br label %93
40: ; preds = %44
%41 = sub i32 %4, 16385
%42 = icmp ule i32 %41, 16383
br i1 %42, label %39, label %36
43: ; preds = %44
store i32 65536, i32* %2
br label %93
44: ; preds = %48
%45 = sub i32 %4, 32769
%46 = icmp ule i32 %45, 32767
br i1 %46, label %43, label %40
47: ; preds = %48
store i32 131072, i32* %2
br label %93
48: ; preds = %52
%49 = sub i32 %4, 65537
%50 = icmp ule i32 %49, 65535
br i1 %50, label %47, label %44
51: ; preds = %52
store i32 262144, i32* %2
br label %93
52: ; preds = %56
%53 = sub i32 %4, 131073
%54 = icmp ule i32 %53, 131071
br i1 %54, label %51, label %48
55: ; preds = %56
store i32 524288, i32* %2
br label %93
56: ; preds = %60
%57 = sub i32 %4, 262145
%58 = icmp ule i32 %57, 262143
br i1 %58, label %55, label %52
59: ; preds = %60
store i32 1048576, i32* %2
br label %93
60: ; preds = %64
%61 = sub i32 %4, 524289
%62 = icmp ule i32 %61, 524287
br i1 %62, label %59, label %56
63: ; preds = %64
store i32 2097152, i32* %2
br label %93
64: ; preds = %68
%65 = sub i32 %4, 1048577
%66 = icmp ule i32 %65, 1048575
br i1 %66, label %63, label %60
67: ; preds = %68
store i32 4194304, i32* %2
br label %93
68: ; preds = %72
%69 = sub i32 %4, 2097153
%70 = icmp ule i32 %69, 2097151
br i1 %70, label %67, label %64
71: ; preds = %72
store i32 8388608, i32* %2
br label %93
72: ; preds = %76
%73 = sub i32 %4, 4194305
%74 = icmp ule i32 %73, 4194303
br i1 %74, label %71, label %68
75: ; preds = %76
store i32 16777216, i32* %2
br label %93
76: ; preds = %80
%77 = sub i32 %4, 8388609
%78 = icmp ule i32 %77, 8388607
br i1 %78, label %75, label %72
79: ; preds = %80
store i32 33554432, i32* %2
br label %93
80: ; preds = %84
%81 = sub i32 %4, 16777217
%82 = icmp ule i32 %81, 16777215
br i1 %82, label %79, label %76
83: ; preds = %84
store i32 67108864, i32* %2
br label %93
84: ; preds = %88
%85 = sub i32 %4, 33554433
%86 = icmp ule i32 %85, 33554431
br i1 %86, label %83, label %80
87: ; preds = %88
store i32 134217728, i32* %2
br label %93
88: ; preds = %1
%89 = sub i32 %4, 67108865
%90 = icmp ule i32 %89, 67108863
br i1 %90, label %87, label %84
91: ; preds = %12
%92 = load i32, i32* %3
store i32 %92, i32* %2
br label %93
93: ; preds = %91, %87, %83, %79, %75, %71, %67, %63, %59, %55, %51, %47, %43, %39, %35, %31, %27, %23, %19, %15, %11, %10, %9, %8, %7, %6, %5
%94 = load i32, i32* %2
ret i32 %94
}

LLVM IR (-O2):
@switch.table.funD = [126 x i32] [i32 4, i32 4, i32 8, i32 8, i32 8, i32 8, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 16, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 32, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 64, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128, i32 128]
define i32 @funD(i32 %0) {
%2 = add i32 %0, -3
%3 = icmp ult i32 %2, 126
br i1 %3, label %65, label %62
4: ; preds = %8
%5 = add i32 %0, -129
%6 = icmp ult i32 %5, 128
%7 = select i1 %6, i32 256, i32 %0
br label %69
8: ; preds = %11
%9 = add i32 %0, -257
%10 = icmp ult i32 %9, 256
br i1 %10, label %69, label %4
11: ; preds = %14
%12 = add i32 %0, -513
%13 = icmp ult i32 %12, 512
br i1 %13, label %69, label %8
14: ; preds = %17
%15 = add i32 %0, -1025
%16 = icmp ult i32 %15, 1024
br i1 %16, label %69, label %11
17: ; preds = %20
%18 = add i32 %0, -2049
%19 = icmp ult i32 %18, 2048
br i1 %19, label %69, label %14
20: ; preds = %23
%21 = add i32 %0, -4097
%22 = icmp ult i32 %21, 4096
br i1 %22, label %69, label %17
23: ; preds = %26
%24 = add i32 %0, -8193
%25 = icmp ult i32 %24, 8192
br i1 %25, label %69, label %20
26: ; preds = %29
%27 = add i32 %0, -16385
%28 = icmp ult i32 %27, 16384
br i1 %28, label %69, label %23
29: ; preds = %32
%30 = add i32 %0, -32769
%31 = icmp ult i32 %30, 32768
br i1 %31, label %69, label %26
32: ; preds = %35
%33 = add i32 %0, -65537
%34 = icmp ult i32 %33, 65536
br i1 %34, label %69, label %29
35: ; preds = %38
%36 = add i32 %0, -131073
%37 = icmp ult i32 %36, 131072
br i1 %37, label %69, label %32
38: ; preds = %41
%39 = add i32 %0, -262145
%40 = icmp ult i32 %39, 262144
br i1 %40, label %69, label %35
41: ; preds = %44
%42 = add i32 %0, -524289
%43 = icmp ult i32 %42, 524288
br i1 %43, label %69, label %38
44: ; preds = %47
%45 = add i32 %0, -1048577
%46 = icmp ult i32 %45, 1048576
br i1 %46, label %69, label %41
47: ; preds = %50
%48 = add i32 %0, -2097153
%49 = icmp ult i32 %48, 2097152
br i1 %49, label %69, label %44
50: ; preds = %53
%51 = add i32 %0, -4194305
%52 = icmp ult i32 %51, 4194304
br i1 %52, label %69, label %47
53: ; preds = %56
%54 = add i32 %0, -8388609
%55 = icmp ult i32 %54, 8388608
br i1 %55, label %69, label %50
56: ; preds = %59
%57 = add i32 %0, -16777217
%58 = icmp ult i32 %57, 16777216
br i1 %58, label %69, label %53
59: ; preds = %62
%60 = add i32 %0, -33554433
%61 = icmp ult i32 %60, 33554432
br i1 %61, label %69, label %56
62: ; preds = %1
%63 = add i32 %0, -67108865
%64 = icmp ult i32 %63, 67108864
br i1 %64, label %69, label %59
65: ; preds = %1
%66 = sext i32 %2 to i64
%67 = getelementptr inbounds [126 x i32], [126 x i32]* @switch.table.funD, i64 0, i64 %66
%68 = load i32, i32* %67
br label %69
69: ; preds = %65, %4, %62, %59, %56, %53, %50, %47, %44, %41, %38, %35, %32, %29, %26, %23, %20, %17, %14, %11, %8
%70 = phi i32 [ 512, %8 ], [ 1024, %11 ], [ 2048, %14 ], [ 4096, %17 ], [ 8192, %20 ], [ 16384, %23 ], [ 32768, %26 ], [ 65536, %29 ], [ 131072, %32 ], [ 262144, %35 ], [ 524288, %38 ], [ 1048576, %41 ], [ 2097152, %44 ], [ 4194304, %47 ], [ 8388608, %50 ], [ 16777216, %53 ], [ 33554432, %56 ], [ 67108864, %59 ], [ 134217728, %62 ], [ %7, %4 ], [ %68, %65 ]
ret i32 %70
}