short set_tier_max(int level, int tier) {
  if (tier == 1) {
    if (level <= 4)
      return 7;
    if (level <= 9)
      return 12;
    if (level <= 19)
      return 17;
    if (level <= 24)
      return 22;
    if (level <= 34)
      return 32;
    if (level <= 39)
      return 37;
    if (level <= 44)
      return 42;
    if (level <= 49)
      return 47;
    if (level <= 54)
      return 52;
    if (level <= 60)
      return 62;
    if (level <= 70)
      return 72;
    if (level <= 80)
      return 82;
    if (level <= 90)
      return 92;
    if (level <= 99)
      return 102;
    return 100;
  }
  if (tier == 2) {
    if (level <= 4)
      return 8;
    if (level <= 9)
      return 13;
    if (level <= 19)
      return 18;
    if (level <= 24)
      return 23;
    if (level <= 34)
      return 33;
    if (level <= 39)
      return 38;
    if (level <= 44)
      return 43;
    if (level <= 49)
      return 48;
    if (level <= 54)
      return 53;
    if (level <= 60)
      return 63;
    if (level <= 70)
      return 73;
    if (level <= 80)
      return 83;
    if (level <= 90)
      return 93;
    if (level <= 99)
      return 103;
    return 103;
  }
  if (level <= 4)
    return 10;
  if (level <= 9)
    return 15;
  if (level <= 19)
    return 20;
  if (level <= 24)
    return 25;
  if (level <= 34)
    return 35;
  if (level <= 39)
    return 40;
  if (level <= 44)
    return 45;
  if (level <= 49)
    return 50;
  if (level <= 54)
    return 55;
  if (level <= 60)
    return 65;
  if (level <= 70)
    return 75;
  if (level <= 80)
    return 85;
  if (level <= 90)
    return 95;
  if (level <= 99)
    return 105;
  return 105;
}


x86 assembly (clang, -O0):
<set_tier_max>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
cmpl   $0x1,-0xc(%rbp)
jne    1245 <set_tier_max+0x145>
cmpl   $0x4,-0x8(%rbp)
jg     1129 <set_tier_max+0x29>
movw   $0x7,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x9,-0x8(%rbp)
jg     113e <set_tier_max+0x3e>
movw   $0xc,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x13,-0x8(%rbp)
jg     1153 <set_tier_max+0x53>
movw   $0x11,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x18,-0x8(%rbp)
jg     1168 <set_tier_max+0x68>
movw   $0x16,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x22,-0x8(%rbp)
jg     117d <set_tier_max+0x7d>
movw   $0x20,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x27,-0x8(%rbp)
jg     1192 <set_tier_max+0x92>
movw   $0x25,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x2c,-0x8(%rbp)
jg     11a7 <set_tier_max+0xa7>
movw   $0x2a,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x31,-0x8(%rbp)
jg     11bc <set_tier_max+0xbc>
movw   $0x2f,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x36,-0x8(%rbp)
jg     11d1 <set_tier_max+0xd1>
movw   $0x34,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x3c,-0x8(%rbp)
jg     11e6 <set_tier_max+0xe6>
movw   $0x3e,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x46,-0x8(%rbp)
jg     11fb <set_tier_max+0xfb>
movw   $0x48,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x50,-0x8(%rbp)
jg     1210 <set_tier_max+0x110>
movw   $0x52,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x5a,-0x8(%rbp)
jg     1225 <set_tier_max+0x125>
movw   $0x5c,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x63,-0x8(%rbp)
jg     123a <set_tier_max+0x13a>
movw   $0x66,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
movw   $0x64,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x2,-0xc(%rbp)
jne    1380 <set_tier_max+0x280>
cmpl   $0x4,-0x8(%rbp)
jg     1264 <set_tier_max+0x164>
movw   $0x8,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x9,-0x8(%rbp)
jg     1279 <set_tier_max+0x179>
movw   $0xd,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x13,-0x8(%rbp)
jg     128e <set_tier_max+0x18e>
movw   $0x12,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x18,-0x8(%rbp)
jg     12a3 <set_tier_max+0x1a3>
movw   $0x17,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x22,-0x8(%rbp)
jg     12b8 <set_tier_max+0x1b8>
movw   $0x21,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x27,-0x8(%rbp)
jg     12cd <set_tier_max+0x1cd>
movw   $0x26,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x2c,-0x8(%rbp)
jg     12e2 <set_tier_max+0x1e2>
movw   $0x2b,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x31,-0x8(%rbp)
jg     12f7 <set_tier_max+0x1f7>
movw   $0x30,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x36,-0x8(%rbp)
jg     130c <set_tier_max+0x20c>
movw   $0x35,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x3c,-0x8(%rbp)
jg     1321 <set_tier_max+0x221>
movw   $0x3f,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x46,-0x8(%rbp)
jg     1336 <set_tier_max+0x236>
movw   $0x49,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x50,-0x8(%rbp)
jg     134b <set_tier_max+0x24b>
movw   $0x53,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x5a,-0x8(%rbp)
jg     1360 <set_tier_max+0x260>
movw   $0x5d,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x63,-0x8(%rbp)
jg     1375 <set_tier_max+0x275>
movw   $0x67,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
movw   $0x67,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x4,-0x8(%rbp)
jg     1395 <set_tier_max+0x295>
movw   $0xa,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x9,-0x8(%rbp)
jg     13aa <set_tier_max+0x2aa>
movw   $0xf,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x13,-0x8(%rbp)
jg     13bf <set_tier_max+0x2bf>
movw   $0x14,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x18,-0x8(%rbp)
jg     13d4 <set_tier_max+0x2d4>
movw   $0x19,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x22,-0x8(%rbp)
jg     13e9 <set_tier_max+0x2e9>
movw   $0x23,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x27,-0x8(%rbp)
jg     13fe <set_tier_max+0x2fe>
movw   $0x28,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x2c,-0x8(%rbp)
jg     1413 <set_tier_max+0x313>
movw   $0x2d,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x31,-0x8(%rbp)
jg     1428 <set_tier_max+0x328>
movw   $0x32,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x36,-0x8(%rbp)
jg     143d <set_tier_max+0x33d>
movw   $0x37,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x3c,-0x8(%rbp)
jg     1452 <set_tier_max+0x352>
movw   $0x41,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x46,-0x8(%rbp)
jg     1467 <set_tier_max+0x367>
movw   $0x4b,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x50,-0x8(%rbp)
jg     147c <set_tier_max+0x37c>
movw   $0x55,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x5a,-0x8(%rbp)
jg     1491 <set_tier_max+0x391>
movw   $0x5f,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
cmpl   $0x63,-0x8(%rbp)
jg     14a6 <set_tier_max+0x3a6>
movw   $0x69,-0x2(%rbp)
jmp    14ac <set_tier_max+0x3ac>
movw   $0x69,-0x2(%rbp)
movswl -0x2(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<set_tier_max>:
cmp    $0x2,%esi
je     11c9 <set_tier_max+0xc9>
cmp    $0x1,%esi
jne    1274 <set_tier_max+0x174>
mov    $0x7,%ax
cmp    $0x5,%edi
jl     12f0 <set_tier_max+0x1f0>
mov    $0xc,%ax
cmp    $0xa,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x11,%ax
cmp    $0x14,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x16,%ax
cmp    $0x19,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x20,%ax
cmp    $0x23,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x25,%ax
cmp    $0x28,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x2a,%ax
cmp    $0x2d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x2f,%ax
cmp    $0x32,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x34,%ax
cmp    $0x37,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x3e,%ax
cmp    $0x3d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x48,%ax
cmp    $0x47,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x52,%ax
cmp    $0x51,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x5c,%ax
cmp    $0x5b,%edi
jb     12f0 <set_tier_max+0x1f0>
xor    %eax,%eax
cmp    $0x64,%edi
setb   %al
add    %eax,%eax
add    $0x64,%eax
ret
mov    $0x8,%ax
cmp    $0x5,%edi
jl     12f0 <set_tier_max+0x1f0>
mov    $0xd,%ax
cmp    $0xa,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x12,%ax
cmp    $0x14,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x17,%ax
cmp    $0x19,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x21,%ax
cmp    $0x23,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x26,%ax
cmp    $0x28,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x2b,%ax
cmp    $0x2d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x30,%ax
cmp    $0x32,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x35,%ax
cmp    $0x37,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x3f,%ax
cmp    $0x3d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x49,%ax
cmp    $0x47,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x53,%ax
cmp    $0x51,%edi
jb     12f0 <set_tier_max+0x1f0>
cmp    $0x5b,%edi
mov    $0x5d,%ecx
mov    $0x67,%eax
jmp    12ed <set_tier_max+0x1ed>
mov    $0xa,%ax
cmp    $0x5,%edi
jl     12f0 <set_tier_max+0x1f0>
mov    $0xf,%ax
cmp    $0xa,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x14,%ax
cmp    $0x14,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x19,%ax
cmp    $0x19,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x23,%ax
cmp    $0x23,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x28,%ax
cmp    $0x28,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x2d,%ax
cmp    $0x2d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x32,%ax
cmp    $0x32,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x37,%ax
cmp    $0x37,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x41,%ax
cmp    $0x3d,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x4b,%ax
cmp    $0x47,%edi
jb     12f0 <set_tier_max+0x1f0>
mov    $0x55,%ax
cmp    $0x51,%edi
jb     12f0 <set_tier_max+0x1f0>
cmp    $0x5b,%edi
mov    $0x5f,%ecx
mov    $0x69,%eax
cmovb  %ecx,%eax
ret

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

LLVM IR (-O2):
define signext i16 @set_tier_max(i32 %0, i32 %1) {
switch i32 %1, label %59 [
i32 1, label %3
i32 2, label %32
]
3: ; preds = %2
%4 = icmp slt i32 %0, 5
br i1 %4, label %86, label %5
5: ; preds = %3
%6 = icmp ult i32 %0, 10
br i1 %6, label %86, label %7
7: ; preds = %5
%8 = icmp ult i32 %0, 20
br i1 %8, label %86, label %9
9: ; preds = %7
%10 = icmp ult i32 %0, 25
br i1 %10, label %86, label %11
11: ; preds = %9
%12 = icmp ult i32 %0, 35
br i1 %12, label %86, label %13
13: ; preds = %11
%14 = icmp ult i32 %0, 40
br i1 %14, label %86, label %15
15: ; preds = %13
%16 = icmp ult i32 %0, 45
br i1 %16, label %86, label %17
17: ; preds = %15
%18 = icmp ult i32 %0, 50
br i1 %18, label %86, label %19
19: ; preds = %17
%20 = icmp ult i32 %0, 55
br i1 %20, label %86, label %21
21: ; preds = %19
%22 = icmp ult i32 %0, 61
br i1 %22, label %86, label %23
23: ; preds = %21
%24 = icmp ult i32 %0, 71
br i1 %24, label %86, label %25
25: ; preds = %23
%26 = icmp ult i32 %0, 81
br i1 %26, label %86, label %27
27: ; preds = %25
%28 = icmp ult i32 %0, 91
br i1 %28, label %86, label %29
29: ; preds = %27
%30 = icmp ult i32 %0, 100
%31 = select i1 %30, i16 102, i16 100
br label %86
32: ; preds = %2
%33 = icmp slt i32 %0, 5
br i1 %33, label %86, label %34
34: ; preds = %32
%35 = icmp ult i32 %0, 10
br i1 %35, label %86, label %36
36: ; preds = %34
%37 = icmp ult i32 %0, 20
br i1 %37, label %86, label %38
38: ; preds = %36
%39 = icmp ult i32 %0, 25
br i1 %39, label %86, label %40
40: ; preds = %38
%41 = icmp ult i32 %0, 35
br i1 %41, label %86, label %42
42: ; preds = %40
%43 = icmp ult i32 %0, 40
br i1 %43, label %86, label %44
44: ; preds = %42
%45 = icmp ult i32 %0, 45
br i1 %45, label %86, label %46
46: ; preds = %44
%47 = icmp ult i32 %0, 50
br i1 %47, label %86, label %48
48: ; preds = %46
%49 = icmp ult i32 %0, 55
br i1 %49, label %86, label %50
50: ; preds = %48
%51 = icmp ult i32 %0, 61
br i1 %51, label %86, label %52
52: ; preds = %50
%53 = icmp ult i32 %0, 71
br i1 %53, label %86, label %54
54: ; preds = %52
%55 = icmp ult i32 %0, 81
br i1 %55, label %86, label %56
56: ; preds = %54
%57 = icmp ult i32 %0, 91
%58 = select i1 %57, i16 93, i16 103
br label %86
59: ; preds = %2
%60 = icmp slt i32 %0, 5
br i1 %60, label %86, label %61
61: ; preds = %59
%62 = icmp ult i32 %0, 10
br i1 %62, label %86, label %63
63: ; preds = %61
%64 = icmp ult i32 %0, 20
br i1 %64, label %86, label %65
65: ; preds = %63
%66 = icmp ult i32 %0, 25
br i1 %66, label %86, label %67
67: ; preds = %65
%68 = icmp ult i32 %0, 35
br i1 %68, label %86, label %69
69: ; preds = %67
%70 = icmp ult i32 %0, 40
br i1 %70, label %86, label %71
71: ; preds = %69
%72 = icmp ult i32 %0, 45
br i1 %72, label %86, label %73
73: ; preds = %71
%74 = icmp ult i32 %0, 50
br i1 %74, label %86, label %75
75: ; preds = %73
%76 = icmp ult i32 %0, 55
br i1 %76, label %86, label %77
77: ; preds = %75
%78 = icmp ult i32 %0, 61
br i1 %78, label %86, label %79
79: ; preds = %77
%80 = icmp ult i32 %0, 71
br i1 %80, label %86, label %81
81: ; preds = %79
%82 = icmp ult i32 %0, 81
br i1 %82, label %86, label %83
83: ; preds = %81
%84 = icmp ult i32 %0, 91
%85 = select i1 %84, i16 95, i16 105
br label %86
86: ; preds = %83, %56, %81, %79, %77, %75, %73, %71, %69, %67, %65, %63, %61, %59, %54, %52, %50, %48, %46, %44, %42, %40, %38, %36, %34, %32, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7, %5, %3
%87 = phi i16 [ 7, %3 ], [ 12, %5 ], [ 17, %7 ], [ 22, %9 ], [ 32, %11 ], [ 37, %13 ], [ 42, %15 ], [ 47, %17 ], [ 52, %19 ], [ 62, %21 ], [ 72, %23 ], [ 82, %25 ], [ 92, %27 ], [ %31, %29 ], [ 8, %32 ], [ 13, %34 ], [ 18, %36 ], [ 23, %38 ], [ 33, %40 ], [ 38, %42 ], [ 43, %44 ], [ 48, %46 ], [ 53, %48 ], [ 63, %50 ], [ 73, %52 ], [ 83, %54 ], [ 10, %59 ], [ 15, %61 ], [ 20, %63 ], [ 25, %65 ], [ 35, %67 ], [ 40, %69 ], [ 45, %71 ], [ 50, %73 ], [ 55, %75 ], [ 65, %77 ], [ 75, %79 ], [ 85, %81 ], [ %58, %56 ], [ %85, %83 ]
ret i16 %87
}