double make_ltic(tlevel, incr)
int tlevel;
double incr;
{
  double tinc;
  tinc = 0;
  if (tlevel < 0)
    tlevel = 0;
  switch (tlevel) {
  case 0:
  case 1: {
    if (incr >= 20)
      tinc = 10;
    if (incr >= 60)
      tinc = 30;
    if (incr >= 2 * 60)
      tinc = 60;
    if (incr >= 5 * 60)
      tinc = 2 * 60;
    if (incr >= 10 * 60)
      tinc = 5 * 60;
    if (incr >= 20 * 60)
      tinc = 10 * 60;
    break;
  }
  case 2: {
    if (incr >= 20 * 60)
      tinc = 10 * 60;
    if (incr >= 3600)
      tinc = 30 * 60;
    if (incr >= 2 * 3600)
      tinc = 3600;
    if (incr >= 5 * 3600)
      tinc = 2 * 3600;
    if (incr >= 10 * 3600)
      tinc = 5 * 3600;
    if (incr >= 20 * 3600)
      tinc = 10 * 3600;
    break;
  }
  case 3: {
    if (incr > 2 * 3600)
      tinc = 3600;
    if (incr > 4 * 3600)
      tinc = 2 * 3600;
    if (incr > 7 * 3600)
      tinc = 3 * 3600;
    if (incr > 13 * 3600)
      tinc = 6 * 3600;
    if (incr > 86400.0)
      tinc = 12 * 3600;
    if (incr > 2 * 86400.0)
      tinc = 86400.0;
    break;
  }
  case 4: {
    if (incr > 2 * 86400.0)
      tinc = 86400.0;
    if (incr > 7 * 86400.0)
      tinc = 7 * 86400.0;
    break;
  }
  case 5: {
    if (incr > 2 * 86400.0)
      tinc = 86400.0;
    if (incr > 15 * 86400.0)
      tinc = 10 * 86400.0;
    if (incr > 2 * 2629800.0)
      tinc = 2629800.0;
    if (incr > 6 * 2629800.0)
      tinc = 3 * 2629800.0;
    if (incr > 2 * 31557600.0)
      tinc = 31557600.0;
    break;
  }
  case 6: {
    if (incr > 2 * 2629800.0)
      tinc = 2629800.0;
    if (incr > 6 * 2629800.0)
      tinc = 3 * 2629800.0;
    if (incr > 2 * 31557600.0)
      tinc = 31557600.0;
    if (incr > 10 * 31557600.0)
      tinc = 5 * 31557600.0;
    if (incr > 50 * 31557600.0)
      tinc = 10 * 31557600.0;
    if (incr > 100 * 31557600.0)
      tinc = 20 * 31557600.0;
    if (incr > 200 * 31557600.0)
      tinc = 50 * 31557600.0;
    if (incr > 300 * 31557600.0)
      tinc = 100 * 31557600.0;
    break;
  }
  }
  return (tinc);
}


x86 assembly (clang, -O0):
<make_ltic>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
movsd  %xmm0,-0x10(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x18(%rbp)
cmpl   $0x0,-0x4(%rbp)
jge    1125 <make_ltic+0x25>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
mov    %rax,-0x20(%rbp)
sub    $0x6,%rax
ja     160c <make_ltic+0x50c>
mov    -0x20(%rbp),%rax
lea    0xfef(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsd  -0x10(%rbp),%xmm0
movsd  0xfa9(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     116e <make_ltic+0x6e>
movsd  0xf9f(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xf95(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1192 <make_ltic+0x92>
movsd  0xf8b(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xf81(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11b6 <make_ltic+0xb6>
movsd  0xf5f(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xf65(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11da <make_ltic+0xda>
movsd  0xf4b(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xef1(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     11fe <make_ltic+0xfe>
movsd  0xf2f(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xec5(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1222 <make_ltic+0x122>
movsd  0xebb(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xe9c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     124b <make_ltic+0x14b>
movsd  0xe92(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe40(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     126f <make_ltic+0x16f>
movsd  0xe76(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe14(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     1293 <make_ltic+0x193>
movsd  0xe0a(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe48(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     12b7 <make_ltic+0x1b7>
movsd  0xdde(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe2c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     12db <make_ltic+0x1db>
movsd  0xe12(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xe10(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     12ff <make_ltic+0x1ff>
movsd  0xdf6(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xd7f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1328 <make_ltic+0x228>
movsd  0xd75(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xd6b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    134c <make_ltic+0x24c>
movsd  0xd49(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xd4f(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1370 <make_ltic+0x270>
movsd  0xd45(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xd3b(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1394 <make_ltic+0x294>
movsd  0xd31(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xccf(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    13b8 <make_ltic+0x2b8>
movsd  0xd15(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xca3(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    13dc <make_ltic+0x2dc>
movsd  0xc99(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xc7a(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1405 <make_ltic+0x305>
movsd  0xc70(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xc76(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1429 <make_ltic+0x329>
movsd  0xc64(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xc2d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1452 <make_ltic+0x352>
movsd  0xc23(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xc19(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1476 <make_ltic+0x376>
movsd  0xc0f(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xb7d(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    149a <make_ltic+0x39a>
movsd  0xb73(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xb69(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    14be <make_ltic+0x3be>
movsd  0xb5f(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xb55(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    14e2 <make_ltic+0x3e2>
movsd  0xb4b(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x10(%rbp),%xmm0
movsd  0xb0c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    150b <make_ltic+0x40b>
movsd  0xb02(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xaf8(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    152f <make_ltic+0x42f>
movsd  0xaee(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xae4(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1553 <make_ltic+0x453>
movsd  0xada(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xad0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1577 <make_ltic+0x477>
movsd  0xac6(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xabc(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    159b <make_ltic+0x49b>
movsd  0xa9a(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xaa0(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    15bf <make_ltic+0x4bf>
movsd  0xa96(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xa8c(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    15e3 <make_ltic+0x4e3>
movsd  0xa62(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
movsd  -0x10(%rbp),%xmm0
movsd  0xa70(%rip),%xmm1
ucomisd %xmm1,%xmm0
jbe    1607 <make_ltic+0x507>
movsd  0xa46(%rip),%xmm0
movsd  %xmm0,-0x18(%rbp)
jmp    160c <make_ltic+0x50c>
movsd  -0x18(%rbp),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<make_ltic>:
xor    %eax,%eax
test   %edi,%edi
cmovns %edi,%eax
cmp    $0x6,%eax
ja     119f <make_ltic+0x9f>
movapd %xmm0,%xmm1
lea    0x1015(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsd  0xfac(%rip),%xmm0
ucomisd 0xf9c(%rip),%xmm1
jae    13f5 <make_ltic+0x2f5>
movsd  0xfbe(%rip),%xmm2
cmpnlesd %xmm1,%xmm2
movsd  0xfb9(%rip),%xmm3
andnpd %xmm3,%xmm2
movsd  0xfb5(%rip),%xmm3
movapd %xmm3,%xmm4
cmpnlesd %xmm1,%xmm4
andpd  %xmm4,%xmm2
movsd  0xfa8(%rip),%xmm5
andnpd %xmm5,%xmm4
orpd   %xmm2,%xmm4
movsd  0xfa0(%rip),%xmm2
movapd %xmm2,%xmm5
cmpnlesd %xmm1,%xmm5
andpd  %xmm5,%xmm4
andnpd %xmm3,%xmm5
orpd   %xmm4,%xmm5
movsd  0xf8b(%rip),%xmm3
jmp    121c <make_ltic+0x11c>
xorps  %xmm0,%xmm0
ret
movsd  0xf45(%rip),%xmm0
ucomisd 0xf45(%rip),%xmm1
jae    13f5 <make_ltic+0x2f5>
movsd  0xf0f(%rip),%xmm2
cmpnlesd %xmm1,%xmm2
movsd  0xf0a(%rip),%xmm3
andnpd %xmm3,%xmm2
movsd  0xebe(%rip),%xmm3
movapd %xmm3,%xmm4
cmpnlesd %xmm1,%xmm4
andpd  %xmm4,%xmm2
movsd  0xef1(%rip),%xmm5
andnpd %xmm5,%xmm4
orpd   %xmm2,%xmm4
movsd  0xe91(%rip),%xmm2
movapd %xmm2,%xmm5
cmpnlesd %xmm1,%xmm5
andpd  %xmm5,%xmm4
andnpd %xmm3,%xmm5
orpd   %xmm4,%xmm5
movsd  0xecc(%rip),%xmm3
movapd %xmm3,%xmm4
cmpnlesd %xmm1,%xmm4
andpd  %xmm4,%xmm5
andnpd %xmm2,%xmm4
orpd   %xmm5,%xmm4
cmpnlesd %xmm1,%xmm0
andpd  %xmm0,%xmm4
andnpd %xmm3,%xmm0
orpd   %xmm4,%xmm0
ret
movsd  0xe25(%rip),%xmm0
ucomisd 0xe15(%rip),%xmm1
ja     13f5 <make_ltic+0x2f5>
movsd  0xe2f(%rip),%xmm2
movsd  0xe37(%rip),%xmm3
cmpltsd %xmm1,%xmm3
movapd %xmm3,%xmm4
andpd  %xmm2,%xmm3
cmpltsd %xmm1,%xmm2
movsd  0xe15(%rip),%xmm5
andpd  %xmm2,%xmm5
andnpd %xmm5,%xmm4
orpd   %xmm4,%xmm3
movsd  0xe11(%rip),%xmm2
cmpltsd %xmm1,%xmm2
movsd  0xe0c(%rip),%xmm4
andpd  %xmm2,%xmm4
andnpd %xmm3,%xmm2
orpd   %xmm2,%xmm4
movsd  0xe00(%rip),%xmm2
cmpltsd %xmm1,%xmm2
movsd  0xdfb(%rip),%xmm3
andpd  %xmm2,%xmm3
andnpd %xmm4,%xmm2
orpd   %xmm2,%xmm3
cmpltsd %xmm1,%xmm0
movsd  0xdea(%rip),%xmm1
andpd  %xmm0,%xmm1
andnpd %xmm3,%xmm0
orpd   %xmm0,%xmm1
movapd %xmm1,%xmm0
ret
ucomisd 0xd29(%rip),%xmm1
jbe    140d <make_ltic+0x30d>
movsd  0xd23(%rip),%xmm0
ret
movsd  0xd3a(%rip),%xmm0
ucomisd 0xd4a(%rip),%xmm1
ja     13f5 <make_ltic+0x2f5>
movsd  0xcdc(%rip),%xmm2
cmpltsd %xmm1,%xmm2
movsd  0xcd7(%rip),%xmm3
andpd  %xmm2,%xmm3
movsd  0xcd3(%rip),%xmm2
cmpltsd %xmm1,%xmm2
movsd  0xcce(%rip),%xmm4
andpd  %xmm2,%xmm4
andnpd %xmm3,%xmm2
orpd   %xmm2,%xmm4
movsd  0xcc2(%rip),%xmm3
cmpltsd %xmm1,%xmm3
movsd  0xcbd(%rip),%xmm2
andpd  %xmm3,%xmm2
andnpd %xmm4,%xmm3
orpd   %xmm3,%xmm2
movsd  0xcb0(%rip),%xmm8
movsd  0xcb8(%rip),%xmm4
cmpltsd %xmm1,%xmm0
movapd %xmm0,%xmm5
movsd  0xcb7(%rip),%xmm6
andpd  %xmm0,%xmm6
movsd  0xcb3(%rip),%xmm0
cmpltsd %xmm1,%xmm0
movapd %xmm0,%xmm7
andpd  %xmm4,%xmm0
cmpltsd %xmm1,%xmm4
movapd %xmm4,%xmm3
andpd  %xmm8,%xmm4
cmpltsd %xmm1,%xmm8
movsd  0xc6a(%rip),%xmm1
andpd  %xmm8,%xmm1
andnpd %xmm2,%xmm8
orpd   %xmm8,%xmm1
andnpd %xmm1,%xmm3
orpd   %xmm3,%xmm4
andnpd %xmm4,%xmm5
orpd   %xmm5,%xmm6
andnpd %xmm6,%xmm7
orpd   %xmm7,%xmm0
ret
ucomisd 0xc8a(%rip),%xmm1
jbe    148a <make_ltic+0x38a>
movsd  0xc7c(%rip),%xmm0
ret
movsd  0xc53(%rip),%xmm0
cmpltsd %xmm1,%xmm0
movsd  0xc4e(%rip),%xmm2
andpd  %xmm0,%xmm2
movsd  0xc4a(%rip),%xmm0
cmpltsd %xmm1,%xmm0
movsd  0xc45(%rip),%xmm3
andpd  %xmm0,%xmm3
andnpd %xmm2,%xmm0
orpd   %xmm0,%xmm3
movsd  0xbb1(%rip),%xmm0
cmpltsd %xmm1,%xmm0
movsd  0xbac(%rip),%xmm2
andpd  %xmm0,%xmm2
andnpd %xmm3,%xmm0
orpd   %xmm0,%xmm2
movsd  0xba0(%rip),%xmm3
cmpltsd %xmm1,%xmm3
movsd  0xb9b(%rip),%xmm0
andpd  %xmm3,%xmm0
andnpd %xmm2,%xmm3
orpd   %xmm3,%xmm0
ret
movsd  0xbd6(%rip),%xmm2
cmpltsd %xmm1,%xmm2
movsd  0xbd1(%rip),%xmm0
andpd  %xmm2,%xmm0
ret

LLVM IR (-O0):
define double @make_ltic(i32 %0, double %1) {
%3 = alloca i32
%4 = alloca double
%5 = alloca double
store i32 %0, i32* %3
store double %1, double* %4
store double 0.000000e+00, double* %5
%6 = load i32, i32* %3
%7 = icmp slt i32 %6, 0
br i1 %7, label %8, label %9
8: ; preds = %2
store i32 0, i32* %3
br label %9
9: ; preds = %8, %2
%10 = load i32, i32* %3
switch i32 %10, label %149 [
i32 0, label %11
i32 1, label %11
i32 2, label %36
i32 3, label %61
i32 4, label %86
i32 5, label %95
i32 6, label %116
]
11: ; preds = %9, %9
%12 = load double, double* %4
%13 = fcmp oge double %12, 2.000000e+01
br i1 %13, label %14, label %15
14: ; preds = %11
store double 1.000000e+01, double* %5
br label %15
15: ; preds = %14, %11
%16 = load double, double* %4
%17 = fcmp oge double %16, 6.000000e+01
br i1 %17, label %18, label %19
18: ; preds = %15
store double 3.000000e+01, double* %5
br label %19
19: ; preds = %18, %15
%20 = load double, double* %4
%21 = fcmp oge double %20, 1.200000e+02
br i1 %21, label %22, label %23
22: ; preds = %19
store double 6.000000e+01, double* %5
br label %23
23: ; preds = %22, %19
%24 = load double, double* %4
%25 = fcmp oge double %24, 3.000000e+02
br i1 %25, label %26, label %27
26: ; preds = %23
store double 1.200000e+02, double* %5
br label %27
27: ; preds = %26, %23
%28 = load double, double* %4
%29 = fcmp oge double %28, 6.000000e+02
br i1 %29, label %30, label %31
30: ; preds = %27
store double 3.000000e+02, double* %5
br label %31
31: ; preds = %30, %27
%32 = load double, double* %4
%33 = fcmp oge double %32, 1.200000e+03
br i1 %33, label %34, label %35
34: ; preds = %31
store double 6.000000e+02, double* %5
br label %35
35: ; preds = %34, %31
br label %149
36: ; preds = %9
%37 = load double, double* %4
%38 = fcmp oge double %37, 1.200000e+03
br i1 %38, label %39, label %40
39: ; preds = %36
store double 6.000000e+02, double* %5
br label %40
40: ; preds = %39, %36
%41 = load double, double* %4
%42 = fcmp oge double %41, 3.600000e+03
br i1 %42, label %43, label %44
43: ; preds = %40
store double 1.800000e+03, double* %5
br label %44
44: ; preds = %43, %40
%45 = load double, double* %4
%46 = fcmp oge double %45, 7.200000e+03
br i1 %46, label %47, label %48
47: ; preds = %44
store double 3.600000e+03, double* %5
br label %48
48: ; preds = %47, %44
%49 = load double, double* %4
%50 = fcmp oge double %49, 1.800000e+04
br i1 %50, label %51, label %52
51: ; preds = %48
store double 7.200000e+03, double* %5
br label %52
52: ; preds = %51, %48
%53 = load double, double* %4
%54 = fcmp oge double %53, 3.600000e+04
br i1 %54, label %55, label %56
55: ; preds = %52
store double 1.800000e+04, double* %5
br label %56
56: ; preds = %55, %52
%57 = load double, double* %4
%58 = fcmp oge double %57, 7.200000e+04
br i1 %58, label %59, label %60
59: ; preds = %56
store double 3.600000e+04, double* %5
br label %60
60: ; preds = %59, %56
br label %149
61: ; preds = %9
%62 = load double, double* %4
%63 = fcmp ogt double %62, 7.200000e+03
br i1 %63, label %64, label %65
64: ; preds = %61
store double 3.600000e+03, double* %5
br label %65
65: ; preds = %64, %61
%66 = load double, double* %4
%67 = fcmp ogt double %66, 1.440000e+04
br i1 %67, label %68, label %69
68: ; preds = %65
store double 7.200000e+03, double* %5
br label %69
69: ; preds = %68, %65
%70 = load double, double* %4
%71 = fcmp ogt double %70, 2.520000e+04
br i1 %71, label %72, label %73
72: ; preds = %69
store double 1.080000e+04, double* %5
br label %73
73: ; preds = %72, %69
%74 = load double, double* %4
%75 = fcmp ogt double %74, 4.680000e+04
br i1 %75, label %76, label %77
76: ; preds = %73
store double 2.160000e+04, double* %5
br label %77
77: ; preds = %76, %73
%78 = load double, double* %4
%79 = fcmp ogt double %78, 8.640000e+04
br i1 %79, label %80, label %81
80: ; preds = %77
store double 4.320000e+04, double* %5
br label %81
81: ; preds = %80, %77
%82 = load double, double* %4
%83 = fcmp ogt double %82, 1.728000e+05
br i1 %83, label %84, label %85
84: ; preds = %81
store double 8.640000e+04, double* %5
br label %85
85: ; preds = %84, %81
br label %149
86: ; preds = %9
%87 = load double, double* %4
%88 = fcmp ogt double %87, 1.728000e+05
br i1 %88, label %89, label %90
89: ; preds = %86
store double 8.640000e+04, double* %5
br label %90
90: ; preds = %89, %86
%91 = load double, double* %4
%92 = fcmp ogt double %91, 6.048000e+05
br i1 %92, label %93, label %94
93: ; preds = %90
store double 6.048000e+05, double* %5
br label %94
94: ; preds = %93, %90
br label %149
95: ; preds = %9
%96 = load double, double* %4
%97 = fcmp ogt double %96, 1.728000e+05
br i1 %97, label %98, label %99
98: ; preds = %95
store double 8.640000e+04, double* %5
br label %99
99: ; preds = %98, %95
%100 = load double, double* %4
%101 = fcmp ogt double %100, 1.296000e+06
br i1 %101, label %102, label %103
102: ; preds = %99
store double 8.640000e+05, double* %5
br label %103
103: ; preds = %102, %99
%104 = load double, double* %4
%105 = fcmp ogt double %104, 5.259600e+06
br i1 %105, label %106, label %107
106: ; preds = %103
store double 2.629800e+06, double* %5
br label %107
107: ; preds = %106, %103
%108 = load double, double* %4
%109 = fcmp ogt double %108, 1.577880e+07
br i1 %109, label %110, label %111
110: ; preds = %107
store double 7.889400e+06, double* %5
br label %111
111: ; preds = %110, %107
%112 = load double, double* %4
%113 = fcmp ogt double %112, 6.311520e+07
br i1 %113, label %114, label %115
114: ; preds = %111
store double 3.155760e+07, double* %5
br label %115
115: ; preds = %114, %111
br label %149
116: ; preds = %9
%117 = load double, double* %4
%118 = fcmp ogt double %117, 5.259600e+06
br i1 %118, label %119, label %120
119: ; preds = %116
store double 2.629800e+06, double* %5
br label %120
120: ; preds = %119, %116
%121 = load double, double* %4
%122 = fcmp ogt double %121, 1.577880e+07
br i1 %122, label %123, label %124
123: ; preds = %120
store double 7.889400e+06, double* %5
br label %124
124: ; preds = %123, %120
%125 = load double, double* %4
%126 = fcmp ogt double %125, 6.311520e+07
br i1 %126, label %127, label %128
127: ; preds = %124
store double 3.155760e+07, double* %5
br label %128
128: ; preds = %127, %124
%129 = load double, double* %4
%130 = fcmp ogt double %129, 3.155760e+08
br i1 %130, label %131, label %132
131: ; preds = %128
store double 1.577880e+08, double* %5
br label %132
132: ; preds = %131, %128
%133 = load double, double* %4
%134 = fcmp ogt double %133, 1.577880e+09
br i1 %134, label %135, label %136
135: ; preds = %132
store double 3.155760e+08, double* %5
br label %136
136: ; preds = %135, %132
%137 = load double, double* %4
%138 = fcmp ogt double %137, 3.155760e+09
br i1 %138, label %139, label %140
139: ; preds = %136
store double 6.311520e+08, double* %5
br label %140
140: ; preds = %139, %136
%141 = load double, double* %4
%142 = fcmp ogt double %141, 6.311520e+09
br i1 %142, label %143, label %144
143: ; preds = %140
store double 1.577880e+09, double* %5
br label %144
144: ; preds = %143, %140
%145 = load double, double* %4
%146 = fcmp ogt double %145, 9.467280e+09
br i1 %146, label %147, label %148
147: ; preds = %144
store double 3.155760e+09, double* %5
br label %148
148: ; preds = %147, %144
br label %149
149: ; preds = %9, %148, %115, %94, %85, %60, %35
%150 = load double, double* %5
ret double %150
}

LLVM IR (-O2):
define double @make_ltic(i32 %0, double %1) {
%3 = icmp sgt i32 %0, 0
%4 = select i1 %3, i32 %0, i32 0
switch i32 %4, label %77 [
i32 0, label %5
i32 1, label %5
i32 2, label %18
i32 3, label %31
i32 4, label %44
i32 5, label %49
i32 6, label %60
]
5: ; preds = %2, %2
%6 = fcmp ult double %1, 2.000000e+01
%7 = select i1 %6, double 0.000000e+00, double 1.000000e+01
%8 = fcmp ult double %1, 6.000000e+01
%9 = select i1 %8, double %7, double 3.000000e+01
%10 = fcmp ult double %1, 1.200000e+02
%11 = select i1 %10, double %9, double 6.000000e+01
%12 = fcmp ult double %1, 3.000000e+02
%13 = select i1 %12, double %11, double 1.200000e+02
%14 = fcmp ult double %1, 6.000000e+02
%15 = select i1 %14, double %13, double 3.000000e+02
%16 = fcmp ult double %1, 1.200000e+03
br i1 %16, label %77, label %17
17: ; preds = %5
br label %77
18: ; preds = %2
%19 = fcmp ult double %1, 1.200000e+03
%20 = select i1 %19, double 0.000000e+00, double 6.000000e+02
%21 = fcmp ult double %1, 3.600000e+03
%22 = select i1 %21, double %20, double 1.800000e+03
%23 = fcmp ult double %1, 7.200000e+03
%24 = select i1 %23, double %22, double 3.600000e+03
%25 = fcmp ult double %1, 1.800000e+04
%26 = select i1 %25, double %24, double 7.200000e+03
%27 = fcmp ult double %1, 3.600000e+04
%28 = select i1 %27, double %26, double 1.800000e+04
%29 = fcmp ult double %1, 7.200000e+04
br i1 %29, label %77, label %30
30: ; preds = %18
br label %77
31: ; preds = %2
%32 = fcmp ogt double %1, 7.200000e+03
%33 = select i1 %32, double 3.600000e+03, double 0.000000e+00
%34 = fcmp ogt double %1, 1.440000e+04
%35 = select i1 %34, double 7.200000e+03, double %33
%36 = fcmp ogt double %1, 2.520000e+04
%37 = select i1 %36, double 1.080000e+04, double %35
%38 = fcmp ogt double %1, 4.680000e+04
%39 = select i1 %38, double 2.160000e+04, double %37
%40 = fcmp ogt double %1, 8.640000e+04
%41 = select i1 %40, double 4.320000e+04, double %39
%42 = fcmp ogt double %1, 1.728000e+05
br i1 %42, label %43, label %77
43: ; preds = %31
br label %77
44: ; preds = %2
%45 = fcmp ogt double %1, 1.728000e+05
%46 = select i1 %45, double 8.640000e+04, double 0.000000e+00
%47 = fcmp ogt double %1, 6.048000e+05
br i1 %47, label %48, label %77
48: ; preds = %44
br label %77
49: ; preds = %2
%50 = fcmp ogt double %1, 1.728000e+05
%51 = select i1 %50, double 8.640000e+04, double 0.000000e+00
%52 = fcmp ogt double %1, 1.296000e+06
%53 = select i1 %52, double 8.640000e+05, double %51
%54 = fcmp ogt double %1, 5.259600e+06
%55 = select i1 %54, double 2.629800e+06, double %53
%56 = fcmp ogt double %1, 1.577880e+07
%57 = select i1 %56, double 7.889400e+06, double %55
%58 = fcmp ogt double %1, 6.311520e+07
br i1 %58, label %59, label %77
59: ; preds = %49
br label %77
60: ; preds = %2
%61 = fcmp ogt double %1, 5.259600e+06
%62 = select i1 %61, double 2.629800e+06, double 0.000000e+00
%63 = fcmp ogt double %1, 1.577880e+07
%64 = select i1 %63, double 7.889400e+06, double %62
%65 = fcmp ogt double %1, 6.311520e+07
%66 = select i1 %65, double 3.155760e+07, double %64
%67 = fcmp ogt double %1, 3.155760e+08
%68 = select i1 %67, double 1.577880e+08, double %66
%69 = fcmp ogt double %1, 1.577880e+09
%70 = select i1 %69, double 3.155760e+08, double %68
%71 = fcmp ogt double %1, 3.155760e+09
%72 = select i1 %71, double 6.311520e+08, double %70
%73 = fcmp ogt double %1, 6.311520e+09
%74 = select i1 %73, double 1.577880e+09, double %72
%75 = fcmp ogt double %1, 9.467280e+09
br i1 %75, label %76, label %77
76: ; preds = %60
br label %77
77: ; preds = %60, %76, %49, %59, %44, %48, %31, %43, %18, %30, %5, %17, %2
%78 = phi double [ 0.000000e+00, %2 ], [ 3.155760e+09, %76 ], [ %74, %60 ], [ 3.155760e+07, %59 ], [ %57, %49 ], [ 6.048000e+05, %48 ], [ %46, %44 ], [ 8.640000e+04, %43 ], [ %41, %31 ], [ 3.600000e+04, %30 ], [ %28, %18 ], [ 6.000000e+02, %17 ], [ %15, %5 ]
ret double %78
}