#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 */
typedef int uint8_t;
typedef int uint32_t;

/* Variables and functions */
uint8_t iap_get_sector(uint32_t addr) {
  if (addr <= 0x00000FFF) {
    return 0;
  }
  if ((addr >= 0x00001000) && (addr <= 0x00001FFF)) {
    return 1;
  }
  if ((addr >= 0x00002000) && (addr <= 0x00002FFF)) {
    return 2;
  }
  if ((addr >= 0x00003000) && (addr <= 0x00003FFF)) {
    return 3;
  }
  if ((addr >= 0x00004000) && (addr <= 0x00004FFF)) {
    return 4;
  }
  if ((addr >= 0x00005000) && (addr <= 0x00005FFF)) {
    return 5;
  }
  if ((addr >= 0x00006000) && (addr <= 0x00006FFF)) {
    return 6;
  }
  if ((addr >= 0x00007000) && (addr <= 0x00007FFF)) {
    return 7;
  }
  if ((addr >= 0x00008000) && (addr <= 0x0000FFFF)) {
    return 8;
  }
  if ((addr >= 0x00010000) && (addr <= 0x00017FFF)) {
    return 9;
  }
  if ((addr >= 0x00018000) && (addr <= 0x0001FFFF)) {
    return 10;
  }
  if ((addr >= 0x00020000) && (addr <= 0x00027FFF)) {
    return 11;
  }
  if ((addr >= 0x00028000) && (addr <= 0x0002FFFF)) {
    return 12;
  }
  if ((addr >= 0x00030000) && (addr <= 0x00037FFF)) {
    return 13;
  }
  if ((addr >= 0x00038000) && (addr <= 0x0003FFFF)) {
    return 14;
  }
  if ((addr >= 0x00040000) && (addr <= 0x00047FFF)) {
    return 15;
  }
  if ((addr >= 0x00048000) && (addr <= 0x0004FFFF)) {
    return 16;
  }
  if ((addr >= 0x00050000) && (addr <= 0x00057FFF)) {
    return 17;
  }
  if ((addr >= 0x00058000) && (addr <= 0x0005FFFF)) {
    return 18;
  }
  if ((addr >= 0x00060000) && (addr <= 0x00067FFF)) {
    return 19;
  }
  if ((addr >= 0x00068000) && (addr <= 0x0006FFFF)) {
    return 20;
  }
  if ((addr >= 0x00070000) && (addr <= 0x00077FFF)) {
    return 21;
  }
  if ((addr >= 0x00078000) && (addr <= 0x00078FFF)) {
    return 22;
  }
  if ((addr >= 0x00079000) && (addr <= 0x00079FFF)) {
    return 23;
  }
  if ((addr >= 0x0007A000) && (addr <= 0x0007AFFF)) {
    return 24;
  }
  if ((addr >= 0x0007B000) && (addr <= 0x0007BFFF)) {
    return 25;
  }
  if ((addr >= 0x0007C000) && (addr <= 0x0007CFFF)) {
    return 26;
  }
  if ((addr >= 0x0007D000) && (addr <= 0x0007DFFF)) {
    return 27;
  }
  return (0xFF);
}


x86 assembly (clang, -O0):
<iap_get_sector>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
cmpl   $0xfff,-0x8(%rbp)
jg     1120 <iap_get_sector+0x20>
movl   $0x0,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x1000,-0x8(%rbp)
jl     1146 <iap_get_sector+0x46>
cmpl   $0x1fff,-0x8(%rbp)
jg     1146 <iap_get_sector+0x46>
movl   $0x1,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x2000,-0x8(%rbp)
jl     116c <iap_get_sector+0x6c>
cmpl   $0x2fff,-0x8(%rbp)
jg     116c <iap_get_sector+0x6c>
movl   $0x2,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x3000,-0x8(%rbp)
jl     1192 <iap_get_sector+0x92>
cmpl   $0x3fff,-0x8(%rbp)
jg     1192 <iap_get_sector+0x92>
movl   $0x3,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x4000,-0x8(%rbp)
jl     11b8 <iap_get_sector+0xb8>
cmpl   $0x4fff,-0x8(%rbp)
jg     11b8 <iap_get_sector+0xb8>
movl   $0x4,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x5000,-0x8(%rbp)
jl     11de <iap_get_sector+0xde>
cmpl   $0x5fff,-0x8(%rbp)
jg     11de <iap_get_sector+0xde>
movl   $0x5,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x6000,-0x8(%rbp)
jl     1204 <iap_get_sector+0x104>
cmpl   $0x6fff,-0x8(%rbp)
jg     1204 <iap_get_sector+0x104>
movl   $0x6,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x7000,-0x8(%rbp)
jl     122a <iap_get_sector+0x12a>
cmpl   $0x7fff,-0x8(%rbp)
jg     122a <iap_get_sector+0x12a>
movl   $0x7,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x8000,-0x8(%rbp)
jl     1250 <iap_get_sector+0x150>
cmpl   $0xffff,-0x8(%rbp)
jg     1250 <iap_get_sector+0x150>
movl   $0x8,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x10000,-0x8(%rbp)
jl     1276 <iap_get_sector+0x176>
cmpl   $0x17fff,-0x8(%rbp)
jg     1276 <iap_get_sector+0x176>
movl   $0x9,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x18000,-0x8(%rbp)
jl     129c <iap_get_sector+0x19c>
cmpl   $0x1ffff,-0x8(%rbp)
jg     129c <iap_get_sector+0x19c>
movl   $0xa,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x20000,-0x8(%rbp)
jl     12c2 <iap_get_sector+0x1c2>
cmpl   $0x27fff,-0x8(%rbp)
jg     12c2 <iap_get_sector+0x1c2>
movl   $0xb,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x28000,-0x8(%rbp)
jl     12e8 <iap_get_sector+0x1e8>
cmpl   $0x2ffff,-0x8(%rbp)
jg     12e8 <iap_get_sector+0x1e8>
movl   $0xc,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x30000,-0x8(%rbp)
jl     130e <iap_get_sector+0x20e>
cmpl   $0x37fff,-0x8(%rbp)
jg     130e <iap_get_sector+0x20e>
movl   $0xd,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x38000,-0x8(%rbp)
jl     1334 <iap_get_sector+0x234>
cmpl   $0x3ffff,-0x8(%rbp)
jg     1334 <iap_get_sector+0x234>
movl   $0xe,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x40000,-0x8(%rbp)
jl     135a <iap_get_sector+0x25a>
cmpl   $0x47fff,-0x8(%rbp)
jg     135a <iap_get_sector+0x25a>
movl   $0xf,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x48000,-0x8(%rbp)
jl     1380 <iap_get_sector+0x280>
cmpl   $0x4ffff,-0x8(%rbp)
jg     1380 <iap_get_sector+0x280>
movl   $0x10,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x50000,-0x8(%rbp)
jl     13a6 <iap_get_sector+0x2a6>
cmpl   $0x57fff,-0x8(%rbp)
jg     13a6 <iap_get_sector+0x2a6>
movl   $0x11,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x58000,-0x8(%rbp)
jl     13cc <iap_get_sector+0x2cc>
cmpl   $0x5ffff,-0x8(%rbp)
jg     13cc <iap_get_sector+0x2cc>
movl   $0x12,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x60000,-0x8(%rbp)
jl     13f2 <iap_get_sector+0x2f2>
cmpl   $0x67fff,-0x8(%rbp)
jg     13f2 <iap_get_sector+0x2f2>
movl   $0x13,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x68000,-0x8(%rbp)
jl     1418 <iap_get_sector+0x318>
cmpl   $0x6ffff,-0x8(%rbp)
jg     1418 <iap_get_sector+0x318>
movl   $0x14,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x70000,-0x8(%rbp)
jl     143e <iap_get_sector+0x33e>
cmpl   $0x77fff,-0x8(%rbp)
jg     143e <iap_get_sector+0x33e>
movl   $0x15,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x78000,-0x8(%rbp)
jl     1464 <iap_get_sector+0x364>
cmpl   $0x78fff,-0x8(%rbp)
jg     1464 <iap_get_sector+0x364>
movl   $0x16,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x79000,-0x8(%rbp)
jl     148a <iap_get_sector+0x38a>
cmpl   $0x79fff,-0x8(%rbp)
jg     148a <iap_get_sector+0x38a>
movl   $0x17,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x7a000,-0x8(%rbp)
jl     14b0 <iap_get_sector+0x3b0>
cmpl   $0x7afff,-0x8(%rbp)
jg     14b0 <iap_get_sector+0x3b0>
movl   $0x18,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x7b000,-0x8(%rbp)
jl     14d6 <iap_get_sector+0x3d6>
cmpl   $0x7bfff,-0x8(%rbp)
jg     14d6 <iap_get_sector+0x3d6>
movl   $0x19,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x7c000,-0x8(%rbp)
jl     14fc <iap_get_sector+0x3fc>
cmpl   $0x7cfff,-0x8(%rbp)
jg     14fc <iap_get_sector+0x3fc>
movl   $0x1a,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
cmpl   $0x7d000,-0x8(%rbp)
jl     1522 <iap_get_sector+0x422>
cmpl   $0x7dfff,-0x8(%rbp)
jg     1522 <iap_get_sector+0x422>
movl   $0x1b,-0x4(%rbp)
jmp    1529 <iap_get_sector+0x429>
movl   $0xff,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<iap_get_sector>:
xor    %eax,%eax
cmp    $0x1000,%edi
jl     12b7 <iap_get_sector+0x1b7>
mov    $0x1,%eax
cmp    $0x2000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x2,%eax
cmp    $0x3000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x3,%eax
cmp    $0x4000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x4,%eax
cmp    $0x5000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x5,%eax
cmp    $0x6000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x6,%eax
cmp    $0x7000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x7,%eax
cmp    $0x8000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x8,%eax
cmp    $0x10000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x9,%eax
cmp    $0x18000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xa,%eax
cmp    $0x20000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xb,%eax
cmp    $0x28000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xc,%eax
cmp    $0x30000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xd,%eax
cmp    $0x38000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xe,%eax
cmp    $0x40000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0xf,%eax
cmp    $0x48000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x10,%eax
cmp    $0x50000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x11,%eax
cmp    $0x58000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x12,%eax
cmp    $0x60000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x13,%eax
cmp    $0x68000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x14,%eax
cmp    $0x70000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x15,%eax
cmp    $0x78000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x16,%eax
cmp    $0x79000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x17,%eax
cmp    $0x7a000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x18,%eax
cmp    $0x7b000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x19,%eax
cmp    $0x7c000,%edi
jb     12b7 <iap_get_sector+0x1b7>
mov    $0x1a,%eax
cmp    $0x7d000,%edi
jb     12b7 <iap_get_sector+0x1b7>
cmp    $0x7e000,%edi
mov    $0x1b,%ecx
mov    $0xff,%eax
cmovb  %ecx,%eax
ret

LLVM IR (-O0):
define i32 @iap_get_sector(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
%5 = icmp sle i32 %4, 4095
br i1 %5, label %6, label %7
6: ; preds = %1
store i32 0, i32* %2
br label %197
7: ; preds = %1
%8 = load i32, i32* %3
%9 = icmp sge i32 %8, 4096
br i1 %9, label %10, label %14
10: ; preds = %7
%11 = load i32, i32* %3
%12 = icmp sle i32 %11, 8191
br i1 %12, label %13, label %14
13: ; preds = %10
store i32 1, i32* %2
br label %197
14: ; preds = %10, %7
%15 = load i32, i32* %3
%16 = icmp sge i32 %15, 8192
br i1 %16, label %17, label %21
17: ; preds = %14
%18 = load i32, i32* %3
%19 = icmp sle i32 %18, 12287
br i1 %19, label %20, label %21
20: ; preds = %17
store i32 2, i32* %2
br label %197
21: ; preds = %17, %14
%22 = load i32, i32* %3
%23 = icmp sge i32 %22, 12288
br i1 %23, label %24, label %28
24: ; preds = %21
%25 = load i32, i32* %3
%26 = icmp sle i32 %25, 16383
br i1 %26, label %27, label %28
27: ; preds = %24
store i32 3, i32* %2
br label %197
28: ; preds = %24, %21
%29 = load i32, i32* %3
%30 = icmp sge i32 %29, 16384
br i1 %30, label %31, label %35
31: ; preds = %28
%32 = load i32, i32* %3
%33 = icmp sle i32 %32, 20479
br i1 %33, label %34, label %35
34: ; preds = %31
store i32 4, i32* %2
br label %197
35: ; preds = %31, %28
%36 = load i32, i32* %3
%37 = icmp sge i32 %36, 20480
br i1 %37, label %38, label %42
38: ; preds = %35
%39 = load i32, i32* %3
%40 = icmp sle i32 %39, 24575
br i1 %40, label %41, label %42
41: ; preds = %38
store i32 5, i32* %2
br label %197
42: ; preds = %38, %35
%43 = load i32, i32* %3
%44 = icmp sge i32 %43, 24576
br i1 %44, label %45, label %49
45: ; preds = %42
%46 = load i32, i32* %3
%47 = icmp sle i32 %46, 28671
br i1 %47, label %48, label %49
48: ; preds = %45
store i32 6, i32* %2
br label %197
49: ; preds = %45, %42
%50 = load i32, i32* %3
%51 = icmp sge i32 %50, 28672
br i1 %51, label %52, label %56
52: ; preds = %49
%53 = load i32, i32* %3
%54 = icmp sle i32 %53, 32767
br i1 %54, label %55, label %56
55: ; preds = %52
store i32 7, i32* %2
br label %197
56: ; preds = %52, %49
%57 = load i32, i32* %3
%58 = icmp sge i32 %57, 32768
br i1 %58, label %59, label %63
59: ; preds = %56
%60 = load i32, i32* %3
%61 = icmp sle i32 %60, 65535
br i1 %61, label %62, label %63
62: ; preds = %59
store i32 8, i32* %2
br label %197
63: ; preds = %59, %56
%64 = load i32, i32* %3
%65 = icmp sge i32 %64, 65536
br i1 %65, label %66, label %70
66: ; preds = %63
%67 = load i32, i32* %3
%68 = icmp sle i32 %67, 98303
br i1 %68, label %69, label %70
69: ; preds = %66
store i32 9, i32* %2
br label %197
70: ; preds = %66, %63
%71 = load i32, i32* %3
%72 = icmp sge i32 %71, 98304
br i1 %72, label %73, label %77
73: ; preds = %70
%74 = load i32, i32* %3
%75 = icmp sle i32 %74, 131071
br i1 %75, label %76, label %77
76: ; preds = %73
store i32 10, i32* %2
br label %197
77: ; preds = %73, %70
%78 = load i32, i32* %3
%79 = icmp sge i32 %78, 131072
br i1 %79, label %80, label %84
80: ; preds = %77
%81 = load i32, i32* %3
%82 = icmp sle i32 %81, 163839
br i1 %82, label %83, label %84
83: ; preds = %80
store i32 11, i32* %2
br label %197
84: ; preds = %80, %77
%85 = load i32, i32* %3
%86 = icmp sge i32 %85, 163840
br i1 %86, label %87, label %91
87: ; preds = %84
%88 = load i32, i32* %3
%89 = icmp sle i32 %88, 196607
br i1 %89, label %90, label %91
90: ; preds = %87
store i32 12, i32* %2
br label %197
91: ; preds = %87, %84
%92 = load i32, i32* %3
%93 = icmp sge i32 %92, 196608
br i1 %93, label %94, label %98
94: ; preds = %91
%95 = load i32, i32* %3
%96 = icmp sle i32 %95, 229375
br i1 %96, label %97, label %98
97: ; preds = %94
store i32 13, i32* %2
br label %197
98: ; preds = %94, %91
%99 = load i32, i32* %3
%100 = icmp sge i32 %99, 229376
br i1 %100, label %101, label %105
101: ; preds = %98
%102 = load i32, i32* %3
%103 = icmp sle i32 %102, 262143
br i1 %103, label %104, label %105
104: ; preds = %101
store i32 14, i32* %2
br label %197
105: ; preds = %101, %98
%106 = load i32, i32* %3
%107 = icmp sge i32 %106, 262144
br i1 %107, label %108, label %112
108: ; preds = %105
%109 = load i32, i32* %3
%110 = icmp sle i32 %109, 294911
br i1 %110, label %111, label %112
111: ; preds = %108
store i32 15, i32* %2
br label %197
112: ; preds = %108, %105
%113 = load i32, i32* %3
%114 = icmp sge i32 %113, 294912
br i1 %114, label %115, label %119
115: ; preds = %112
%116 = load i32, i32* %3
%117 = icmp sle i32 %116, 327679
br i1 %117, label %118, label %119
118: ; preds = %115
store i32 16, i32* %2
br label %197
119: ; preds = %115, %112
%120 = load i32, i32* %3
%121 = icmp sge i32 %120, 327680
br i1 %121, label %122, label %126
122: ; preds = %119
%123 = load i32, i32* %3
%124 = icmp sle i32 %123, 360447
br i1 %124, label %125, label %126
125: ; preds = %122
store i32 17, i32* %2
br label %197
126: ; preds = %122, %119
%127 = load i32, i32* %3
%128 = icmp sge i32 %127, 360448
br i1 %128, label %129, label %133
129: ; preds = %126
%130 = load i32, i32* %3
%131 = icmp sle i32 %130, 393215
br i1 %131, label %132, label %133
132: ; preds = %129
store i32 18, i32* %2
br label %197
133: ; preds = %129, %126
%134 = load i32, i32* %3
%135 = icmp sge i32 %134, 393216
br i1 %135, label %136, label %140
136: ; preds = %133
%137 = load i32, i32* %3
%138 = icmp sle i32 %137, 425983
br i1 %138, label %139, label %140
139: ; preds = %136
store i32 19, i32* %2
br label %197
140: ; preds = %136, %133
%141 = load i32, i32* %3
%142 = icmp sge i32 %141, 425984
br i1 %142, label %143, label %147
143: ; preds = %140
%144 = load i32, i32* %3
%145 = icmp sle i32 %144, 458751
br i1 %145, label %146, label %147
146: ; preds = %143
store i32 20, i32* %2
br label %197
147: ; preds = %143, %140
%148 = load i32, i32* %3
%149 = icmp sge i32 %148, 458752
br i1 %149, label %150, label %154
150: ; preds = %147
%151 = load i32, i32* %3
%152 = icmp sle i32 %151, 491519
br i1 %152, label %153, label %154
153: ; preds = %150
store i32 21, i32* %2
br label %197
154: ; preds = %150, %147
%155 = load i32, i32* %3
%156 = icmp sge i32 %155, 491520
br i1 %156, label %157, label %161
157: ; preds = %154
%158 = load i32, i32* %3
%159 = icmp sle i32 %158, 495615
br i1 %159, label %160, label %161
160: ; preds = %157
store i32 22, i32* %2
br label %197
161: ; preds = %157, %154
%162 = load i32, i32* %3
%163 = icmp sge i32 %162, 495616
br i1 %163, label %164, label %168
164: ; preds = %161
%165 = load i32, i32* %3
%166 = icmp sle i32 %165, 499711
br i1 %166, label %167, label %168
167: ; preds = %164
store i32 23, i32* %2
br label %197
168: ; preds = %164, %161
%169 = load i32, i32* %3
%170 = icmp sge i32 %169, 499712
br i1 %170, label %171, label %175
171: ; preds = %168
%172 = load i32, i32* %3
%173 = icmp sle i32 %172, 503807
br i1 %173, label %174, label %175
174: ; preds = %171
store i32 24, i32* %2
br label %197
175: ; preds = %171, %168
%176 = load i32, i32* %3
%177 = icmp sge i32 %176, 503808
br i1 %177, label %178, label %182
178: ; preds = %175
%179 = load i32, i32* %3
%180 = icmp sle i32 %179, 507903
br i1 %180, label %181, label %182
181: ; preds = %178
store i32 25, i32* %2
br label %197
182: ; preds = %178, %175
%183 = load i32, i32* %3
%184 = icmp sge i32 %183, 507904
br i1 %184, label %185, label %189
185: ; preds = %182
%186 = load i32, i32* %3
%187 = icmp sle i32 %186, 511999
br i1 %187, label %188, label %189
188: ; preds = %185
store i32 26, i32* %2
br label %197
189: ; preds = %185, %182
%190 = load i32, i32* %3
%191 = icmp sge i32 %190, 512000
br i1 %191, label %192, label %196
192: ; preds = %189
%193 = load i32, i32* %3
%194 = icmp sle i32 %193, 516095
br i1 %194, label %195, label %196
195: ; preds = %192
store i32 27, i32* %2
br label %197
196: ; preds = %192, %189
store i32 255, i32* %2
br label %197
197: ; preds = %196, %195, %188, %181, %174, %167, %160, %153, %146, %139, %132, %125, %118, %111, %104, %97, %90, %83, %76, %69, %62, %55, %48, %41, %34, %27, %20, %13, %6
%198 = load i32, i32* %2
ret i32 %198
}

LLVM IR (-O2):
define i32 @iap_get_sector(i32 %0) {
%2 = icmp slt i32 %0, 4096
br i1 %2, label %58, label %3
3: ; preds = %1
%4 = icmp ult i32 %0, 8192
br i1 %4, label %58, label %5
5: ; preds = %3
%6 = icmp ult i32 %0, 12288
br i1 %6, label %58, label %7
7: ; preds = %5
%8 = icmp ult i32 %0, 16384
br i1 %8, label %58, label %9
9: ; preds = %7
%10 = icmp ult i32 %0, 20480
br i1 %10, label %58, label %11
11: ; preds = %9
%12 = icmp ult i32 %0, 24576
br i1 %12, label %58, label %13
13: ; preds = %11
%14 = icmp ult i32 %0, 28672
br i1 %14, label %58, label %15
15: ; preds = %13
%16 = icmp ult i32 %0, 32768
br i1 %16, label %58, label %17
17: ; preds = %15
%18 = icmp ult i32 %0, 65536
br i1 %18, label %58, label %19
19: ; preds = %17
%20 = icmp ult i32 %0, 98304
br i1 %20, label %58, label %21
21: ; preds = %19
%22 = icmp ult i32 %0, 131072
br i1 %22, label %58, label %23
23: ; preds = %21
%24 = icmp ult i32 %0, 163840
br i1 %24, label %58, label %25
25: ; preds = %23
%26 = icmp ult i32 %0, 196608
br i1 %26, label %58, label %27
27: ; preds = %25
%28 = icmp ult i32 %0, 229376
br i1 %28, label %58, label %29
29: ; preds = %27
%30 = icmp ult i32 %0, 262144
br i1 %30, label %58, label %31
31: ; preds = %29
%32 = icmp ult i32 %0, 294912
br i1 %32, label %58, label %33
33: ; preds = %31
%34 = icmp ult i32 %0, 327680
br i1 %34, label %58, label %35
35: ; preds = %33
%36 = icmp ult i32 %0, 360448
br i1 %36, label %58, label %37
37: ; preds = %35
%38 = icmp ult i32 %0, 393216
br i1 %38, label %58, label %39
39: ; preds = %37
%40 = icmp ult i32 %0, 425984
br i1 %40, label %58, label %41
41: ; preds = %39
%42 = icmp ult i32 %0, 458752
br i1 %42, label %58, label %43
43: ; preds = %41
%44 = icmp ult i32 %0, 491520
br i1 %44, label %58, label %45
45: ; preds = %43
%46 = icmp ult i32 %0, 495616
br i1 %46, label %58, label %47
47: ; preds = %45
%48 = icmp ult i32 %0, 499712
br i1 %48, label %58, label %49
49: ; preds = %47
%50 = icmp ult i32 %0, 503808
br i1 %50, label %58, label %51
51: ; preds = %49
%52 = icmp ult i32 %0, 507904
br i1 %52, label %58, label %53
53: ; preds = %51
%54 = icmp ult i32 %0, 512000
br i1 %54, label %58, label %55
55: ; preds = %53
%56 = icmp ult i32 %0, 516096
%57 = select i1 %56, i32 27, i32 255
br label %58
58: ; preds = %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %35, %33, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7, %5, %3, %1
%59 = phi i32 [ 0, %1 ], [ 1, %3 ], [ 2, %5 ], [ 3, %7 ], [ 4, %9 ], [ 5, %11 ], [ 6, %13 ], [ 7, %15 ], [ 8, %17 ], [ 9, %19 ], [ 10, %21 ], [ 11, %23 ], [ 12, %25 ], [ 13, %27 ], [ 14, %29 ], [ 15, %31 ], [ 16, %33 ], [ 17, %35 ], [ 18, %37 ], [ 19, %39 ], [ 20, %41 ], [ 21, %43 ], [ 22, %45 ], [ 23, %47 ], [ 24, %49 ], [ 25, %51 ], [ 26, %53 ], [ %57, %55 ]
ret i32 %59
}