#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 */

/* Variables and functions */
int /*<<< orphan*/ printf(char *, ...);
void levels(int kpds6, int kpds7, int center, int verbose) {
  int o11, o12;
  o11 = kpds7 / 256;
  o12 = kpds7 % 256;
  switch (kpds6) {
  case 1:
    printf("sfc");
    break;
  case 2:
    printf("cld base");
    break;
  case 3:
    printf("cld top");
    break;
  case 4:
    printf("0C isotherm");
    break;
  case 5:
    printf("cond lev");
    break;
  case 6:
    printf("max wind lev");
    break;
  case 7:
    printf("tropopause");
    break;
  case 8:
    printf("nom. top");
    break;
  case 9:
    printf("sea bottom");
    break;
  case 200:
  case 10:
    printf("atmos col");
    break;
  case 12:
  case 212:
    printf("low cld bot");
    break;
  case 13:
  case 213:
    printf("low cld top");
    break;
  case 14:
  case 214:
    printf("low cld lay");
    break;
  case 20:
    if (verbose == 2)
      printf("temp=%fK", kpds7 / 100.0);
    else
      printf("T=%fK", kpds7 / 100.0);
    break;
  case 22:
  case 222:
    printf("mid cld bot");
    break;
  case 23:
  case 223:
    printf("mid cld top");
    break;
  case 24:
  case 224:
    printf("mid cld lay");
    break;
  case 32:
  case 232:
    printf("high cld bot");
    break;
  case 33:
  case 233:
    printf("high cld top");
    break;
  case 34:
  case 234:
    printf("high cld lay");
    break;
  case 201:
    printf("ocean column");
    break;
  case 204:
    printf("high trop freezing lvl");
    break;
  case 206:
    printf("grid-scale cld bot");
    break;
  case 207:
    printf("grid-scale cld top");
    break;
  case 209:
    printf("bndary-layer cld bot");
    break;
  case 210:
    if (center == 7)
      printf("bndary-layer cld top");
    else
      printf("%.2f mb", kpds7 * 0.01);
    break;
  case 211:
    printf("bndary-layer cld layer");
    break;
  case 215:
    printf("cloud ceiling");
    break;
  case 216:
    printf("Cb base");
    break;
  case 217:
    printf("Cb top");
    break;
  case 220:
    printf("planetary boundary layer (from Richardson no.)");
    break;
  case 235:
    if (kpds7 % 10 == 0)
      printf("%dC ocean isotherm level", kpds7 / 10);
    else
      printf("%.1fC ocean isotherm level", kpds7 / 10.0);
    break;
  case 236:
    printf("%d-%dm ocean layer", o11 * 10, o12 * 10);
    break;
  case 237:
    printf("ocean mixed layer bot");
    break;
  case 238:
    printf("ocean isothermal layer bot");
    break;
  case 239:
    printf("sfc-26C ocean layer");
    break;
  case 240:
    printf("ocean mixed layer");
    break;
  case 241:
    printf("ordered sequence of data");
    break;
  case 242:
    printf("convect-cld bot");
    break;
  case 243:
    printf("convect-cld top");
    break;
  case 244:
    printf("convect-cld layer");
    break;
  case 245:
    printf("lowest level of wet bulb zero");
    break;
  case 246:
    printf("max e-pot-temp lvl");
    break;
  case 247:
    printf("equilibrium lvl");
    break;
  case 248:
    printf("shallow convect-cld bot");
    break;
  case 249:
    printf("shallow convect-cld top");
    break;
  case 251:
    printf("deep convect-cld bot");
    break;
  case 252:
    printf("deep convect-cld top");
    break;
  case 253:
    printf("lowest bottom level of supercooled liequid water layer");
    break;
  case 254:
    printf("highest top level of supercooled liquid water layer");
    break;
  case 100:
    printf("%d mb", kpds7);
    break;
  case 101:
    printf("%d-%d mb", o11 * 10, o12 * 10);
    break;
  case 102:
    printf("MSL");
    break;
  case 103:
    printf("%d m above MSL", kpds7);
    break;
  case 104:
    printf("%d-%d m above msl", o11 * 100, o12 * 100);
    break;
  case 105:
    printf("%d m above gnd", kpds7);
    break;
  case 106:
    printf("%d-%d m above gnd", o11 * 100, o12 * 100);
    break;
  case 107:
    printf("sigma=%.4f", kpds7 / 10000.0);
    break;
  case 108:
    printf("sigma %.2f-%.2f", o11 / 100.0, o12 / 100.0);
    break;
  case 109:
    printf("hybrid lev %d", kpds7);
    break;
  case 110:
    printf("hybrid %d-%d", o11, o12);
    break;
  case 111:
    printf("%d cm down", kpds7);
    break;
  case 112:
    printf("%d-%d cm down", o11, o12);
    break;
  case 113:
    if (verbose == 2)
      printf("pot-temp=%dK", kpds7);
    else
      printf("%dK", kpds7);
    break;
  case 114:
    printf("%d-%dK", 475 - o11, 475 - o12);
    break;
  case 115:
    printf("%d mb above gnd", kpds7);
    break;
  case 116:
    printf("%d-%d mb above gnd", o11, o12);
    break;
  case 117:
    printf("%d pv units", ((1 - (int)((unsigned)(o11 & 0x80) >> 6)) *
                           (int)(((o11 & 0x7f) << 8) + o12)));
    break;
  case 119:
    printf("%.5f (ETA level)", kpds7 / 10000.0);
    break;
  case 120:
    printf("%.2f-%.2f (ETA levels)", o11 / 100.0, o12 / 100.0);
    break;
  case 121:
    printf("%d-%d mb", 1100 - o11, 1100 - o12);
    break;
  case 125:
    printf("%d cm above gnd", kpds7);
    break;
  case 126:
    if (center == 7)
      printf("%.2f mb", kpds7 * 0.01);
    break;
  case 128:
    printf("%.3f-%.3f (sigma)", 1.1 - o11 / 1000.0, 1.1 - o12 / 1000.0);
    break;
  case 141:
    printf("%d-%d mb", o11 * 10, 1100 - o12);
    break;
  case 160:
    printf("%d m below sea level", kpds7);
    break;
  default:
    break;
  }
}


x86 assembly (clang, -O0):
<levels>:
push   %rbp
mov    %rsp,%rbp
sub    $0x20,%rsp
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
add    $0xff,%ecx
test   %eax,%eax
cmovs  %ecx,%eax
sar    $0x8,%eax
mov    %eax,-0x14(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,%edx
add    $0xff,%edx
test   %eax,%eax
mov    %eax,%ecx
cmovs  %edx,%ecx
and    $0xffffff00,%ecx
sub    %ecx,%eax
mov    %eax,-0x18(%rbp)
mov    -0x4(%rbp),%eax
add    $0xffffffff,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0xfd,%eax
ja     194d <levels+0x83d>
mov    -0x20(%rbp),%rax
lea    0xeb7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0x129f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1290(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1314(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1273(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x126c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1262(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x125c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1254(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x124a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1242(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1239(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1232(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x122b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cmpl   $0x2,-0x10(%rbp)
jne    12a7 <levels+0x197>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0xd88(%rip),%xmm1
divsd  %xmm1,%xmm0
lea    0x1209(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    12c6 <levels+0x1b6>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0xd64(%rip),%xmm1
divsd  %xmm1,%xmm0
lea    0x11ee(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11e1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11da(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11d3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11cc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11c6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11c0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11ba(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11b4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11b8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11b8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x11b8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cmpl   $0x7,-0xc(%rbp)
jne    13b9 <levels+0x2a9>
lea    0x11b0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    13d8 <levels+0x2c8>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0xc4a(%rip),%xmm1
mulsd  %xmm1,%xmm0
lea    0x11a1(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1196(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x119a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1195(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x118a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x117e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
cmp    $0x0,%edx
jne    1470 <levels+0x360>
mov    -0x8(%rbp),%eax
mov    $0xa,%ecx
cltd
idiv   %ecx
mov    %eax,%esi
lea    0x1179(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    148f <levels+0x37f>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0xbab(%rip),%xmm1
divsd  %xmm1,%xmm0
lea    0x116e(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
imul   $0xa,-0x14(%rbp),%esi
imul   $0xa,-0x18(%rbp),%edx
lea    0x116e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x116e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1171(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1179(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x117a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1179(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1207(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1209(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1159(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1158(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1163(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1163(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1160(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1165(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x116a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x116c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x116e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1192(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x11b3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
imul   $0xa,-0x14(%rbp),%esi
imul   $0xa,-0x18(%rbp),%edx
lea    0x1195(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
lea    0x1196(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x1175(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
imul   $0x64,-0x14(%rbp),%esi
imul   $0x64,-0x18(%rbp),%edx
lea    0x1169(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x1168(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
imul   $0x64,-0x14(%rbp),%esi
imul   $0x64,-0x18(%rbp),%edx
lea    0x114a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0x97b(%rip),%xmm1
divsd  %xmm1,%xmm0
lea    0x1138(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cvtsi2sdl -0x14(%rbp),%xmm0
movsd  0x94f(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsi2sdl -0x18(%rbp),%xmm1
movsd  0x93e(%rip),%xmm2
divsd  %xmm2,%xmm1
lea    0x110e(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x1108(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x14(%rbp),%esi
mov    -0x18(%rbp),%edx
lea    0x10fd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x10f7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x14(%rbp),%esi
mov    -0x18(%rbp),%edx
lea    0x10db(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cmpl   $0x2,-0x10(%rbp)
jne    176f <levels+0x65f>
mov    -0x8(%rbp),%esi
lea    0x10c9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1780 <levels+0x670>
mov    -0x8(%rbp),%esi
lea    0x10c3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    $0x1db,%esi
sub    -0x14(%rbp),%esi
mov    $0x1db,%edx
sub    -0x18(%rbp),%edx
lea    0x109d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0x1091(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x14(%rbp),%esi
mov    -0x18(%rbp),%edx
lea    0x1075(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x14(%rbp),%eax
and    $0x80,%eax
shr    $0x6,%eax
mov    $0x1,%esi
sub    %eax,%esi
mov    -0x14(%rbp),%eax
and    $0x7f,%eax
shl    $0x8,%eax
add    -0x18(%rbp),%eax
imul   %eax,%esi
lea    0x1054(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0x808(%rip),%xmm1
divsd  %xmm1,%xmm0
lea    0x103c(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cvtsi2sdl -0x14(%rbp),%xmm0
movsd  0x7dc(%rip),%xmm1
divsd  %xmm1,%xmm0
cvtsi2sdl -0x18(%rbp),%xmm1
movsd  0x7cb(%rip),%xmm2
divsd  %xmm2,%xmm1
lea    0x1018(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    $0x44c,%esi
sub    -0x14(%rbp),%esi
mov    $0x44c,%edx
sub    -0x18(%rbp),%edx
lea    0xf31(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0xff6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cmpl   $0x7,-0xc(%rbp)
jne    18c6 <levels+0x7b6>
cvtsi2sdl -0x8(%rbp),%xmm0
movsd  0x75c(%rip),%xmm1
mulsd  %xmm1,%xmm0
lea    0xcb3(%rip),%rdi
mov    $0x1,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
cvtsi2sdl -0x14(%rbp),%xmm1
movsd  0x730(%rip),%xmm0
divsd  %xmm0,%xmm1
movsd  0x71c(%rip),%xmm0
subsd  %xmm1,%xmm0
cvtsi2sdl -0x18(%rbp),%xmm2
movsd  0x713(%rip),%xmm1
divsd  %xmm1,%xmm2
movsd  0x6ff(%rip),%xmm1
subsd  %xmm2,%xmm1
lea    0xf8b(%rip),%rdi
mov    $0x2,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
imul   $0xa,-0x14(%rbp),%esi
mov    $0x44c,%edx
sub    -0x18(%rbp),%edx
lea    0xe81(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
mov    -0x8(%rbp),%esi
lea    0xf68(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
jmp    1952 <levels+0x842>
jmp    1952 <levels+0x842>
add    $0x20,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<levels>:
lea    0xff(%rsi),%eax
test   %esi,%esi
cmovns %esi,%eax
add    $0xffffffff,%edi
cmp    $0xfd,%edi
ja     144e <levels+0x33e>
mov    %edx,%r8d
mov    %eax,%r9d
sar    $0x8,%r9d
and    $0xffffff00,%eax
mov    %esi,%edx
sub    %eax,%edx
lea    0xeec(%rip),%rax
movslq (%rax,%rdi,4),%rdi
add    %rax,%rdi
jmp    *%rdi
lea    0x1322(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x131e(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x131c(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x131a(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1327(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1325(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1323(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1321(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1320(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x131f(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1248(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x123e(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x12c7(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x122b(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1229(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1224(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1223(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1220(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x121b(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
cvtsi2sd %esi,%xmm0
divsd  0xdb5(%rip),%xmm0
cmp    $0x2,%ecx
jne    16af <levels+0x59f>
lea    0x1231(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
lea    0x152e(%rip),%rdi
jmp    16e4 <levels+0x5d4>
add    %r9d,%r9d
lea    (%r9,%r9,4),%esi
add    %edx,%edx
lea    (%rdx,%rdx,4),%edx
lea    0x1513(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1519(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1500(%rip),%rdi
jmp    16e4 <levels+0x5d4>
imul   $0x64,%r9d,%esi
imul   $0x64,%edx,%edx
lea    0x14fc(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1503(%rip),%rdi
jmp    16e4 <levels+0x5d4>
imul   $0x64,%r9d,%esi
imul   $0x64,%edx,%edx
lea    0x14ed(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
cvtsi2sd %esi,%xmm0
divsd  0xd24(%rip),%xmm0
lea    0x14e5(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
cvtsi2sd %r9d,%xmm0
movsd  0xd01(%rip),%xmm2
cvtsi2sd %edx,%xmm1
divsd  %xmm2,%xmm0
divsd  %xmm2,%xmm1
lea    0x14c9(%rip),%rdi
mov    $0x2,%al
jmp    1030 <printf@plt>
lea    0x14cb(%rip),%rdi
jmp    16e4 <levels+0x5d4>
lea    0x14cd(%rip),%rdi
jmp    139e <levels+0x28e>
lea    0x14d4(%rip),%rdi
jmp    16e4 <levels+0x5d4>
lea    0x14c5(%rip),%rdi
jmp    139e <levels+0x28e>
cmp    $0x2,%ecx
jne    16bd <levels+0x5ad>
lea    0x14c1(%rip),%rdi
jmp    16e4 <levels+0x5d4>
mov    $0x1db,%ecx
mov    $0x1db,%esi
sub    %r9d,%esi
sub    %edx,%ecx
lea    0x14b3(%rip),%rdi
jmp    142f <levels+0x31f>
lea    0x14b1(%rip),%rdi
jmp    16e4 <levels+0x5d4>
lea    0x14a2(%rip),%rdi
mov    %r9d,%esi
xor    %eax,%eax
jmp    1030 <printf@plt>
mov    %r9d,%eax
shr    $0x6,%eax
and    $0x2,%eax
mov    $0x1,%ecx
sub    %eax,%ecx
and    $0x7f,%r9d
shl    $0x8,%r9d
add    %edx,%r9d
imul   %ecx,%r9d
lea    0x1485(%rip),%rdi
mov    %r9d,%esi
xor    %eax,%eax
jmp    1030 <printf@plt>
cvtsi2sd %esi,%xmm0
divsd  0xc3c(%rip),%xmm0
lea    0x1474(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
cvtsi2sd %r9d,%xmm0
movsd  0xc19(%rip),%xmm2
cvtsi2sd %edx,%xmm1
divsd  %xmm2,%xmm0
divsd  %xmm2,%xmm1
lea    0x145e(%rip),%rdi
mov    $0x2,%al
jmp    1030 <printf@plt>
mov    $0x44c,%ecx
mov    $0x44c,%esi
sub    %r9d,%esi
sub    %edx,%ecx
lea    0x137d(%rip),%rdi
mov    %ecx,%edx
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1448(%rip),%rdi
jmp    16e4 <levels+0x5d4>
cmp    $0x7,%r8d
je     1695 <levels+0x585>
ret
cvtsi2sd %r9d,%xmm2
movsd  0xba4(%rip),%xmm3
divsd  %xmm3,%xmm2
movsd  0xba0(%rip),%xmm1
movapd %xmm1,%xmm0
subsd  %xmm2,%xmm0
xorps  %xmm2,%xmm2
cvtsi2sd %edx,%xmm2
divsd  %xmm3,%xmm2
subsd  %xmm2,%xmm1
lea    0x1411(%rip),%rdi
mov    $0x2,%al
jmp    1030 <printf@plt>
add    %r9d,%r9d
lea    (%r9,%r9,4),%esi
mov    $0x44c,%eax
sub    %edx,%eax
lea    0x130a(%rip),%rdi
mov    %eax,%edx
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x13f7(%rip),%rdi
jmp    16e4 <levels+0x5d4>
lea    0x1040(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x103f(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1048(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x104d(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1052(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
cmp    $0x7,%r8d
jne    1695 <levels+0x585>
lea    0x104f(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x105e(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1067(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1067(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1061(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x105a(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
imul   $0xcccccccd,%esi,%eax
add    $0x19999998,%eax
ror    %eax
cmp    $0x19999998,%eax
jbe    16c6 <levels+0x5b6>
cvtsi2sd %esi,%xmm0
divsd  0xaa9(%rip),%xmm0
lea    0x1070(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
add    %r9d,%r9d
lea    (%r9,%r9,4),%esi
add    %edx,%edx
lea    (%rdx,%rdx,4),%edx
lea    0x1071(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1076(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x107e(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x108b(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1091(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1095(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1128(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x112f(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1084(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1088(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x1098(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x109d(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x109f(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x10a9(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x10b3(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x10ba(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x10c1(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
lea    0x10ea(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>
cvtsi2sd %esi,%xmm0
mulsd  0x96f(%rip),%xmm0
lea    0xeca(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
lea    0xdf7(%rip),%rdi
mov    $0x1,%al
jmp    1030 <printf@plt>
lea    0x1178(%rip),%rdi
jmp    16e4 <levels+0x5d4>
movslq %esi,%rax
imul   $0x66666667,%rax,%rsi
mov    %rsi,%rax
shr    $0x3f,%rax
sar    $0x22,%rsi
add    %eax,%esi
lea    0xef9(%rip),%rdi
xor    %eax,%eax
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [4 x i8] c"sfc\00"
@.str.1 = [9 x i8] c"cld base\00"
@.str.2 = [8 x i8] c"cld top\00"
@.str.3 = [12 x i8] c"0C isotherm\00"
@.str.4 = [9 x i8] c"cond lev\00"
@.str.5 = [13 x i8] c"max wind lev\00"
@.str.6 = [11 x i8] c"tropopause\00"
@.str.7 = [9 x i8] c"nom. top\00"
@.str.8 = [11 x i8] c"sea bottom\00"
@.str.9 = [10 x i8] c"atmos col\00"
@.str.10 = [12 x i8] c"low cld bot\00"
@.str.11 = [12 x i8] c"low cld top\00"
@.str.12 = [12 x i8] c"low cld lay\00"
@.str.13 = [9 x i8] c"temp=%fK\00"
@.str.14 = [6 x i8] c"T=%fK\00"
@.str.15 = [12 x i8] c"mid cld bot\00"
@.str.16 = [12 x i8] c"mid cld top\00"
@.str.17 = [12 x i8] c"mid cld lay\00"
@.str.18 = [13 x i8] c"high cld bot\00"
@.str.19 = [13 x i8] c"high cld top\00"
@.str.20 = [13 x i8] c"high cld lay\00"
@.str.21 = [13 x i8] c"ocean column\00"
@.str.22 = [23 x i8] c"high trop freezing lvl\00"
@.str.23 = [19 x i8] c"grid-scale cld bot\00"
@.str.24 = [19 x i8] c"grid-scale cld top\00"
@.str.25 = [21 x i8] c"bndary-layer cld bot\00"
@.str.26 = [21 x i8] c"bndary-layer cld top\00"
@.str.27 = [8 x i8] c"%.2f mb\00"
@.str.28 = [23 x i8] c"bndary-layer cld layer\00"
@.str.29 = [14 x i8] c"cloud ceiling\00"
@.str.30 = [8 x i8] c"Cb base\00"
@.str.31 = [7 x i8] c"Cb top\00"
@.str.32 = [47 x i8] c"planetary boundary layer (from Richardson no.)\00"
@.str.33 = [25 x i8] c"%dC ocean isotherm level\00"
@.str.34 = [27 x i8] c"%.1fC ocean isotherm level\00"
@.str.35 = [19 x i8] c"%d-%dm ocean layer\00"
@.str.36 = [22 x i8] c"ocean mixed layer bot\00"
@.str.37 = [27 x i8] c"ocean isothermal layer bot\00"
@.str.38 = [20 x i8] c"sfc-26C ocean layer\00"
@.str.39 = [18 x i8] c"ocean mixed layer\00"
@.str.40 = [25 x i8] c"ordered sequence of data\00"
@.str.41 = [16 x i8] c"convect-cld bot\00"
@.str.42 = [16 x i8] c"convect-cld top\00"
@.str.43 = [18 x i8] c"convect-cld layer\00"
@.str.44 = [30 x i8] c"lowest level of wet bulb zero\00"
@.str.45 = [19 x i8] c"max e-pot-temp lvl\00"
@.str.46 = [16 x i8] c"equilibrium lvl\00"
@.str.47 = [24 x i8] c"shallow convect-cld bot\00"
@.str.48 = [24 x i8] c"shallow convect-cld top\00"
@.str.49 = [21 x i8] c"deep convect-cld bot\00"
@.str.50 = [21 x i8] c"deep convect-cld top\00"
@.str.51 = [55 x i8] c"lowest bottom level of supercooled liequid water layer\00"
@.str.52 = [52 x i8] c"highest top level of supercooled liquid water layer\00"
@.str.53 = [6 x i8] c"%d mb\00"
@.str.54 = [9 x i8] c"%d-%d mb\00"
@.str.55 = [4 x i8] c"MSL\00"
@.str.56 = [15 x i8] c"%d m above MSL\00"
@.str.57 = [18 x i8] c"%d-%d m above msl\00"
@.str.58 = [15 x i8] c"%d m above gnd\00"
@.str.59 = [18 x i8] c"%d-%d m above gnd\00"
@.str.60 = [11 x i8] c"sigma=%.4f\00"
@.str.61 = [16 x i8] c"sigma %.2f-%.2f\00"
@.str.62 = [14 x i8] c"hybrid lev %d\00"
@.str.63 = [13 x i8] c"hybrid %d-%d\00"
@.str.64 = [11 x i8] c"%d cm down\00"
@.str.65 = [14 x i8] c"%d-%d cm down\00"
@.str.66 = [13 x i8] c"pot-temp=%dK\00"
@.str.67 = [4 x i8] c"%dK\00"
@.str.68 = [7 x i8] c"%d-%dK\00"
@.str.69 = [16 x i8] c"%d mb above gnd\00"
@.str.70 = [19 x i8] c"%d-%d mb above gnd\00"
@.str.71 = [12 x i8] c"%d pv units\00"
@.str.72 = [17 x i8] c"%.5f (ETA level)\00"
@.str.73 = [23 x i8] c"%.2f-%.2f (ETA levels)\00"
@.str.74 = [16 x i8] c"%d cm above gnd\00"
@.str.75 = [18 x i8] c"%.3f-%.3f (sigma)\00"
@.str.76 = [21 x i8] c"%d m below sea level\00"
define void @levels(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = alloca i32
%6 = alloca i32
%7 = alloca i32
%8 = alloca i32
%9 = alloca i32
%10 = alloca i32
store i32 %0, i32* %5
store i32 %1, i32* %6
store i32 %2, i32* %7
store i32 %3, i32* %8
%11 = load i32, i32* %6
%12 = sdiv i32 %11, 256
store i32 %12, i32* %9
%13 = load i32, i32* %6
%14 = srem i32 %13, 256
store i32 %14, i32* %10
%15 = load i32, i32* %5
switch i32 %15, label %294 [
i32 1, label %16
i32 2, label %18
i32 3, label %20
i32 4, label %22
i32 5, label %24
i32 6, label %26
i32 7, label %28
i32 8, label %30
i32 9, label %32
i32 200, label %34
i32 10, label %34
i32 12, label %36
i32 212, label %36
i32 13, label %38
i32 213, label %38
i32 14, label %40
i32 214, label %40
i32 20, label %42
i32 22, label %56
i32 222, label %56
i32 23, label %58
i32 223, label %58
i32 24, label %60
i32 224, label %60
i32 32, label %62
i32 232, label %62
i32 33, label %64
i32 233, label %64
i32 34, label %66
i32 234, label %66
i32 201, label %68
i32 204, label %70
i32 206, label %72
i32 207, label %74
i32 209, label %76
i32 210, label %78
i32 211, label %89
i32 215, label %91
i32 216, label %93
i32 217, label %95
i32 220, label %97
i32 235, label %99
i32 236, label %113
i32 237, label %119
i32 238, label %121
i32 239, label %123
i32 240, label %125
i32 241, label %127
i32 242, label %129
i32 243, label %131
i32 244, label %133
i32 245, label %135
i32 246, label %137
i32 247, label %139
i32 248, label %141
i32 249, label %143
i32 251, label %145
i32 252, label %147
i32 253, label %149
i32 254, label %151
i32 100, label %153
i32 101, label %156
i32 102, label %162
i32 103, label %164
i32 104, label %167
i32 105, label %173
i32 106, label %176
i32 107, label %182
i32 108, label %187
i32 109, label %195
i32 110, label %198
i32 111, label %202
i32 112, label %205
i32 113, label %209
i32 114, label %219
i32 115, label %225
i32 116, label %228
i32 117, label %232
i32 119, label %244
i32 120, label %249
i32 121, label %257
i32 125, label %263
i32 126, label %266
i32 128, label %275
i32 141, label %285
i32 160, label %291
]
16: ; preds = %4
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %295
18: ; preds = %4
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
br label %295
20: ; preds = %4
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0))
br label %295
22: ; preds = %4
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
br label %295
24: ; preds = %4
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
br label %295
26: ; preds = %4
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
br label %295
28: ; preds = %4
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
br label %295
30: ; preds = %4
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0))
br label %295
32: ; preds = %4
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
br label %295
34: ; preds = %4, %4
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
br label %295
36: ; preds = %4, %4
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
br label %295
38: ; preds = %4, %4
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
br label %295
40: ; preds = %4, %4
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
br label %295
42: ; preds = %4
%43 = load i32, i32* %8
%44 = icmp eq i32 %43, 2
br i1 %44, label %45, label %50
45: ; preds = %42
%46 = load i32, i32* %6
%47 = sitofp i32 %46 to double
%48 = fdiv double %47, 1.000000e+02
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0), double %48)
br label %55
50: ; preds = %42
%51 = load i32, i32* %6
%52 = sitofp i32 %51 to double
%53 = fdiv double %52, 1.000000e+02
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0), double %53)
br label %55
55: ; preds = %50, %45
br label %295
56: ; preds = %4, %4
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %295
58: ; preds = %4, %4
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
br label %295
60: ; preds = %4, %4
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.17, i64 0, i64 0))
br label %295
62: ; preds = %4, %4
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %295
64: ; preds = %4, %4
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.19, i64 0, i64 0))
br label %295
66: ; preds = %4, %4
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.20, i64 0, i64 0))
br label %295
68: ; preds = %4
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.21, i64 0, i64 0))
br label %295
70: ; preds = %4
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.22, i64 0, i64 0))
br label %295
72: ; preds = %4
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0))
br label %295
74: ; preds = %4
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.24, i64 0, i64 0))
br label %295
76: ; preds = %4
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.25, i64 0, i64 0))
br label %295
78: ; preds = %4
%79 = load i32, i32* %7
%80 = icmp eq i32 %79, 7
br i1 %80, label %81, label %83
81: ; preds = %78
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.26, i64 0, i64 0))
br label %88
83: ; preds = %78
%84 = load i32, i32* %6
%85 = sitofp i32 %84 to double
%86 = fmul double %85, 1.000000e-02
%87 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0), double %86)
br label %88
88: ; preds = %83, %81
br label %295
89: ; preds = %4
%90 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0))
br label %295
91: ; preds = %4
%92 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.29, i64 0, i64 0))
br label %295
93: ; preds = %4
%94 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.30, i64 0, i64 0))
br label %295
95: ; preds = %4
%96 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
br label %295
97: ; preds = %4
%98 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([47 x i8], [47 x i8]* @.str.32, i64 0, i64 0))
br label %295
99: ; preds = %4
%100 = load i32, i32* %6
%101 = srem i32 %100, 10
%102 = icmp eq i32 %101, 0
br i1 %102, label %103, label %107
103: ; preds = %99
%104 = load i32, i32* %6
%105 = sdiv i32 %104, 10
%106 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), i32 %105)
br label %112
107: ; preds = %99
%108 = load i32, i32* %6
%109 = sitofp i32 %108 to double
%110 = fdiv double %109, 1.000000e+01
%111 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.34, i64 0, i64 0), double %110)
br label %112
112: ; preds = %107, %103
br label %295
113: ; preds = %4
%114 = load i32, i32* %9
%115 = mul nsw i32 %114, 10
%116 = load i32, i32* %10
%117 = mul nsw i32 %116, 10
%118 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.35, i64 0, i64 0), i32 %115, i32 %117)
br label %295
119: ; preds = %4
%120 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.36, i64 0, i64 0))
br label %295
121: ; preds = %4
%122 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.37, i64 0, i64 0))
br label %295
123: ; preds = %4
%124 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.38, i64 0, i64 0))
br label %295
125: ; preds = %4
%126 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.39, i64 0, i64 0))
br label %295
127: ; preds = %4
%128 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.40, i64 0, i64 0))
br label %295
129: ; preds = %4
%130 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.41, i64 0, i64 0))
br label %295
131: ; preds = %4
%132 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.42, i64 0, i64 0))
br label %295
133: ; preds = %4
%134 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.43, i64 0, i64 0))
br label %295
135: ; preds = %4
%136 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([30 x i8], [30 x i8]* @.str.44, i64 0, i64 0))
br label %295
137: ; preds = %4
%138 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.45, i64 0, i64 0))
br label %295
139: ; preds = %4
%140 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0))
br label %295
141: ; preds = %4
%142 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.47, i64 0, i64 0))
br label %295
143: ; preds = %4
%144 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.48, i64 0, i64 0))
br label %295
145: ; preds = %4
%146 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.49, i64 0, i64 0))
br label %295
147: ; preds = %4
%148 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
br label %295
149: ; preds = %4
%150 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.51, i64 0, i64 0))
br label %295
151: ; preds = %4
%152 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.52, i64 0, i64 0))
br label %295
153: ; preds = %4
%154 = load i32, i32* %6
%155 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0), i32 %154)
br label %295
156: ; preds = %4
%157 = load i32, i32* %9
%158 = mul nsw i32 %157, 10
%159 = load i32, i32* %10
%160 = mul nsw i32 %159, 10
%161 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %158, i32 %160)
br label %295
162: ; preds = %4
%163 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
br label %295
164: ; preds = %4
%165 = load i32, i32* %6
%166 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.56, i64 0, i64 0), i32 %165)
br label %295
167: ; preds = %4
%168 = load i32, i32* %9
%169 = mul nsw i32 %168, 100
%170 = load i32, i32* %10
%171 = mul nsw i32 %170, 100
%172 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.57, i64 0, i64 0), i32 %169, i32 %171)
br label %295
173: ; preds = %4
%174 = load i32, i32* %6
%175 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.58, i64 0, i64 0), i32 %174)
br label %295
176: ; preds = %4
%177 = load i32, i32* %9
%178 = mul nsw i32 %177, 100
%179 = load i32, i32* %10
%180 = mul nsw i32 %179, 100
%181 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i32 %178, i32 %180)
br label %295
182: ; preds = %4
%183 = load i32, i32* %6
%184 = sitofp i32 %183 to double
%185 = fdiv double %184, 1.000000e+04
%186 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.60, i64 0, i64 0), double %185)
br label %295
187: ; preds = %4
%188 = load i32, i32* %9
%189 = sitofp i32 %188 to double
%190 = fdiv double %189, 1.000000e+02
%191 = load i32, i32* %10
%192 = sitofp i32 %191 to double
%193 = fdiv double %192, 1.000000e+02
%194 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.61, i64 0, i64 0), double %190, double %193)
br label %295
195: ; preds = %4
%196 = load i32, i32* %6
%197 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.62, i64 0, i64 0), i32 %196)
br label %295
198: ; preds = %4
%199 = load i32, i32* %9
%200 = load i32, i32* %10
%201 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.63, i64 0, i64 0), i32 %199, i32 %200)
br label %295
202: ; preds = %4
%203 = load i32, i32* %6
%204 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.64, i64 0, i64 0), i32 %203)
br label %295
205: ; preds = %4
%206 = load i32, i32* %9
%207 = load i32, i32* %10
%208 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.65, i64 0, i64 0), i32 %206, i32 %207)
br label %295
209: ; preds = %4
%210 = load i32, i32* %8
%211 = icmp eq i32 %210, 2
br i1 %211, label %212, label %215
212: ; preds = %209
%213 = load i32, i32* %6
%214 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.66, i64 0, i64 0), i32 %213)
br label %218
215: ; preds = %209
%216 = load i32, i32* %6
%217 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.67, i64 0, i64 0), i32 %216)
br label %218
218: ; preds = %215, %212
br label %295
219: ; preds = %4
%220 = load i32, i32* %9
%221 = sub nsw i32 475, %220
%222 = load i32, i32* %10
%223 = sub nsw i32 475, %222
%224 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.68, i64 0, i64 0), i32 %221, i32 %223)
br label %295
225: ; preds = %4
%226 = load i32, i32* %6
%227 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.69, i64 0, i64 0), i32 %226)
br label %295
228: ; preds = %4
%229 = load i32, i32* %9
%230 = load i32, i32* %10
%231 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.70, i64 0, i64 0), i32 %229, i32 %230)
br label %295
232: ; preds = %4
%233 = load i32, i32* %9
%234 = and i32 %233, 128
%235 = lshr i32 %234, 6
%236 = sub nsw i32 1, %235
%237 = load i32, i32* %9
%238 = and i32 %237, 127
%239 = shl i32 %238, 8
%240 = load i32, i32* %10
%241 = add nsw i32 %239, %240
%242 = mul nsw i32 %236, %241
%243 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.71, i64 0, i64 0), i32 %242)
br label %295
244: ; preds = %4
%245 = load i32, i32* %6
%246 = sitofp i32 %245 to double
%247 = fdiv double %246, 1.000000e+04
%248 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.72, i64 0, i64 0), double %247)
br label %295
249: ; preds = %4
%250 = load i32, i32* %9
%251 = sitofp i32 %250 to double
%252 = fdiv double %251, 1.000000e+02
%253 = load i32, i32* %10
%254 = sitofp i32 %253 to double
%255 = fdiv double %254, 1.000000e+02
%256 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.73, i64 0, i64 0), double %252, double %255)
br label %295
257: ; preds = %4
%258 = load i32, i32* %9
%259 = sub nsw i32 1100, %258
%260 = load i32, i32* %10
%261 = sub nsw i32 1100, %260
%262 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %259, i32 %261)
br label %295
263: ; preds = %4
%264 = load i32, i32* %6
%265 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.74, i64 0, i64 0), i32 %264)
br label %295
266: ; preds = %4
%267 = load i32, i32* %7
%268 = icmp eq i32 %267, 7
br i1 %268, label %269, label %274
269: ; preds = %266
%270 = load i32, i32* %6
%271 = sitofp i32 %270 to double
%272 = fmul double %271, 1.000000e-02
%273 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0), double %272)
br label %274
274: ; preds = %269, %266
br label %295
275: ; preds = %4
%276 = load i32, i32* %9
%277 = sitofp i32 %276 to double
%278 = fdiv double %277, 1.000000e+03
%279 = fsub double 1.100000e+00, %278
%280 = load i32, i32* %10
%281 = sitofp i32 %280 to double
%282 = fdiv double %281, 1.000000e+03
%283 = fsub double 1.100000e+00, %282
%284 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.75, i64 0, i64 0), double %279, double %283)
br label %295
285: ; preds = %4
%286 = load i32, i32* %9
%287 = mul nsw i32 %286, 10
%288 = load i32, i32* %10
%289 = sub nsw i32 1100, %288
%290 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %287, i32 %289)
br label %295
291: ; preds = %4
%292 = load i32, i32* %6
%293 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.76, i64 0, i64 0), i32 %292)
br label %295
294: ; preds = %4
br label %295
295: ; preds = %294, %291, %285, %275, %274, %263, %257, %249, %244, %232, %228, %225, %219, %218, %205, %202, %198, %195, %187, %182, %176, %173, %167, %164, %162, %156, %153, %151, %149, %147, %145, %143, %141, %139, %137, %135, %133, %131, %129, %127, %125, %123, %121, %119, %113, %112, %97, %95, %93, %91, %89, %88, %76, %74, %72, %70, %68, %66, %64, %62, %60, %58, %56, %55, %40, %38, %36, %34, %32, %30, %28, %26, %24, %22, %20, %18, %16
ret void
}

LLVM IR (-O2):
@.str = [4 x i8] c"sfc\00"
@.str.1 = [9 x i8] c"cld base\00"
@.str.2 = [8 x i8] c"cld top\00"
@.str.3 = [12 x i8] c"0C isotherm\00"
@.str.4 = [9 x i8] c"cond lev\00"
@.str.5 = [13 x i8] c"max wind lev\00"
@.str.6 = [11 x i8] c"tropopause\00"
@.str.7 = [9 x i8] c"nom. top\00"
@.str.8 = [11 x i8] c"sea bottom\00"
@.str.9 = [10 x i8] c"atmos col\00"
@.str.10 = [12 x i8] c"low cld bot\00"
@.str.11 = [12 x i8] c"low cld top\00"
@.str.12 = [12 x i8] c"low cld lay\00"
@.str.13 = [9 x i8] c"temp=%fK\00"
@.str.14 = [6 x i8] c"T=%fK\00"
@.str.15 = [12 x i8] c"mid cld bot\00"
@.str.16 = [12 x i8] c"mid cld top\00"
@.str.17 = [12 x i8] c"mid cld lay\00"
@.str.18 = [13 x i8] c"high cld bot\00"
@.str.19 = [13 x i8] c"high cld top\00"
@.str.20 = [13 x i8] c"high cld lay\00"
@.str.21 = [13 x i8] c"ocean column\00"
@.str.22 = [23 x i8] c"high trop freezing lvl\00"
@.str.23 = [19 x i8] c"grid-scale cld bot\00"
@.str.24 = [19 x i8] c"grid-scale cld top\00"
@.str.25 = [21 x i8] c"bndary-layer cld bot\00"
@.str.26 = [21 x i8] c"bndary-layer cld top\00"
@.str.27 = [8 x i8] c"%.2f mb\00"
@.str.28 = [23 x i8] c"bndary-layer cld layer\00"
@.str.29 = [14 x i8] c"cloud ceiling\00"
@.str.30 = [8 x i8] c"Cb base\00"
@.str.31 = [7 x i8] c"Cb top\00"
@.str.32 = [47 x i8] c"planetary boundary layer (from Richardson no.)\00"
@.str.33 = [25 x i8] c"%dC ocean isotherm level\00"
@.str.34 = [27 x i8] c"%.1fC ocean isotherm level\00"
@.str.35 = [19 x i8] c"%d-%dm ocean layer\00"
@.str.36 = [22 x i8] c"ocean mixed layer bot\00"
@.str.37 = [27 x i8] c"ocean isothermal layer bot\00"
@.str.38 = [20 x i8] c"sfc-26C ocean layer\00"
@.str.39 = [18 x i8] c"ocean mixed layer\00"
@.str.40 = [25 x i8] c"ordered sequence of data\00"
@.str.41 = [16 x i8] c"convect-cld bot\00"
@.str.42 = [16 x i8] c"convect-cld top\00"
@.str.43 = [18 x i8] c"convect-cld layer\00"
@.str.44 = [30 x i8] c"lowest level of wet bulb zero\00"
@.str.45 = [19 x i8] c"max e-pot-temp lvl\00"
@.str.46 = [16 x i8] c"equilibrium lvl\00"
@.str.47 = [24 x i8] c"shallow convect-cld bot\00"
@.str.48 = [24 x i8] c"shallow convect-cld top\00"
@.str.49 = [21 x i8] c"deep convect-cld bot\00"
@.str.50 = [21 x i8] c"deep convect-cld top\00"
@.str.51 = [55 x i8] c"lowest bottom level of supercooled liequid water layer\00"
@.str.52 = [52 x i8] c"highest top level of supercooled liquid water layer\00"
@.str.53 = [6 x i8] c"%d mb\00"
@.str.54 = [9 x i8] c"%d-%d mb\00"
@.str.55 = [4 x i8] c"MSL\00"
@.str.56 = [15 x i8] c"%d m above MSL\00"
@.str.57 = [18 x i8] c"%d-%d m above msl\00"
@.str.58 = [15 x i8] c"%d m above gnd\00"
@.str.59 = [18 x i8] c"%d-%d m above gnd\00"
@.str.60 = [11 x i8] c"sigma=%.4f\00"
@.str.61 = [16 x i8] c"sigma %.2f-%.2f\00"
@.str.62 = [14 x i8] c"hybrid lev %d\00"
@.str.63 = [13 x i8] c"hybrid %d-%d\00"
@.str.64 = [11 x i8] c"%d cm down\00"
@.str.65 = [14 x i8] c"%d-%d cm down\00"
@.str.66 = [13 x i8] c"pot-temp=%dK\00"
@.str.67 = [4 x i8] c"%dK\00"
@.str.68 = [7 x i8] c"%d-%dK\00"
@.str.69 = [16 x i8] c"%d mb above gnd\00"
@.str.70 = [19 x i8] c"%d-%d mb above gnd\00"
@.str.71 = [12 x i8] c"%d pv units\00"
@.str.72 = [17 x i8] c"%.5f (ETA level)\00"
@.str.73 = [23 x i8] c"%.2f-%.2f (ETA levels)\00"
@.str.74 = [16 x i8] c"%d cm above gnd\00"
@.str.75 = [18 x i8] c"%.3f-%.3f (sigma)\00"
@.str.76 = [21 x i8] c"%d m below sea level\00"
define void @levels(i32 %0, i32 %1, i32 %2, i32 %3) {
%5 = sdiv i32 %1, 256
%6 = srem i32 %1, 256
switch i32 %0, label %226 [
i32 1, label %7
i32 2, label %9
i32 3, label %11
i32 4, label %13
i32 5, label %15
i32 6, label %17
i32 7, label %19
i32 8, label %21
i32 9, label %23
i32 200, label %25
i32 10, label %25
i32 12, label %27
i32 212, label %27
i32 13, label %29
i32 213, label %29
i32 14, label %31
i32 214, label %31
i32 20, label %33
i32 22, label %41
i32 222, label %41
i32 23, label %43
i32 223, label %43
i32 24, label %45
i32 224, label %45
i32 32, label %47
i32 232, label %47
i32 33, label %49
i32 233, label %49
i32 34, label %51
i32 234, label %51
i32 201, label %53
i32 204, label %55
i32 206, label %57
i32 207, label %59
i32 209, label %61
i32 210, label %63
i32 211, label %71
i32 215, label %73
i32 216, label %75
i32 217, label %77
i32 220, label %79
i32 235, label %81
i32 236, label %91
i32 237, label %95
i32 238, label %97
i32 239, label %99
i32 240, label %101
i32 241, label %103
i32 242, label %105
i32 243, label %107
i32 244, label %109
i32 245, label %111
i32 246, label %113
i32 247, label %115
i32 248, label %117
i32 249, label %119
i32 251, label %121
i32 252, label %123
i32 253, label %125
i32 254, label %127
i32 100, label %129
i32 101, label %131
i32 102, label %135
i32 103, label %137
i32 104, label %139
i32 105, label %143
i32 106, label %145
i32 107, label %149
i32 108, label %153
i32 109, label %159
i32 110, label %161
i32 111, label %163
i32 112, label %165
i32 113, label %167
i32 114, label %173
i32 115, label %177
i32 116, label %179
i32 117, label %181
i32 119, label %190
i32 120, label %194
i32 121, label %200
i32 125, label %204
i32 126, label %206
i32 128, label %212
i32 141, label %220
i32 160, label %224
]
7: ; preds = %4
%8 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0))
br label %226
9: ; preds = %4
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.1, i64 0, i64 0))
br label %226
11: ; preds = %4
%12 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.2, i64 0, i64 0))
br label %226
13: ; preds = %4
%14 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.3, i64 0, i64 0))
br label %226
15: ; preds = %4
%16 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.4, i64 0, i64 0))
br label %226
17: ; preds = %4
%18 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.5, i64 0, i64 0))
br label %226
19: ; preds = %4
%20 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.6, i64 0, i64 0))
br label %226
21: ; preds = %4
%22 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.7, i64 0, i64 0))
br label %226
23: ; preds = %4
%24 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.8, i64 0, i64 0))
br label %226
25: ; preds = %4, %4
%26 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([10 x i8], [10 x i8]* @.str.9, i64 0, i64 0))
br label %226
27: ; preds = %4, %4
%28 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.10, i64 0, i64 0))
br label %226
29: ; preds = %4, %4
%30 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.11, i64 0, i64 0))
br label %226
31: ; preds = %4, %4
%32 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
br label %226
33: ; preds = %4
%34 = icmp eq i32 %3, 2
%35 = sitofp i32 %1 to double
%36 = fdiv double %35, 1.000000e+02
br i1 %34, label %37, label %39
37: ; preds = %33
%38 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0), double %36)
br label %226
39: ; preds = %33
%40 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.14, i64 0, i64 0), double %36)
br label %226
41: ; preds = %4, %4
%42 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
br label %226
43: ; preds = %4, %4
%44 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.16, i64 0, i64 0))
br label %226
45: ; preds = %4, %4
%46 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.17, i64 0, i64 0))
br label %226
47: ; preds = %4, %4
%48 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.18, i64 0, i64 0))
br label %226
49: ; preds = %4, %4
%50 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.19, i64 0, i64 0))
br label %226
51: ; preds = %4, %4
%52 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.20, i64 0, i64 0))
br label %226
53: ; preds = %4
%54 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.21, i64 0, i64 0))
br label %226
55: ; preds = %4
%56 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.22, i64 0, i64 0))
br label %226
57: ; preds = %4
%58 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.23, i64 0, i64 0))
br label %226
59: ; preds = %4
%60 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.24, i64 0, i64 0))
br label %226
61: ; preds = %4
%62 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.25, i64 0, i64 0))
br label %226
63: ; preds = %4
%64 = icmp eq i32 %2, 7
br i1 %64, label %65, label %67
65: ; preds = %63
%66 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.26, i64 0, i64 0))
br label %226
67: ; preds = %63
%68 = sitofp i32 %1 to double
%69 = fmul double %68, 1.000000e-02
%70 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0), double %69)
br label %226
71: ; preds = %4
%72 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.28, i64 0, i64 0))
br label %226
73: ; preds = %4
%74 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.29, i64 0, i64 0))
br label %226
75: ; preds = %4
%76 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.30, i64 0, i64 0))
br label %226
77: ; preds = %4
%78 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.31, i64 0, i64 0))
br label %226
79: ; preds = %4
%80 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @.str.32, i64 0, i64 0))
br label %226
81: ; preds = %4
%82 = srem i32 %1, 10
%83 = sdiv i32 %1, 10
%84 = icmp eq i32 %82, 0
br i1 %84, label %85, label %87
85: ; preds = %81
%86 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.33, i64 0, i64 0), i32 %83)
br label %226
87: ; preds = %81
%88 = sitofp i32 %1 to double
%89 = fdiv double %88, 1.000000e+01
%90 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.34, i64 0, i64 0), double %89)
br label %226
91: ; preds = %4
%92 = mul nsw i32 %5, 10
%93 = mul nsw i32 %6, 10
%94 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.35, i64 0, i64 0), i32 %92, i32 %93)
br label %226
95: ; preds = %4
%96 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @.str.36, i64 0, i64 0))
br label %226
97: ; preds = %4
%98 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.37, i64 0, i64 0))
br label %226
99: ; preds = %4
%100 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([20 x i8], [20 x i8]* @.str.38, i64 0, i64 0))
br label %226
101: ; preds = %4
%102 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.39, i64 0, i64 0))
br label %226
103: ; preds = %4
%104 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @.str.40, i64 0, i64 0))
br label %226
105: ; preds = %4
%106 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.41, i64 0, i64 0))
br label %226
107: ; preds = %4
%108 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.42, i64 0, i64 0))
br label %226
109: ; preds = %4
%110 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.43, i64 0, i64 0))
br label %226
111: ; preds = %4
%112 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @.str.44, i64 0, i64 0))
br label %226
113: ; preds = %4
%114 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.45, i64 0, i64 0))
br label %226
115: ; preds = %4
%116 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.46, i64 0, i64 0))
br label %226
117: ; preds = %4
%118 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.47, i64 0, i64 0))
br label %226
119: ; preds = %4
%120 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([24 x i8], [24 x i8]* @.str.48, i64 0, i64 0))
br label %226
121: ; preds = %4
%122 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.49, i64 0, i64 0))
br label %226
123: ; preds = %4
%124 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.50, i64 0, i64 0))
br label %226
125: ; preds = %4
%126 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @.str.51, i64 0, i64 0))
br label %226
127: ; preds = %4
%128 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([52 x i8], [52 x i8]* @.str.52, i64 0, i64 0))
br label %226
129: ; preds = %4
%130 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([6 x i8], [6 x i8]* @.str.53, i64 0, i64 0), i32 %1)
br label %226
131: ; preds = %4
%132 = mul nsw i32 %5, 10
%133 = mul nsw i32 %6, 10
%134 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %132, i32 %133)
br label %226
135: ; preds = %4
%136 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
br label %226
137: ; preds = %4
%138 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.56, i64 0, i64 0), i32 %1)
br label %226
139: ; preds = %4
%140 = mul nsw i32 %5, 100
%141 = mul nsw i32 %6, 100
%142 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.57, i64 0, i64 0), i32 %140, i32 %141)
br label %226
143: ; preds = %4
%144 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([15 x i8], [15 x i8]* @.str.58, i64 0, i64 0), i32 %1)
br label %226
145: ; preds = %4
%146 = mul nsw i32 %5, 100
%147 = mul nsw i32 %6, 100
%148 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.59, i64 0, i64 0), i32 %146, i32 %147)
br label %226
149: ; preds = %4
%150 = sitofp i32 %1 to double
%151 = fdiv double %150, 1.000000e+04
%152 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.60, i64 0, i64 0), double %151)
br label %226
153: ; preds = %4
%154 = sitofp i32 %5 to double
%155 = fdiv double %154, 1.000000e+02
%156 = sitofp i32 %6 to double
%157 = fdiv double %156, 1.000000e+02
%158 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.61, i64 0, i64 0), double %155, double %157)
br label %226
159: ; preds = %4
%160 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.62, i64 0, i64 0), i32 %1)
br label %226
161: ; preds = %4
%162 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.63, i64 0, i64 0), i32 %5, i32 %6)
br label %226
163: ; preds = %4
%164 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([11 x i8], [11 x i8]* @.str.64, i64 0, i64 0), i32 %1)
br label %226
165: ; preds = %4
%166 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([14 x i8], [14 x i8]* @.str.65, i64 0, i64 0), i32 %5, i32 %6)
br label %226
167: ; preds = %4
%168 = icmp eq i32 %3, 2
br i1 %168, label %169, label %171
169: ; preds = %167
%170 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @.str.66, i64 0, i64 0), i32 %1)
br label %226
171: ; preds = %167
%172 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.67, i64 0, i64 0), i32 %1)
br label %226
173: ; preds = %4
%174 = sub nsw i32 475, %5
%175 = sub nsw i32 475, %6
%176 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([7 x i8], [7 x i8]* @.str.68, i64 0, i64 0), i32 %174, i32 %175)
br label %226
177: ; preds = %4
%178 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.69, i64 0, i64 0), i32 %1)
br label %226
179: ; preds = %4
%180 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([19 x i8], [19 x i8]* @.str.70, i64 0, i64 0), i32 %5, i32 %6)
br label %226
181: ; preds = %4
%182 = lshr i32 %5, 6
%183 = and i32 %182, 2
%184 = sub nsw i32 1, %183
%185 = shl nsw i32 %5, 8
%186 = and i32 %185, 32512
%187 = add nsw i32 %186, %6
%188 = mul nsw i32 %184, %187
%189 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([12 x i8], [12 x i8]* @.str.71, i64 0, i64 0), i32 %188)
br label %226
190: ; preds = %4
%191 = sitofp i32 %1 to double
%192 = fdiv double %191, 1.000000e+04
%193 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @.str.72, i64 0, i64 0), double %192)
br label %226
194: ; preds = %4
%195 = sitofp i32 %5 to double
%196 = fdiv double %195, 1.000000e+02
%197 = sitofp i32 %6 to double
%198 = fdiv double %197, 1.000000e+02
%199 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([23 x i8], [23 x i8]* @.str.73, i64 0, i64 0), double %196, double %198)
br label %226
200: ; preds = %4
%201 = sub nsw i32 1100, %5
%202 = sub nsw i32 1100, %6
%203 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %201, i32 %202)
br label %226
204: ; preds = %4
%205 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @.str.74, i64 0, i64 0), i32 %1)
br label %226
206: ; preds = %4
%207 = icmp eq i32 %2, 7
br i1 %207, label %208, label %226
208: ; preds = %206
%209 = sitofp i32 %1 to double
%210 = fmul double %209, 1.000000e-02
%211 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @.str.27, i64 0, i64 0), double %210)
br label %226
212: ; preds = %4
%213 = sitofp i32 %5 to double
%214 = fdiv double %213, 1.000000e+03
%215 = fsub double 1.100000e+00, %214
%216 = sitofp i32 %6 to double
%217 = fdiv double %216, 1.000000e+03
%218 = fsub double 1.100000e+00, %217
%219 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @.str.75, i64 0, i64 0), double %215, double %218)
br label %226
220: ; preds = %4
%221 = mul nsw i32 %5, 10
%222 = sub nsw i32 1100, %6
%223 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 %221, i32 %222)
br label %226
224: ; preds = %4
%225 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @.str.76, i64 0, i64 0), i32 %1)
br label %226
226: ; preds = %4, %206, %208, %169, %171, %85, %87, %65, %67, %37, %39, %224, %220, %212, %204, %200, %194, %190, %181, %179, %177, %173, %165, %163, %161, %159, %153, %149, %145, %143, %139, %137, %135, %131, %129, %127, %125, %123, %121, %119, %117, %115, %113, %111, %109, %107, %105, %103, %101, %99, %97, %95, %91, %79, %77, %75, %73, %71, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %31, %29, %27, %25, %23, %21, %19, %17, %15, %13, %11, %9, %7
ret void
}