int operator_precendence(char left, char right) {
  switch (left) {
  case '`':
    switch (right) {
    case '`':
      return 0;
      break;
    case '~':
      return 1;
      break;
    case '*':
      return 1;
      break;
    case '/':
      return 1;
      break;
    case '%':
      return 1;
      break;
    case '+':
      return 1;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '~':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return 0;
      break;
    case '*':
      return 1;
      break;
    case '/':
      return 1;
      break;
    case '%':
      return 1;
      break;
    case '+':
      return 1;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '*':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return 0;
      break;
    case '/':
      return 1;
      break;
    case '%':
      return 1;
      break;
    case '+':
      return 1;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '/':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return 0;
      break;
    case '%':
      return 1;
      break;
    case '+':
      return 1;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '%':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return 0;
      break;
    case '+':
      return 1;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '+':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return 0;
      break;
    case '-':
      return 1;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '-':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return 0;
      break;
    case '<':
      return 1;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '<':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return -1;
      break;
    case '<':
      return 0;
      break;
    case '>':
      return 1;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '>':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return -1;
      break;
    case '<':
      return -1;
      break;
    case '>':
      return 0;
      break;
    case '&':
      return 1;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '&':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return -1;
      break;
    case '<':
      return -1;
      break;
    case '>':
      return -1;
      break;
    case '&':
      return 0;
      break;
    case '^':
      return 1;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '^':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return -1;
      break;
    case '<':
      return -1;
      break;
    case '>':
      return -1;
      break;
    case '&':
      return -1;
      break;
    case '^':
      return 0;
      break;
    case '|':
      return 1;
      break;
    default:
      return -2;
      break;
    }
    break;
  case '|':
    switch (right) {
    case '`':
      return -1;
      break;
    case '~':
      return -1;
      break;
    case '*':
      return -1;
      break;
    case '/':
      return -1;
      break;
    case '%':
      return -1;
      break;
    case '+':
      return -1;
      break;
    case '-':
      return -1;
      break;
    case '<':
      return -1;
      break;
    case '>':
      return -1;
      break;
    case '&':
      return -1;
      break;
    case '^':
      return -1;
      break;
    case '|':
      return 0;
      break;
    default:
      return -2;
      break;
    }
    break;
  default:
    return -2;
    break;
  }
}


x86 assembly (clang, -O0):
<operator_precendence>:
push   %rbp
mov    %rsp,%rbp
mov    %sil,%al
mov    %dil,%cl
mov    %cl,-0x5(%rbp)
mov    %al,-0x6(%rbp)
movsbl -0x5(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x10(%rbp)
sub    $0x59,%eax
ja     1a82 <operator_precendence+0x982>
mov    -0x10(%rbp),%rax
lea    0xecf(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x59,%eax
ja     11f4 <operator_precendence+0xf4>
mov    -0x18(%rbp),%rax
lea    0x1f85(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x20(%rbp)
sub    $0x59,%eax
ja     12ba <operator_precendence+0x1ba>
mov    -0x20(%rbp),%rax
lea    0x1d57(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x28(%rbp)
sub    $0x59,%eax
ja     1380 <operator_precendence+0x280>
mov    -0x28(%rbp),%rax
lea    0x1b29(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x30(%rbp)
sub    $0x59,%eax
ja     1446 <operator_precendence+0x346>
mov    -0x30(%rbp),%rax
lea    0x18fb(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x38(%rbp)
sub    $0x59,%eax
ja     150c <operator_precendence+0x40c>
mov    -0x38(%rbp),%rax
lea    0x16cd(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x40(%rbp)
sub    $0x59,%eax
ja     15d2 <operator_precendence+0x4d2>
mov    -0x40(%rbp),%rax
lea    0x149f(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x48(%rbp)
sub    $0x59,%eax
ja     1698 <operator_precendence+0x598>
mov    -0x48(%rbp),%rax
lea    0x1271(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x50(%rbp)
sub    $0x59,%eax
ja     175e <operator_precendence+0x65e>
mov    -0x50(%rbp),%rax
lea    0x1043(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x58(%rbp)
sub    $0x59,%eax
ja     1824 <operator_precendence+0x724>
mov    -0x58(%rbp),%rax
lea    0xe15(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x60(%rbp)
sub    $0x59,%eax
ja     18ea <operator_precendence+0x7ea>
mov    -0x60(%rbp),%rax
lea    0xbe7(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x68(%rbp)
sub    $0x59,%eax
ja     19b0 <operator_precendence+0x8b0>
mov    -0x68(%rbp),%rax
lea    0x9b9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x1,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movsbl -0x6(%rbp),%eax
add    $0xffffffdb,%eax
mov    %eax,%ecx
mov    %rcx,-0x70(%rbp)
sub    $0x59,%eax
ja     1a76 <operator_precendence+0x976>
mov    -0x70(%rbp),%rax
lea    0x78b(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xffffffff,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0x0,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
jmp    1a89 <operator_precendence+0x989>
movl   $0xfffffffe,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<operator_precendence>:
mov    $0xfffffffe,%eax
add    $0xffffffdb,%edi
cmp    $0x59,%edi
ja     12b1 <operator_precendence+0x1b1>
lea    0xee8(%rip),%rax
movslq (%rax,%rdi,4),%rcx
add    %rax,%rcx
mov    $0xfffffffe,%eax
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x19fe(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x12d1(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1c84(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1af7(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1532(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x13a5(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0xf48(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1d33(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1772(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x15e9(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
mov    $0xffffffff,%eax
lea    0x1028(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
ret
movsbl %sil,%ecx
add    $0xffffffdb,%ecx
cmp    $0x59,%ecx
ja     12d6 <operator_precendence+0x1d6>
xor    %eax,%eax
lea    0x1e19(%rip),%rdx
movslq (%rdx,%rcx,4),%rcx
add    %rdx,%rcx
jmp    *%rcx
mov    $0x1,%eax
ret
mov    $0xfffffffe,%eax
ret
xor    %eax,%eax
ret

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

LLVM IR (-O2):
define i32 @operator_precendence(i8 signext %0, i8 signext %1) {
%3 = sext i8 %0 to i32
switch i32 %3, label %117 [
i32 96, label %4
i32 126, label %18
i32 42, label %32
i32 47, label %45
i32 37, label %57
i32 43, label %68
i32 45, label %78
i32 60, label %87
i32 62, label %95
i32 38, label %102
i32 94, label %108
i32 124, label %113
]
4: ; preds = %2
%5 = sext i8 %1 to i32
switch i32 %5, label %17 [
i32 96, label %117
i32 126, label %6
i32 42, label %7
i32 47, label %8
i32 37, label %9
i32 43, label %10
i32 45, label %11
i32 60, label %12
i32 62, label %13
i32 38, label %14
i32 94, label %15
i32 124, label %16
]
6: ; preds = %4
br label %117
7: ; preds = %4
br label %117
8: ; preds = %4
br label %117
9: ; preds = %4
br label %117
10: ; preds = %4
br label %117
11: ; preds = %4
br label %117
12: ; preds = %4
br label %117
13: ; preds = %4
br label %117
14: ; preds = %4
br label %117
15: ; preds = %4
br label %117
16: ; preds = %4
br label %117
17: ; preds = %4
br label %117
18: ; preds = %2
%19 = sext i8 %1 to i32
switch i32 %19, label %31 [
i32 96, label %117
i32 126, label %20
i32 42, label %21
i32 47, label %22
i32 37, label %23
i32 43, label %24
i32 45, label %25
i32 60, label %26
i32 62, label %27
i32 38, label %28
i32 94, label %29
i32 124, label %30
]
20: ; preds = %18
br label %117
21: ; preds = %18
br label %117
22: ; preds = %18
br label %117
23: ; preds = %18
br label %117
24: ; preds = %18
br label %117
25: ; preds = %18
br label %117
26: ; preds = %18
br label %117
27: ; preds = %18
br label %117
28: ; preds = %18
br label %117
29: ; preds = %18
br label %117
30: ; preds = %18
br label %117
31: ; preds = %18
br label %117
32: ; preds = %2
%33 = sext i8 %1 to i32
switch i32 %33, label %44 [
i32 96, label %117
i32 126, label %117
i32 42, label %34
i32 47, label %35
i32 37, label %36
i32 43, label %37
i32 45, label %38
i32 60, label %39
i32 62, label %40
i32 38, label %41
i32 94, label %42
i32 124, label %43
]
34: ; preds = %32
br label %117
35: ; preds = %32
br label %117
36: ; preds = %32
br label %117
37: ; preds = %32
br label %117
38: ; preds = %32
br label %117
39: ; preds = %32
br label %117
40: ; preds = %32
br label %117
41: ; preds = %32
br label %117
42: ; preds = %32
br label %117
43: ; preds = %32
br label %117
44: ; preds = %32
br label %117
45: ; preds = %2
%46 = sext i8 %1 to i32
switch i32 %46, label %56 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %47
i32 37, label %48
i32 43, label %49
i32 45, label %50
i32 60, label %51
i32 62, label %52
i32 38, label %53
i32 94, label %54
i32 124, label %55
]
47: ; preds = %45
br label %117
48: ; preds = %45
br label %117
49: ; preds = %45
br label %117
50: ; preds = %45
br label %117
51: ; preds = %45
br label %117
52: ; preds = %45
br label %117
53: ; preds = %45
br label %117
54: ; preds = %45
br label %117
55: ; preds = %45
br label %117
56: ; preds = %45
br label %117
57: ; preds = %2
%58 = sext i8 %1 to i32
switch i32 %58, label %67 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %59
i32 43, label %60
i32 45, label %61
i32 60, label %62
i32 62, label %63
i32 38, label %64
i32 94, label %65
i32 124, label %66
]
59: ; preds = %57
br label %117
60: ; preds = %57
br label %117
61: ; preds = %57
br label %117
62: ; preds = %57
br label %117
63: ; preds = %57
br label %117
64: ; preds = %57
br label %117
65: ; preds = %57
br label %117
66: ; preds = %57
br label %117
67: ; preds = %57
br label %117
68: ; preds = %2
%69 = sext i8 %1 to i32
switch i32 %69, label %77 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %70
i32 45, label %71
i32 60, label %72
i32 62, label %73
i32 38, label %74
i32 94, label %75
i32 124, label %76
]
70: ; preds = %68
br label %117
71: ; preds = %68
br label %117
72: ; preds = %68
br label %117
73: ; preds = %68
br label %117
74: ; preds = %68
br label %117
75: ; preds = %68
br label %117
76: ; preds = %68
br label %117
77: ; preds = %68
br label %117
78: ; preds = %2
%79 = sext i8 %1 to i32
switch i32 %79, label %86 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %80
i32 60, label %81
i32 62, label %82
i32 38, label %83
i32 94, label %84
i32 124, label %85
]
80: ; preds = %78
br label %117
81: ; preds = %78
br label %117
82: ; preds = %78
br label %117
83: ; preds = %78
br label %117
84: ; preds = %78
br label %117
85: ; preds = %78
br label %117
86: ; preds = %78
br label %117
87: ; preds = %2
%88 = sext i8 %1 to i32
switch i32 %88, label %94 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %117
i32 60, label %89
i32 62, label %90
i32 38, label %91
i32 94, label %92
i32 124, label %93
]
89: ; preds = %87
br label %117
90: ; preds = %87
br label %117
91: ; preds = %87
br label %117
92: ; preds = %87
br label %117
93: ; preds = %87
br label %117
94: ; preds = %87
br label %117
95: ; preds = %2
%96 = sext i8 %1 to i32
switch i32 %96, label %101 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %117
i32 60, label %117
i32 62, label %97
i32 38, label %98
i32 94, label %99
i32 124, label %100
]
97: ; preds = %95
br label %117
98: ; preds = %95
br label %117
99: ; preds = %95
br label %117
100: ; preds = %95
br label %117
101: ; preds = %95
br label %117
102: ; preds = %2
%103 = sext i8 %1 to i32
switch i32 %103, label %107 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %117
i32 60, label %117
i32 62, label %117
i32 38, label %104
i32 94, label %105
i32 124, label %106
]
104: ; preds = %102
br label %117
105: ; preds = %102
br label %117
106: ; preds = %102
br label %117
107: ; preds = %102
br label %117
108: ; preds = %2
%109 = sext i8 %1 to i32
switch i32 %109, label %112 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %117
i32 60, label %117
i32 62, label %117
i32 38, label %117
i32 94, label %110
i32 124, label %111
]
110: ; preds = %108
br label %117
111: ; preds = %108
br label %117
112: ; preds = %108
br label %117
113: ; preds = %2
%114 = sext i8 %1 to i32
switch i32 %114, label %116 [
i32 96, label %117
i32 126, label %117
i32 42, label %117
i32 47, label %117
i32 37, label %117
i32 43, label %117
i32 45, label %117
i32 60, label %117
i32 62, label %117
i32 38, label %117
i32 94, label %117
i32 124, label %115
]
115: ; preds = %113
br label %117
116: ; preds = %113
br label %117
117: ; preds = %2, %113, %113, %113, %113, %113, %113, %113, %113, %113, %113, %113, %108, %108, %108, %108, %108, %108, %108, %108, %108, %108, %102, %102, %102, %102, %102, %102, %102, %102, %102, %95, %95, %95, %95, %95, %95, %95, %95, %87, %87, %87, %87, %87, %87, %87, %78, %78, %78, %78, %78, %78, %68, %68, %68, %68, %68, %57, %57, %57, %57, %45, %45, %45, %32, %32, %18, %4, %116, %115, %112, %111, %110, %107, %106, %105, %104, %101, %100, %99, %98, %97, %94, %93, %92, %91, %90, %89, %86, %85, %84, %83, %82, %81, %80, %77, %76, %75, %74, %73, %72, %71, %70, %67, %66, %65, %64, %63, %62, %61, %60, %59, %56, %55, %54, %53, %52, %51, %50, %49, %48, %47, %44, %43, %42, %41, %40, %39, %38, %37, %36, %35, %34, %31, %30, %29, %28, %27, %26, %25, %24, %23, %22, %21, %20, %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %7, %6
%118 = phi i32 [ -2, %116 ], [ 0, %115 ], [ -2, %112 ], [ 1, %111 ], [ 0, %110 ], [ -2, %107 ], [ 1, %106 ], [ 1, %105 ], [ 0, %104 ], [ -2, %101 ], [ 1, %100 ], [ 1, %99 ], [ 1, %98 ], [ 0, %97 ], [ -2, %94 ], [ 1, %93 ], [ 1, %92 ], [ 1, %91 ], [ 1, %90 ], [ 0, %89 ], [ -2, %86 ], [ 1, %85 ], [ 1, %84 ], [ 1, %83 ], [ 1, %82 ], [ 1, %81 ], [ 0, %80 ], [ -2, %77 ], [ 1, %76 ], [ 1, %75 ], [ 1, %74 ], [ 1, %73 ], [ 1, %72 ], [ 1, %71 ], [ 0, %70 ], [ -2, %67 ], [ 1, %66 ], [ 1, %65 ], [ 1, %64 ], [ 1, %63 ], [ 1, %62 ], [ 1, %61 ], [ 1, %60 ], [ 0, %59 ], [ -2, %56 ], [ 1, %55 ], [ 1, %54 ], [ 1, %53 ], [ 1, %52 ], [ 1, %51 ], [ 1, %50 ], [ 1, %49 ], [ 1, %48 ], [ 0, %47 ], [ -2, %44 ], [ 1, %43 ], [ 1, %42 ], [ 1, %41 ], [ 1, %40 ], [ 1, %39 ], [ 1, %38 ], [ 1, %37 ], [ 1, %36 ], [ 1, %35 ], [ 0, %34 ], [ -2, %31 ], [ 1, %30 ], [ 1, %29 ], [ 1, %28 ], [ 1, %27 ], [ 1, %26 ], [ 1, %25 ], [ 1, %24 ], [ 1, %23 ], [ 1, %22 ], [ 1, %21 ], [ 0, %20 ], [ -2, %17 ], [ 1, %16 ], [ 1, %15 ], [ 1, %14 ], [ 1, %13 ], [ 1, %12 ], [ 1, %11 ], [ 1, %10 ], [ 1, %9 ], [ 1, %8 ], [ 1, %7 ], [ 1, %6 ], [ 0, %4 ], [ -1, %18 ], [ -1, %32 ], [ -1, %32 ], [ -1, %45 ], [ -1, %45 ], [ -1, %45 ], [ -1, %57 ], [ -1, %57 ], [ -1, %57 ], [ -1, %57 ], [ -1, %68 ], [ -1, %68 ], [ -1, %68 ], [ -1, %68 ], [ -1, %68 ], [ -1, %78 ], [ -1, %78 ], [ -1, %78 ], [ -1, %78 ], [ -1, %78 ], [ -1, %78 ], [ -1, %87 ], [ -1, %87 ], [ -1, %87 ], [ -1, %87 ], [ -1, %87 ], [ -1, %87 ], [ -1, %87 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %95 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %102 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %108 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -1, %113 ], [ -2, %2 ]
ret i32 %118
}