int PennPOS(char *tag) {
  if ((((tag)[0] == ("CC")[0]) && (strcmp((tag), ("CC")) == 0)))
    return ('K');
  else if ((((tag)[0] == ("CD")[0]) && (strcmp((tag), ("CD")) == 0)))
    return ('?');
  else if ((((tag)[0] == ("DT")[0]) && (strcmp((tag), ("DT")) == 0)))
    return ('D');
  else if ((((tag)[0] == ("EX")[0]) && (strcmp((tag), ("EX")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("FW")[0]) && (strcmp((tag), ("FW")) == 0)))
    return ('?');
  else if ((((tag)[0] == ("IN")[0]) && (strcmp((tag), ("IN")) == 0)))
    return ('?');
  else if ((((tag)[0] == ("JJ")[0]) && (strcmp((tag), ("JJ")) == 0)))
    return ('A');
  else if ((((tag)[0] == ("JJR")[0]) && (strcmp((tag), ("JJR")) == 0)))
    return ('A');
  else if ((((tag)[0] == ("JJS")[0]) && (strcmp((tag), ("JJS")) == 0)))
    return ('A');
  else if ((((tag)[0] == ("LS")[0]) && (strcmp((tag), ("LS")) == 0)))
    return ('?');
  else if ((((tag)[0] == ("MD")[0]) && (strcmp((tag), ("MD")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("NN")[0]) && (strcmp((tag), ("NN")) == 0)))
    return ('N');
  else if ((((tag)[0] == ("NNS")[0]) && (strcmp((tag), ("NNS")) == 0)))
    return ('N');
  else if ((((tag)[0] == ("NNP")[0]) && (strcmp((tag), ("NNP")) == 0)))
    return ('N');
  else if ((((tag)[0] == ("NNPS")[0]) && (strcmp((tag), ("NNPS")) == 0)))
    return ('N');
  else if ((((tag)[0] == ("PDT")[0]) && (strcmp((tag), ("PDT")) == 0)))
    return ('D');
  else if ((((tag)[0] == ("POS")[0]) && (strcmp((tag), ("POS")) == 0)))
    return ('9');
  else if ((((tag)[0] == ("PP")[0]) && (strcmp((tag), ("PP")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("PRP")[0]) && (strcmp((tag), ("PRP")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("PP$")[0]) && (strcmp((tag), ("PP$")) == 0)))
    return ('D');
  else if ((((tag)[0] == ("PRP$")[0]) && (strcmp((tag), ("PRP$")) == 0)))
    return ('D');
  else if ((((tag)[0] == ("RB")[0]) && (strcmp((tag), ("RB")) == 0)))
    return ('B');
  else if ((((tag)[0] == ("RBR")[0]) && (strcmp((tag), ("RBR")) == 0)))
    return ('B');
  else if ((((tag)[0] == ("RBS")[0]) && (strcmp((tag), ("RBS")) == 0)))
    return ('B');
  else if ((((tag)[0] == ("RP")[0]) && (strcmp((tag), ("RP")) == 0)))
    return ('R');
  else if ((((tag)[0] == ("SYM")[0]) && (strcmp((tag), ("SYM")) == 0)))
    return ('?');
  else if ((((tag)[0] == ("TO")[0]) && (strcmp((tag), ("TO")) == 0)))
    return ('R');
  else if ((((tag)[0] == ("UH")[0]) && (strcmp((tag), ("UH")) == 0)))
    return ('U');
  else if ((((tag)[0] == ("VB")[0]) && (strcmp((tag), ("VB")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("VBD")[0]) && (strcmp((tag), ("VBD")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("VBG")[0]) && (strcmp((tag), ("VBG")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("VBN")[0]) && (strcmp((tag), ("VBN")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("VBP")[0]) && (strcmp((tag), ("VBP")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("VBZ")[0]) && (strcmp((tag), ("VBZ")) == 0)))
    return ('V');
  else if ((((tag)[0] == ("WDT")[0]) && (strcmp((tag), ("WDT")) == 0)))
    return ('D');
  else if ((((tag)[0] == ("WP")[0]) && (strcmp((tag), ("WP")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("WPZ")[0]) && (strcmp((tag), ("WPZ")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("WP$")[0]) && (strcmp((tag), ("WP$")) == 0)))
    return ('H');
  else if ((((tag)[0] == ("WRB")[0]) && (strcmp((tag), ("WRB")) == 0)))
    return ('B');
  else if ((((tag)[0] == (":")[0]) && (strcmp((tag), (":")) == 0)))
    return ('?');
  else if ((((tag)[0] == (".")[0]) && (strcmp((tag), (".")) == 0)))
    return ('?');
  else {
    Dbg(0x80, 1, "unknown Penn Treebank tag <%s>", tag);
    return ('?');
  }
}


x86 assembly (clang, -O0):
<PennPOS>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x10(%rbp)
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xec6(%rip),%ecx
cmp    %ecx,%eax
jne    1167 <PennPOS+0x47>
mov    -0x10(%rbp),%rdi
lea    0xeb3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1167 <PennPOS+0x47>
movl   $0x4b,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xe8e(%rip),%ecx
cmp    %ecx,%eax
jne    11a2 <PennPOS+0x82>
mov    -0x10(%rbp),%rdi
lea    0xe7b(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    11a2 <PennPOS+0x82>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xe81(%rip),%ecx
cmp    %ecx,%eax
jne    11dd <PennPOS+0xbd>
mov    -0x10(%rbp),%rdi
lea    0xe6e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    11dd <PennPOS+0xbd>
movl   $0x44,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xe1b(%rip),%ecx
cmp    %ecx,%eax
jne    1218 <PennPOS+0xf8>
mov    -0x10(%rbp),%rdi
lea    0xe08(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1218 <PennPOS+0xf8>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xde3(%rip),%ecx
cmp    %ecx,%eax
jne    1253 <PennPOS+0x133>
mov    -0x10(%rbp),%rdi
lea    0xdd0(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1253 <PennPOS+0x133>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xdab(%rip),%ecx
cmp    %ecx,%eax
jne    128e <PennPOS+0x16e>
mov    -0x10(%rbp),%rdi
lea    0xd98(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    128e <PennPOS+0x16e>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xd73(%rip),%ecx
cmp    %ecx,%eax
jne    12c9 <PennPOS+0x1a9>
mov    -0x10(%rbp),%rdi
lea    0xd60(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    12c9 <PennPOS+0x1a9>
movl   $0x41,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xd3b(%rip),%ecx
cmp    %ecx,%eax
jne    1304 <PennPOS+0x1e4>
mov    -0x10(%rbp),%rdi
lea    0xd28(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1304 <PennPOS+0x1e4>
movl   $0x41,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xd04(%rip),%ecx
cmp    %ecx,%eax
jne    133f <PennPOS+0x21f>
mov    -0x10(%rbp),%rdi
lea    0xcf1(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    133f <PennPOS+0x21f>
movl   $0x41,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xccd(%rip),%ecx
cmp    %ecx,%eax
jne    137a <PennPOS+0x25a>
mov    -0x10(%rbp),%rdi
lea    0xcba(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    137a <PennPOS+0x25a>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xc95(%rip),%ecx
cmp    %ecx,%eax
jne    13b5 <PennPOS+0x295>
mov    -0x10(%rbp),%rdi
lea    0xc82(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    13b5 <PennPOS+0x295>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xc5d(%rip),%ecx
cmp    %ecx,%eax
jne    13f0 <PennPOS+0x2d0>
mov    -0x10(%rbp),%rdi
lea    0xc4a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    13f0 <PennPOS+0x2d0>
movl   $0x4e,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xc25(%rip),%ecx
cmp    %ecx,%eax
jne    142b <PennPOS+0x30b>
mov    -0x10(%rbp),%rdi
lea    0xc12(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    142b <PennPOS+0x30b>
movl   $0x4e,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xbee(%rip),%ecx
cmp    %ecx,%eax
jne    1466 <PennPOS+0x346>
mov    -0x10(%rbp),%rdi
lea    0xbdb(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1466 <PennPOS+0x346>
movl   $0x4e,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xbb7(%rip),%ecx
cmp    %ecx,%eax
jne    14a1 <PennPOS+0x381>
mov    -0x10(%rbp),%rdi
lea    0xba4(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    14a1 <PennPOS+0x381>
movl   $0x4e,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xb81(%rip),%ecx
cmp    %ecx,%eax
jne    14dc <PennPOS+0x3bc>
mov    -0x10(%rbp),%rdi
lea    0xb6e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    14dc <PennPOS+0x3bc>
movl   $0x44,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xb4a(%rip),%ecx
cmp    %ecx,%eax
jne    1517 <PennPOS+0x3f7>
mov    -0x10(%rbp),%rdi
lea    0xb37(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1517 <PennPOS+0x3f7>
movl   $0x39,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xb13(%rip),%ecx
cmp    %ecx,%eax
jne    1552 <PennPOS+0x432>
mov    -0x10(%rbp),%rdi
lea    0xb00(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1552 <PennPOS+0x432>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xadb(%rip),%ecx
cmp    %ecx,%eax
jne    158d <PennPOS+0x46d>
mov    -0x10(%rbp),%rdi
lea    0xac8(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    158d <PennPOS+0x46d>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xaa4(%rip),%ecx
cmp    %ecx,%eax
jne    15c8 <PennPOS+0x4a8>
mov    -0x10(%rbp),%rdi
lea    0xa91(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    15c8 <PennPOS+0x4a8>
movl   $0x44,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xa6d(%rip),%ecx
cmp    %ecx,%eax
jne    1603 <PennPOS+0x4e3>
mov    -0x10(%rbp),%rdi
lea    0xa5a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1603 <PennPOS+0x4e3>
movl   $0x44,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0xa70(%rip),%ecx
cmp    %ecx,%eax
jne    163e <PennPOS+0x51e>
mov    -0x10(%rbp),%rdi
lea    0xa5d(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    163e <PennPOS+0x51e>
movl   $0x42,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x9fc(%rip),%ecx
cmp    %ecx,%eax
jne    1679 <PennPOS+0x559>
mov    -0x10(%rbp),%rdi
lea    0x9e9(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1679 <PennPOS+0x559>
movl   $0x42,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x9c5(%rip),%ecx
cmp    %ecx,%eax
jne    16b4 <PennPOS+0x594>
mov    -0x10(%rbp),%rdi
lea    0x9b2(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    16b4 <PennPOS+0x594>
movl   $0x42,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x97a(%rip),%ecx
cmp    %ecx,%eax
jne    16ef <PennPOS+0x5cf>
mov    -0x10(%rbp),%rdi
lea    0x967(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    16ef <PennPOS+0x5cf>
movl   $0x52,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x953(%rip),%ecx
cmp    %ecx,%eax
jne    172a <PennPOS+0x60a>
mov    -0x10(%rbp),%rdi
lea    0x940(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    172a <PennPOS+0x60a>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x91c(%rip),%ecx
cmp    %ecx,%eax
jne    1765 <PennPOS+0x645>
mov    -0x10(%rbp),%rdi
lea    0x909(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1765 <PennPOS+0x645>
movl   $0x52,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x8e4(%rip),%ecx
cmp    %ecx,%eax
jne    17a0 <PennPOS+0x680>
mov    -0x10(%rbp),%rdi
lea    0x8d1(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    17a0 <PennPOS+0x680>
movl   $0x55,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x8ac(%rip),%ecx
cmp    %ecx,%eax
jne    17db <PennPOS+0x6bb>
mov    -0x10(%rbp),%rdi
lea    0x899(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    17db <PennPOS+0x6bb>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x874(%rip),%ecx
cmp    %ecx,%eax
jne    1816 <PennPOS+0x6f6>
mov    -0x10(%rbp),%rdi
lea    0x861(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1816 <PennPOS+0x6f6>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x83d(%rip),%ecx
cmp    %ecx,%eax
jne    1851 <PennPOS+0x731>
mov    -0x10(%rbp),%rdi
lea    0x82a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1851 <PennPOS+0x731>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x806(%rip),%ecx
cmp    %ecx,%eax
jne    188c <PennPOS+0x76c>
mov    -0x10(%rbp),%rdi
lea    0x7f3(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    188c <PennPOS+0x76c>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x7cf(%rip),%ecx
cmp    %ecx,%eax
jne    18c7 <PennPOS+0x7a7>
mov    -0x10(%rbp),%rdi
lea    0x7bc(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    18c7 <PennPOS+0x7a7>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x798(%rip),%ecx
cmp    %ecx,%eax
jne    1902 <PennPOS+0x7e2>
mov    -0x10(%rbp),%rdi
lea    0x785(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1902 <PennPOS+0x7e2>
movl   $0x56,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x761(%rip),%ecx
cmp    %ecx,%eax
jne    193d <PennPOS+0x81d>
mov    -0x10(%rbp),%rdi
lea    0x74e(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    193d <PennPOS+0x81d>
movl   $0x44,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x72a(%rip),%ecx
cmp    %ecx,%eax
jne    1978 <PennPOS+0x858>
mov    -0x10(%rbp),%rdi
lea    0x717(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1978 <PennPOS+0x858>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x6f2(%rip),%ecx
cmp    %ecx,%eax
jne    19b3 <PennPOS+0x893>
mov    -0x10(%rbp),%rdi
lea    0x6df(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    19b3 <PennPOS+0x893>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x6bb(%rip),%ecx
cmp    %ecx,%eax
jne    19ee <PennPOS+0x8ce>
mov    -0x10(%rbp),%rdi
lea    0x6a8(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    19ee <PennPOS+0x8ce>
movl   $0x48,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x684(%rip),%ecx
cmp    %ecx,%eax
jne    1a29 <PennPOS+0x909>
mov    -0x10(%rbp),%rdi
lea    0x671(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1a29 <PennPOS+0x909>
movl   $0x42,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x64d(%rip),%ecx
cmp    %ecx,%eax
jne    1a64 <PennPOS+0x944>
mov    -0x10(%rbp),%rdi
lea    0x63a(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1a64 <PennPOS+0x944>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
movsbl 0x614(%rip),%ecx
cmp    %ecx,%eax
jne    1a9f <PennPOS+0x97f>
mov    -0x10(%rbp),%rdi
lea    0x601(%rip),%rsi
call   1040 <strcmp@plt>
cmp    $0x0,%eax
jne    1a9f <PennPOS+0x97f>
movl   $0x3f,-0x4(%rbp)
jmp    1ac2 <PennPOS+0x9a2>
mov    -0x10(%rbp),%rcx
mov    $0x80,%edi
mov    $0x1,%esi
lea    0x5d4(%rip),%rdx
mov    $0x0,%al
call   1030 <Dbg@plt>
movl   $0x3f,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<PennPOS>:
push   %rbp
push   %rbx
push   %rax
mov    %rdi,%rbx
mov    (%rdi),%al
add    $0xd2,%al
cmp    $0x29,%al
ja     1382 <PennPOS+0x262>
movzbl %al,%eax
lea    0xec4(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
lea    0xfe2(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xfd4(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xf44(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     14ef <PennPOS+0x3cf>
lea    0xf30(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xf52(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
jmp    14e5 <PennPOS+0x3c5>
lea    0xf0b(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
mov    $0x48,%ebp
jmp    13a2 <PennPOS+0x282>
lea    0xeed(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xee4(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xedb(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x41,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xec2(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xeaf(%rip),%rsi
jmp    1452 <PennPOS+0x332>
lea    0xea7(%rip),%rsi
jmp    1376 <PennPOS+0x256>
lea    0xe9e(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
mov    $0x56,%ebp
jmp    13a2 <PennPOS+0x282>
lea    0xe80(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x4e,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xe67(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xe54(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xe41(%rip),%rsi
jmp    1452 <PennPOS+0x332>
lea    0xe3a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     14e5 <PennPOS+0x3c5>
lea    0xe27(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     14f9 <PennPOS+0x3d9>
lea    0xe14(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x48,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xdfb(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xde8(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     14e5 <PennPOS+0x3c5>
lea    0xdd5(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x44,%ebp
jmp    145a <PennPOS+0x33a>
lea    0xdfa(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x42,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xda9(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xd9a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xd77(%rip),%rsi
jmp    13b2 <PennPOS+0x292>
lea    0xd82(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     139d <PennPOS+0x27d>
lea    0xda7(%rip),%rdx
mov    $0x80,%edi
mov    $0x1,%esi
mov    %rbx,%rcx
xor    %eax,%eax
call   1030 <Dbg@plt>
mov    $0x3f,%ebp
mov    %ebp,%eax
add    $0x8,%rsp
pop    %rbx
pop    %rbp
ret
lea    0xd4a(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
mov    $0x52,%ebp
jmp    13a2 <PennPOS+0x282>
lea    0xd33(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
mov    $0x55,%ebp
jmp    13a2 <PennPOS+0x282>
lea    0xd1c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x56,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xd07(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xcf8(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xce9(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xcd6(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xcc3(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
jmp    13a2 <PennPOS+0x282>
lea    0xcab(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     14e5 <PennPOS+0x3c5>
lea    0xc9c(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
mov    $0x48,%ebp
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xc83(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xc70(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
je     13a2 <PennPOS+0x282>
lea    0xc5d(%rip),%rsi
mov    %rbx,%rdi
call   1040 <strcmp@plt>
test   %eax,%eax
jne    1382 <PennPOS+0x262>
mov    $0x42,%ebp
jmp    13a2 <PennPOS+0x282>
mov    $0x44,%ebp
jmp    13a2 <PennPOS+0x282>
mov    $0x4b,%ebp
jmp    13a2 <PennPOS+0x282>
mov    $0x39,%ebp
jmp    13a2 <PennPOS+0x282>

LLVM IR (-O0):
@.str = [3 x i8] c"CC\00"
@.str.1 = [3 x i8] c"CD\00"
@.str.2 = [3 x i8] c"DT\00"
@.str.3 = [3 x i8] c"EX\00"
@.str.4 = [3 x i8] c"FW\00"
@.str.5 = [3 x i8] c"IN\00"
@.str.6 = [3 x i8] c"JJ\00"
@.str.7 = [4 x i8] c"JJR\00"
@.str.8 = [4 x i8] c"JJS\00"
@.str.9 = [3 x i8] c"LS\00"
@.str.10 = [3 x i8] c"MD\00"
@.str.11 = [3 x i8] c"NN\00"
@.str.12 = [4 x i8] c"NNS\00"
@.str.13 = [4 x i8] c"NNP\00"
@.str.14 = [5 x i8] c"NNPS\00"
@.str.15 = [4 x i8] c"PDT\00"
@.str.16 = [4 x i8] c"POS\00"
@.str.17 = [3 x i8] c"PP\00"
@.str.18 = [4 x i8] c"PRP\00"
@.str.19 = [4 x i8] c"PP$\00"
@.str.20 = [5 x i8] c"PRP$\00"
@.str.21 = [3 x i8] c"RB\00"
@.str.22 = [4 x i8] c"RBR\00"
@.str.23 = [4 x i8] c"RBS\00"
@.str.24 = [3 x i8] c"RP\00"
@.str.25 = [4 x i8] c"SYM\00"
@.str.26 = [3 x i8] c"TO\00"
@.str.27 = [3 x i8] c"UH\00"
@.str.28 = [3 x i8] c"VB\00"
@.str.29 = [4 x i8] c"VBD\00"
@.str.30 = [4 x i8] c"VBG\00"
@.str.31 = [4 x i8] c"VBN\00"
@.str.32 = [4 x i8] c"VBP\00"
@.str.33 = [4 x i8] c"VBZ\00"
@.str.34 = [4 x i8] c"WDT\00"
@.str.35 = [3 x i8] c"WP\00"
@.str.36 = [4 x i8] c"WPZ\00"
@.str.37 = [4 x i8] c"WP$\00"
@.str.38 = [4 x i8] c"WRB\00"
@.str.39 = [2 x i8] c":\00"
@.str.40 = [2 x i8] c".\00"
@.str.41 = [31 x i8] c"unknown Penn Treebank tag <%s>\00"
define i32 @PennPOS(i8* %0) {
%2 = alloca i32
%3 = alloca i8*
store i8* %0, i8** %3
%4 = load i8*, i8** %3
%5 = getelementptr inbounds i8, i8* %4, i64 0
%6 = load i8, i8* %5
%7 = sext i8 %6 to i32
%8 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0)
%9 = sext i8 %8 to i32
%10 = icmp eq i32 %7, %9
br i1 %10, label %11, label %16
11: ; preds = %1
%12 = load i8*, i8** %3
%13 = call i32 @strcmp(i8* %12, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %15, label %16
15: ; preds = %11
store i32 75, i32* %2
br label %539
16: ; preds = %11, %1
%17 = load i8*, i8** %3
%18 = getelementptr inbounds i8, i8* %17, i64 0
%19 = load i8, i8* %18
%20 = sext i8 %19 to i32
%21 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0)
%22 = sext i8 %21 to i32
%23 = icmp eq i32 %20, %22
br i1 %23, label %24, label %29
24: ; preds = %16
%25 = load i8*, i8** %3
%26 = call i32 @strcmp(i8* %25, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
%27 = icmp eq i32 %26, 0
br i1 %27, label %28, label %29
28: ; preds = %24
store i32 63, i32* %2
br label %539
29: ; preds = %24, %16
%30 = load i8*, i8** %3
%31 = getelementptr inbounds i8, i8* %30, i64 0
%32 = load i8, i8* %31
%33 = sext i8 %32 to i32
%34 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0)
%35 = sext i8 %34 to i32
%36 = icmp eq i32 %33, %35
br i1 %36, label %37, label %42
37: ; preds = %29
%38 = load i8*, i8** %3
%39 = call i32 @strcmp(i8* %38, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%40 = icmp eq i32 %39, 0
br i1 %40, label %41, label %42
41: ; preds = %37
store i32 68, i32* %2
br label %539
42: ; preds = %37, %29
%43 = load i8*, i8** %3
%44 = getelementptr inbounds i8, i8* %43, i64 0
%45 = load i8, i8* %44
%46 = sext i8 %45 to i32
%47 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0)
%48 = sext i8 %47 to i32
%49 = icmp eq i32 %46, %48
br i1 %49, label %50, label %55
50: ; preds = %42
%51 = load i8*, i8** %3
%52 = call i32 @strcmp(i8* %51, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%53 = icmp eq i32 %52, 0
br i1 %53, label %54, label %55
54: ; preds = %50
store i32 72, i32* %2
br label %539
55: ; preds = %50, %42
%56 = load i8*, i8** %3
%57 = getelementptr inbounds i8, i8* %56, i64 0
%58 = load i8, i8* %57
%59 = sext i8 %58 to i32
%60 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0)
%61 = sext i8 %60 to i32
%62 = icmp eq i32 %59, %61
br i1 %62, label %63, label %68
63: ; preds = %55
%64 = load i8*, i8** %3
%65 = call i32 @strcmp(i8* %64, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0))
%66 = icmp eq i32 %65, 0
br i1 %66, label %67, label %68
67: ; preds = %63
store i32 63, i32* %2
br label %539
68: ; preds = %63, %55
%69 = load i8*, i8** %3
%70 = getelementptr inbounds i8, i8* %69, i64 0
%71 = load i8, i8* %70
%72 = sext i8 %71 to i32
%73 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0)
%74 = sext i8 %73 to i32
%75 = icmp eq i32 %72, %74
br i1 %75, label %76, label %81
76: ; preds = %68
%77 = load i8*, i8** %3
%78 = call i32 @strcmp(i8* %77, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
%79 = icmp eq i32 %78, 0
br i1 %79, label %80, label %81
80: ; preds = %76
store i32 63, i32* %2
br label %539
81: ; preds = %76, %68
%82 = load i8*, i8** %3
%83 = getelementptr inbounds i8, i8* %82, i64 0
%84 = load i8, i8* %83
%85 = sext i8 %84 to i32
%86 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0)
%87 = sext i8 %86 to i32
%88 = icmp eq i32 %85, %87
br i1 %88, label %89, label %94
89: ; preds = %81
%90 = load i8*, i8** %3
%91 = call i32 @strcmp(i8* %90, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%92 = icmp eq i32 %91, 0
br i1 %92, label %93, label %94
93: ; preds = %89
store i32 65, i32* %2
br label %539
94: ; preds = %89, %81
%95 = load i8*, i8** %3
%96 = getelementptr inbounds i8, i8* %95, i64 0
%97 = load i8, i8* %96
%98 = sext i8 %97 to i32
%99 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0)
%100 = sext i8 %99 to i32
%101 = icmp eq i32 %98, %100
br i1 %101, label %102, label %107
102: ; preds = %94
%103 = load i8*, i8** %3
%104 = call i32 @strcmp(i8* %103, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%105 = icmp eq i32 %104, 0
br i1 %105, label %106, label %107
106: ; preds = %102
store i32 65, i32* %2
br label %539
107: ; preds = %102, %94
%108 = load i8*, i8** %3
%109 = getelementptr inbounds i8, i8* %108, i64 0
%110 = load i8, i8* %109
%111 = sext i8 %110 to i32
%112 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0)
%113 = sext i8 %112 to i32
%114 = icmp eq i32 %111, %113
br i1 %114, label %115, label %120
115: ; preds = %107
%116 = load i8*, i8** %3
%117 = call i32 @strcmp(i8* %116, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%118 = icmp eq i32 %117, 0
br i1 %118, label %119, label %120
119: ; preds = %115
store i32 65, i32* %2
br label %539
120: ; preds = %115, %107
%121 = load i8*, i8** %3
%122 = getelementptr inbounds i8, i8* %121, i64 0
%123 = load i8, i8* %122
%124 = sext i8 %123 to i32
%125 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0)
%126 = sext i8 %125 to i32
%127 = icmp eq i32 %124, %126
br i1 %127, label %128, label %133
128: ; preds = %120
%129 = load i8*, i8** %3
%130 = call i32 @strcmp(i8* %129, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%131 = icmp eq i32 %130, 0
br i1 %131, label %132, label %133
132: ; preds = %128
store i32 63, i32* %2
br label %539
133: ; preds = %128, %120
%134 = load i8*, i8** %3
%135 = getelementptr inbounds i8, i8* %134, i64 0
%136 = load i8, i8* %135
%137 = sext i8 %136 to i32
%138 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0)
%139 = sext i8 %138 to i32
%140 = icmp eq i32 %137, %139
br i1 %140, label %141, label %146
141: ; preds = %133
%142 = load i8*, i8** %3
%143 = call i32 @strcmp(i8* %142, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%144 = icmp eq i32 %143, 0
br i1 %144, label %145, label %146
145: ; preds = %141
store i32 86, i32* %2
br label %539
146: ; preds = %141, %133
%147 = load i8*, i8** %3
%148 = getelementptr inbounds i8, i8* %147, i64 0
%149 = load i8, i8* %148
%150 = sext i8 %149 to i32
%151 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0)
%152 = sext i8 %151 to i32
%153 = icmp eq i32 %150, %152
br i1 %153, label %154, label %159
154: ; preds = %146
%155 = load i8*, i8** %3
%156 = call i32 @strcmp(i8* %155, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%157 = icmp eq i32 %156, 0
br i1 %157, label %158, label %159
158: ; preds = %154
store i32 78, i32* %2
br label %539
159: ; preds = %154, %146
%160 = load i8*, i8** %3
%161 = getelementptr inbounds i8, i8* %160, i64 0
%162 = load i8, i8* %161
%163 = sext i8 %162 to i32
%164 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0)
%165 = sext i8 %164 to i32
%166 = icmp eq i32 %163, %165
br i1 %166, label %167, label %172
167: ; preds = %159
%168 = load i8*, i8** %3
%169 = call i32 @strcmp(i8* %168, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%170 = icmp eq i32 %169, 0
br i1 %170, label %171, label %172
171: ; preds = %167
store i32 78, i32* %2
br label %539
172: ; preds = %167, %159
%173 = load i8*, i8** %3
%174 = getelementptr inbounds i8, i8* %173, i64 0
%175 = load i8, i8* %174
%176 = sext i8 %175 to i32
%177 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0)
%178 = sext i8 %177 to i32
%179 = icmp eq i32 %176, %178
br i1 %179, label %180, label %185
180: ; preds = %172
%181 = load i8*, i8** %3
%182 = call i32 @strcmp(i8* %181, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%183 = icmp eq i32 %182, 0
br i1 %183, label %184, label %185
184: ; preds = %180
store i32 78, i32* %2
br label %539
185: ; preds = %180, %172
%186 = load i8*, i8** %3
%187 = getelementptr inbounds i8, i8* %186, i64 0
%188 = load i8, i8* %187
%189 = sext i8 %188 to i32
%190 = load i8, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0)
%191 = sext i8 %190 to i32
%192 = icmp eq i32 %189, %191
br i1 %192, label %193, label %198
193: ; preds = %185
%194 = load i8*, i8** %3
%195 = call i32 @strcmp(i8* %194, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%196 = icmp eq i32 %195, 0
br i1 %196, label %197, label %198
197: ; preds = %193
store i32 78, i32* %2
br label %539
198: ; preds = %193, %185
%199 = load i8*, i8** %3
%200 = getelementptr inbounds i8, i8* %199, i64 0
%201 = load i8, i8* %200
%202 = sext i8 %201 to i32
%203 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0)
%204 = sext i8 %203 to i32
%205 = icmp eq i32 %202, %204
br i1 %205, label %206, label %211
206: ; preds = %198
%207 = load i8*, i8** %3
%208 = call i32 @strcmp(i8* %207, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%209 = icmp eq i32 %208, 0
br i1 %209, label %210, label %211
210: ; preds = %206
store i32 68, i32* %2
br label %539
211: ; preds = %206, %198
%212 = load i8*, i8** %3
%213 = getelementptr inbounds i8, i8* %212, i64 0
%214 = load i8, i8* %213
%215 = sext i8 %214 to i32
%216 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0)
%217 = sext i8 %216 to i32
%218 = icmp eq i32 %215, %217
br i1 %218, label %219, label %224
219: ; preds = %211
%220 = load i8*, i8** %3
%221 = call i32 @strcmp(i8* %220, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%222 = icmp eq i32 %221, 0
br i1 %222, label %223, label %224
223: ; preds = %219
store i32 57, i32* %2
br label %539
224: ; preds = %219, %211
%225 = load i8*, i8** %3
%226 = getelementptr inbounds i8, i8* %225, i64 0
%227 = load i8, i8* %226
%228 = sext i8 %227 to i32
%229 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i64 0, i64 0)
%230 = sext i8 %229 to i32
%231 = icmp eq i32 %228, %230
br i1 %231, label %232, label %237
232: ; preds = %224
%233 = load i8*, i8** %3
%234 = call i32 @strcmp(i8* %233, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i64 0, i64 0))
%235 = icmp eq i32 %234, 0
br i1 %235, label %236, label %237
236: ; preds = %232
store i32 72, i32* %2
br label %539
237: ; preds = %232, %224
%238 = load i8*, i8** %3
%239 = getelementptr inbounds i8, i8* %238, i64 0
%240 = load i8, i8* %239
%241 = sext i8 %240 to i32
%242 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0)
%243 = sext i8 %242 to i32
%244 = icmp eq i32 %241, %243
br i1 %244, label %245, label %250
245: ; preds = %237
%246 = load i8*, i8** %3
%247 = call i32 @strcmp(i8* %246, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%248 = icmp eq i32 %247, 0
br i1 %248, label %249, label %250
249: ; preds = %245
store i32 72, i32* %2
br label %539
250: ; preds = %245, %237
%251 = load i8*, i8** %3
%252 = getelementptr inbounds i8, i8* %251, i64 0
%253 = load i8, i8* %252
%254 = sext i8 %253 to i32
%255 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0)
%256 = sext i8 %255 to i32
%257 = icmp eq i32 %254, %256
br i1 %257, label %258, label %263
258: ; preds = %250
%259 = load i8*, i8** %3
%260 = call i32 @strcmp(i8* %259, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%261 = icmp eq i32 %260, 0
br i1 %261, label %262, label %263
262: ; preds = %258
store i32 68, i32* %2
br label %539
263: ; preds = %258, %250
%264 = load i8*, i8** %3
%265 = getelementptr inbounds i8, i8* %264, i64 0
%266 = load i8, i8* %265
%267 = sext i8 %266 to i32
%268 = load i8, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0)
%269 = sext i8 %268 to i32
%270 = icmp eq i32 %267, %269
br i1 %270, label %271, label %276
271: ; preds = %263
%272 = load i8*, i8** %3
%273 = call i32 @strcmp(i8* %272, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%274 = icmp eq i32 %273, 0
br i1 %274, label %275, label %276
275: ; preds = %271
store i32 68, i32* %2
br label %539
276: ; preds = %271, %263
%277 = load i8*, i8** %3
%278 = getelementptr inbounds i8, i8* %277, i64 0
%279 = load i8, i8* %278
%280 = sext i8 %279 to i32
%281 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i64 0, i64 0)
%282 = sext i8 %281 to i32
%283 = icmp eq i32 %280, %282
br i1 %283, label %284, label %289
284: ; preds = %276
%285 = load i8*, i8** %3
%286 = call i32 @strcmp(i8* %285, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i64 0, i64 0))
%287 = icmp eq i32 %286, 0
br i1 %287, label %288, label %289
288: ; preds = %284
store i32 66, i32* %2
br label %539
289: ; preds = %284, %276
%290 = load i8*, i8** %3
%291 = getelementptr inbounds i8, i8* %290, i64 0
%292 = load i8, i8* %291
%293 = sext i8 %292 to i32
%294 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0)
%295 = sext i8 %294 to i32
%296 = icmp eq i32 %293, %295
br i1 %296, label %297, label %302
297: ; preds = %289
%298 = load i8*, i8** %3
%299 = call i32 @strcmp(i8* %298, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%300 = icmp eq i32 %299, 0
br i1 %300, label %301, label %302
301: ; preds = %297
store i32 66, i32* %2
br label %539
302: ; preds = %297, %289
%303 = load i8*, i8** %3
%304 = getelementptr inbounds i8, i8* %303, i64 0
%305 = load i8, i8* %304
%306 = sext i8 %305 to i32
%307 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0)
%308 = sext i8 %307 to i32
%309 = icmp eq i32 %306, %308
br i1 %309, label %310, label %315
310: ; preds = %302
%311 = load i8*, i8** %3
%312 = call i32 @strcmp(i8* %311, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%313 = icmp eq i32 %312, 0
br i1 %313, label %314, label %315
314: ; preds = %310
store i32 66, i32* %2
br label %539
315: ; preds = %310, %302
%316 = load i8*, i8** %3
%317 = getelementptr inbounds i8, i8* %316, i64 0
%318 = load i8, i8* %317
%319 = sext i8 %318 to i32
%320 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0)
%321 = sext i8 %320 to i32
%322 = icmp eq i32 %319, %321
br i1 %322, label %323, label %328
323: ; preds = %315
%324 = load i8*, i8** %3
%325 = call i32 @strcmp(i8* %324, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
%326 = icmp eq i32 %325, 0
br i1 %326, label %327, label %328
327: ; preds = %323
store i32 82, i32* %2
br label %539
328: ; preds = %323, %315
%329 = load i8*, i8** %3
%330 = getelementptr inbounds i8, i8* %329, i64 0
%331 = load i8, i8* %330
%332 = sext i8 %331 to i32
%333 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0)
%334 = sext i8 %333 to i32
%335 = icmp eq i32 %332, %334
br i1 %335, label %336, label %341
336: ; preds = %328
%337 = load i8*, i8** %3
%338 = call i32 @strcmp(i8* %337, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%339 = icmp eq i32 %338, 0
br i1 %339, label %340, label %341
340: ; preds = %336
store i32 63, i32* %2
br label %539
341: ; preds = %336, %328
%342 = load i8*, i8** %3
%343 = getelementptr inbounds i8, i8* %342, i64 0
%344 = load i8, i8* %343
%345 = sext i8 %344 to i32
%346 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0)
%347 = sext i8 %346 to i32
%348 = icmp eq i32 %345, %347
br i1 %348, label %349, label %354
349: ; preds = %341
%350 = load i8*, i8** %3
%351 = call i32 @strcmp(i8* %350, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0))
%352 = icmp eq i32 %351, 0
br i1 %352, label %353, label %354
353: ; preds = %349
store i32 82, i32* %2
br label %539
354: ; preds = %349, %341
%355 = load i8*, i8** %3
%356 = getelementptr inbounds i8, i8* %355, i64 0
%357 = load i8, i8* %356
%358 = sext i8 %357 to i32
%359 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0)
%360 = sext i8 %359 to i32
%361 = icmp eq i32 %358, %360
br i1 %361, label %362, label %367
362: ; preds = %354
%363 = load i8*, i8** %3
%364 = call i32 @strcmp(i8* %363, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0))
%365 = icmp eq i32 %364, 0
br i1 %365, label %366, label %367
366: ; preds = %362
store i32 85, i32* %2
br label %539
367: ; preds = %362, %354
%368 = load i8*, i8** %3
%369 = getelementptr inbounds i8, i8* %368, i64 0
%370 = load i8, i8* %369
%371 = sext i8 %370 to i32
%372 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0)
%373 = sext i8 %372 to i32
%374 = icmp eq i32 %371, %373
br i1 %374, label %375, label %380
375: ; preds = %367
%376 = load i8*, i8** %3
%377 = call i32 @strcmp(i8* %376, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0))
%378 = icmp eq i32 %377, 0
br i1 %378, label %379, label %380
379: ; preds = %375
store i32 86, i32* %2
br label %539
380: ; preds = %375, %367
%381 = load i8*, i8** %3
%382 = getelementptr inbounds i8, i8* %381, i64 0
%383 = load i8, i8* %382
%384 = sext i8 %383 to i32
%385 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0)
%386 = sext i8 %385 to i32
%387 = icmp eq i32 %384, %386
br i1 %387, label %388, label %393
388: ; preds = %380
%389 = load i8*, i8** %3
%390 = call i32 @strcmp(i8* %389, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%391 = icmp eq i32 %390, 0
br i1 %391, label %392, label %393
392: ; preds = %388
store i32 86, i32* %2
br label %539
393: ; preds = %388, %380
%394 = load i8*, i8** %3
%395 = getelementptr inbounds i8, i8* %394, i64 0
%396 = load i8, i8* %395
%397 = sext i8 %396 to i32
%398 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0)
%399 = sext i8 %398 to i32
%400 = icmp eq i32 %397, %399
br i1 %400, label %401, label %406
401: ; preds = %393
%402 = load i8*, i8** %3
%403 = call i32 @strcmp(i8* %402, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%404 = icmp eq i32 %403, 0
br i1 %404, label %405, label %406
405: ; preds = %401
store i32 86, i32* %2
br label %539
406: ; preds = %401, %393
%407 = load i8*, i8** %3
%408 = getelementptr inbounds i8, i8* %407, i64 0
%409 = load i8, i8* %408
%410 = sext i8 %409 to i32
%411 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0)
%412 = sext i8 %411 to i32
%413 = icmp eq i32 %410, %412
br i1 %413, label %414, label %419
414: ; preds = %406
%415 = load i8*, i8** %3
%416 = call i32 @strcmp(i8* %415, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%417 = icmp eq i32 %416, 0
br i1 %417, label %418, label %419
418: ; preds = %414
store i32 86, i32* %2
br label %539
419: ; preds = %414, %406
%420 = load i8*, i8** %3
%421 = getelementptr inbounds i8, i8* %420, i64 0
%422 = load i8, i8* %421
%423 = sext i8 %422 to i32
%424 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0)
%425 = sext i8 %424 to i32
%426 = icmp eq i32 %423, %425
br i1 %426, label %427, label %432
427: ; preds = %419
%428 = load i8*, i8** %3
%429 = call i32 @strcmp(i8* %428, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%430 = icmp eq i32 %429, 0
br i1 %430, label %431, label %432
431: ; preds = %427
store i32 86, i32* %2
br label %539
432: ; preds = %427, %419
%433 = load i8*, i8** %3
%434 = getelementptr inbounds i8, i8* %433, i64 0
%435 = load i8, i8* %434
%436 = sext i8 %435 to i32
%437 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0)
%438 = sext i8 %437 to i32
%439 = icmp eq i32 %436, %438
br i1 %439, label %440, label %445
440: ; preds = %432
%441 = load i8*, i8** %3
%442 = call i32 @strcmp(i8* %441, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%443 = icmp eq i32 %442, 0
br i1 %443, label %444, label %445
444: ; preds = %440
store i32 86, i32* %2
br label %539
445: ; preds = %440, %432
%446 = load i8*, i8** %3
%447 = getelementptr inbounds i8, i8* %446, i64 0
%448 = load i8, i8* %447
%449 = sext i8 %448 to i32
%450 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0)
%451 = sext i8 %450 to i32
%452 = icmp eq i32 %449, %451
br i1 %452, label %453, label %458
453: ; preds = %445
%454 = load i8*, i8** %3
%455 = call i32 @strcmp(i8* %454, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%456 = icmp eq i32 %455, 0
br i1 %456, label %457, label %458
457: ; preds = %453
store i32 68, i32* %2
br label %539
458: ; preds = %453, %445
%459 = load i8*, i8** %3
%460 = getelementptr inbounds i8, i8* %459, i64 0
%461 = load i8, i8* %460
%462 = sext i8 %461 to i32
%463 = load i8, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.35, i64 0, i64 0)
%464 = sext i8 %463 to i32
%465 = icmp eq i32 %462, %464
br i1 %465, label %466, label %471
466: ; preds = %458
%467 = load i8*, i8** %3
%468 = call i32 @strcmp(i8* %467, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.35, i64 0, i64 0))
%469 = icmp eq i32 %468, 0
br i1 %469, label %470, label %471
470: ; preds = %466
store i32 72, i32* %2
br label %539
471: ; preds = %466, %458
%472 = load i8*, i8** %3
%473 = getelementptr inbounds i8, i8* %472, i64 0
%474 = load i8, i8* %473
%475 = sext i8 %474 to i32
%476 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0)
%477 = sext i8 %476 to i32
%478 = icmp eq i32 %475, %477
br i1 %478, label %479, label %484
479: ; preds = %471
%480 = load i8*, i8** %3
%481 = call i32 @strcmp(i8* %480, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%482 = icmp eq i32 %481, 0
br i1 %482, label %483, label %484
483: ; preds = %479
store i32 72, i32* %2
br label %539
484: ; preds = %479, %471
%485 = load i8*, i8** %3
%486 = getelementptr inbounds i8, i8* %485, i64 0
%487 = load i8, i8* %486
%488 = sext i8 %487 to i32
%489 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0)
%490 = sext i8 %489 to i32
%491 = icmp eq i32 %488, %490
br i1 %491, label %492, label %497
492: ; preds = %484
%493 = load i8*, i8** %3
%494 = call i32 @strcmp(i8* %493, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%495 = icmp eq i32 %494, 0
br i1 %495, label %496, label %497
496: ; preds = %492
store i32 72, i32* %2
br label %539
497: ; preds = %492, %484
%498 = load i8*, i8** %3
%499 = getelementptr inbounds i8, i8* %498, i64 0
%500 = load i8, i8* %499
%501 = sext i8 %500 to i32
%502 = load i8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0)
%503 = sext i8 %502 to i32
%504 = icmp eq i32 %501, %503
br i1 %504, label %505, label %510
505: ; preds = %497
%506 = load i8*, i8** %3
%507 = call i32 @strcmp(i8* %506, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%508 = icmp eq i32 %507, 0
br i1 %508, label %509, label %510
509: ; preds = %505
store i32 66, i32* %2
br label %539
510: ; preds = %505, %497
%511 = load i8*, i8** %3
%512 = getelementptr inbounds i8, i8* %511, i64 0
%513 = load i8, i8* %512
%514 = sext i8 %513 to i32
%515 = load i8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0)
%516 = sext i8 %515 to i32
%517 = icmp eq i32 %514, %516
br i1 %517, label %518, label %523
518: ; preds = %510
%519 = load i8*, i8** %3
%520 = call i32 @strcmp(i8* %519, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%521 = icmp eq i32 %520, 0
br i1 %521, label %522, label %523
522: ; preds = %518
store i32 63, i32* %2
br label %539
523: ; preds = %518, %510
%524 = load i8*, i8** %3
%525 = getelementptr inbounds i8, i8* %524, i64 0
%526 = load i8, i8* %525
%527 = sext i8 %526 to i32
%528 = load i8, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.40, i64 0, i64 0)
%529 = sext i8 %528 to i32
%530 = icmp eq i32 %527, %529
br i1 %530, label %531, label %536
531: ; preds = %523
%532 = load i8*, i8** %3
%533 = call i32 @strcmp(i8* %532, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.40, i64 0, i64 0))
%534 = icmp eq i32 %533, 0
br i1 %534, label %535, label %536
535: ; preds = %531
store i32 63, i32* %2
br label %539
536: ; preds = %531, %523
%537 = load i8*, i8** %3
%538 = call i32 (i32, i32, i8*, i8*, ...) bitcast (i32 (...)* @Dbg to i32 (i32, i32, i8*, i8*, ...)*)(i32 128, i32 1, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.41, i64 0, i64 0), i8* %537)
store i32 63, i32* %2
br label %539
539: ; preds = %536, %535, %522, %509, %496, %483, %470, %457, %444, %431, %418, %405, %392, %379, %366, %353, %340, %327, %314, %301, %288, %275, %262, %249, %236, %223, %210, %197, %184, %171, %158, %145, %132, %119, %106, %93, %80, %67, %54, %41, %28, %15
%540 = load i32, i32* %2
ret i32 %540
}

LLVM IR (-O2):
@.str = [3 x i8] c"CC\00"
@.str.1 = [3 x i8] c"CD\00"
@.str.2 = [3 x i8] c"DT\00"
@.str.3 = [3 x i8] c"EX\00"
@.str.4 = [3 x i8] c"FW\00"
@.str.5 = [3 x i8] c"IN\00"
@.str.6 = [3 x i8] c"JJ\00"
@.str.7 = [4 x i8] c"JJR\00"
@.str.8 = [4 x i8] c"JJS\00"
@.str.9 = [3 x i8] c"LS\00"
@.str.10 = [3 x i8] c"MD\00"
@.str.11 = [3 x i8] c"NN\00"
@.str.12 = [4 x i8] c"NNS\00"
@.str.13 = [4 x i8] c"NNP\00"
@.str.14 = [5 x i8] c"NNPS\00"
@.str.15 = [4 x i8] c"PDT\00"
@.str.16 = [4 x i8] c"POS\00"
@.str.17 = [3 x i8] c"PP\00"
@.str.18 = [4 x i8] c"PRP\00"
@.str.19 = [4 x i8] c"PP$\00"
@.str.20 = [5 x i8] c"PRP$\00"
@.str.21 = [3 x i8] c"RB\00"
@.str.22 = [4 x i8] c"RBR\00"
@.str.23 = [4 x i8] c"RBS\00"
@.str.24 = [3 x i8] c"RP\00"
@.str.25 = [4 x i8] c"SYM\00"
@.str.26 = [3 x i8] c"TO\00"
@.str.27 = [3 x i8] c"UH\00"
@.str.28 = [3 x i8] c"VB\00"
@.str.29 = [4 x i8] c"VBD\00"
@.str.30 = [4 x i8] c"VBG\00"
@.str.31 = [4 x i8] c"VBN\00"
@.str.32 = [4 x i8] c"VBP\00"
@.str.33 = [4 x i8] c"VBZ\00"
@.str.34 = [4 x i8] c"WDT\00"
@.str.35 = [3 x i8] c"WP\00"
@.str.36 = [4 x i8] c"WPZ\00"
@.str.37 = [4 x i8] c"WP$\00"
@.str.38 = [4 x i8] c"WRB\00"
@.str.39 = [2 x i8] c":\00"
@.str.40 = [2 x i8] c".\00"
@.str.41 = [31 x i8] c"unknown Penn Treebank tag <%s>\00"
define i32 @PennPOS(i8* %0) {
%2 = load i8, i8* %0
switch i8 %2, label %126 [
i8 67, label %3
i8 68, label %9
i8 69, label %12
i8 70, label %15
i8 73, label %18
i8 74, label %21
i8 76, label %30
i8 77, label %33
i8 78, label %36
i8 80, label %48
i8 82, label %66
i8 83, label %78
i8 84, label %81
i8 85, label %84
i8 86, label %87
i8 87, label %105
i8 58, label %120
i8 46, label %123
]
3: ; preds = %1
%4 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0))
%5 = icmp eq i32 %4, 0
br i1 %5, label %128, label %6
6: ; preds = %3
%7 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
%8 = icmp eq i32 %7, 0
br i1 %8, label %128, label %126
9: ; preds = %1
%10 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%11 = icmp eq i32 %10, 0
br i1 %11, label %128, label %126
12: ; preds = %1
%13 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%14 = icmp eq i32 %13, 0
br i1 %14, label %128, label %126
15: ; preds = %1
%16 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.4, i64 0, i64 0))
%17 = icmp eq i32 %16, 0
br i1 %17, label %128, label %126
18: ; preds = %1
%19 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
%20 = icmp eq i32 %19, 0
br i1 %20, label %128, label %126
21: ; preds = %1
%22 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.6, i64 0, i64 0))
%23 = icmp eq i32 %22, 0
br i1 %23, label %128, label %24
24: ; preds = %21
%25 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.7, i64 0, i64 0))
%26 = icmp eq i32 %25, 0
br i1 %26, label %128, label %27
27: ; preds = %24
%28 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.8, i64 0, i64 0))
%29 = icmp eq i32 %28, 0
br i1 %29, label %128, label %126
30: ; preds = %1
%31 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.9, i64 0, i64 0))
%32 = icmp eq i32 %31, 0
br i1 %32, label %128, label %126
33: ; preds = %1
%34 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%35 = icmp eq i32 %34, 0
br i1 %35, label %128, label %126
36: ; preds = %1
%37 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.11, i64 0, i64 0))
%38 = icmp eq i32 %37, 0
br i1 %38, label %128, label %39
39: ; preds = %36
%40 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.12, i64 0, i64 0))
%41 = icmp eq i32 %40, 0
br i1 %41, label %128, label %42
42: ; preds = %39
%43 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%44 = icmp eq i32 %43, 0
br i1 %44, label %128, label %45
45: ; preds = %42
%46 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0))
%47 = icmp eq i32 %46, 0
br i1 %47, label %128, label %126
48: ; preds = %1
%49 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%50 = icmp eq i32 %49, 0
br i1 %50, label %128, label %51
51: ; preds = %48
%52 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.16, i64 0, i64 0))
%53 = icmp eq i32 %52, 0
br i1 %53, label %128, label %54
54: ; preds = %51
%55 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.17, i64 0, i64 0))
%56 = icmp eq i32 %55, 0
br i1 %56, label %128, label %57
57: ; preds = %54
%58 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%59 = icmp eq i32 %58, 0
br i1 %59, label %128, label %60
60: ; preds = %57
%61 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.19, i64 0, i64 0))
%62 = icmp eq i32 %61, 0
br i1 %62, label %128, label %63
63: ; preds = %60
%64 = tail call i32 @strcmp(i8* dereferenceable(1) %0, i8* dereferenceable(5) getelementptr inbounds ([5 x i8], [5 x i8]* @.str.20, i64 0, i64 0))
%65 = icmp eq i32 %64, 0
br i1 %65, label %128, label %126
66: ; preds = %1
%67 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.21, i64 0, i64 0))
%68 = icmp eq i32 %67, 0
br i1 %68, label %128, label %69
69: ; preds = %66
%70 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.22, i64 0, i64 0))
%71 = icmp eq i32 %70, 0
br i1 %71, label %128, label %72
72: ; preds = %69
%73 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.23, i64 0, i64 0))
%74 = icmp eq i32 %73, 0
br i1 %74, label %128, label %75
75: ; preds = %72
%76 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.24, i64 0, i64 0))
%77 = icmp eq i32 %76, 0
br i1 %77, label %128, label %126
78: ; preds = %1
%79 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.25, i64 0, i64 0))
%80 = icmp eq i32 %79, 0
br i1 %80, label %128, label %126
81: ; preds = %1
%82 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.26, i64 0, i64 0))
%83 = icmp eq i32 %82, 0
br i1 %83, label %128, label %126
84: ; preds = %1
%85 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.27, i64 0, i64 0))
%86 = icmp eq i32 %85, 0
br i1 %86, label %128, label %126
87: ; preds = %1
%88 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.28, i64 0, i64 0))
%89 = icmp eq i32 %88, 0
br i1 %89, label %128, label %90
90: ; preds = %87
%91 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%92 = icmp eq i32 %91, 0
br i1 %92, label %128, label %93
93: ; preds = %90
%94 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.30, i64 0, i64 0))
%95 = icmp eq i32 %94, 0
br i1 %95, label %128, label %96
96: ; preds = %93
%97 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.31, i64 0, i64 0))
%98 = icmp eq i32 %97, 0
br i1 %98, label %128, label %99
99: ; preds = %96
%100 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.32, i64 0, i64 0))
%101 = icmp eq i32 %100, 0
br i1 %101, label %128, label %102
102: ; preds = %99
%103 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.33, i64 0, i64 0))
%104 = icmp eq i32 %103, 0
br i1 %104, label %128, label %126
105: ; preds = %1
%106 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.34, i64 0, i64 0))
%107 = icmp eq i32 %106, 0
br i1 %107, label %128, label %108
108: ; preds = %105
%109 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(3) getelementptr inbounds ([3 x i8], [3 x i8]* @.str.35, i64 0, i64 0))
%110 = icmp eq i32 %109, 0
br i1 %110, label %128, label %111
111: ; preds = %108
%112 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.36, i64 0, i64 0))
%113 = icmp eq i32 %112, 0
br i1 %113, label %128, label %114
114: ; preds = %111
%115 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.37, i64 0, i64 0))
%116 = icmp eq i32 %115, 0
br i1 %116, label %128, label %117
117: ; preds = %114
%118 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(4) getelementptr inbounds ([4 x i8], [4 x i8]* @.str.38, i64 0, i64 0))
%119 = icmp eq i32 %118, 0
br i1 %119, label %128, label %126
120: ; preds = %1
%121 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.39, i64 0, i64 0))
%122 = icmp eq i32 %121, 0
br i1 %122, label %128, label %126
123: ; preds = %1
%124 = tail call i32 @strcmp(i8* %0, i8* dereferenceable(2) getelementptr inbounds ([2 x i8], [2 x i8]* @.str.40, i64 0, i64 0))
%125 = icmp eq i32 %124, 0
br i1 %125, label %128, label %126
126: ; preds = %1, %6, %9, %12, %15, %18, %27, %30, %75, %45, %33, %63, %78, %81, %102, %84, %117, %120, %123
%127 = tail call i32 (i32, i32, i8*, i8*, ...) bitcast (i32 (...)* @Dbg to i32 (i32, i32, i8*, i8*, ...)*)(i32 128, i32 1, i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.41, i64 0, i64 0), i8* %0)
br label %128
128: ; preds = %123, %120, %117, %114, %111, %108, %105, %102, %99, %96, %93, %90, %87, %84, %81, %78, %75, %72, %69, %66, %63, %60, %57, %54, %51, %48, %45, %42, %39, %36, %33, %30, %27, %24, %21, %18, %15, %12, %9, %6, %3, %126
%129 = phi i32 [ 63, %126 ], [ 75, %3 ], [ 63, %6 ], [ 68, %9 ], [ 72, %12 ], [ 63, %15 ], [ 63, %18 ], [ 65, %21 ], [ 65, %24 ], [ 65, %27 ], [ 63, %30 ], [ 86, %33 ], [ 78, %36 ], [ 78, %39 ], [ 78, %42 ], [ 78, %45 ], [ 68, %48 ], [ 57, %51 ], [ 72, %54 ], [ 72, %57 ], [ 68, %60 ], [ 68, %63 ], [ 66, %66 ], [ 66, %69 ], [ 66, %72 ], [ 82, %75 ], [ 63, %78 ], [ 82, %81 ], [ 85, %84 ], [ 86, %87 ], [ 86, %90 ], [ 86, %93 ], [ 86, %96 ], [ 86, %99 ], [ 86, %102 ], [ 68, %105 ], [ 72, %108 ], [ 72, %111 ], [ 72, %114 ], [ 66, %117 ], [ 63, %120 ], [ 63, %123 ]
ret i32 %129
}