int Cyc_is_other_special(char c) {
  char _T0;
  int _T1;
  _T0 = c;
  _T1 = (int)_T0;
  switch (_T1) {
  case 92:
    goto _LL4;
  case 34:
  _LL4:
    goto _LL6;
  case 59:
  _LL6:
    goto _LL8;
  case 38:
  _LL8:
    goto _LLA;
  case 40:
  _LLA:
    goto _LLC;
  case 41:
  _LLC:
    goto _LLE;
  case 124:
  _LLE:
    goto _LL10;
  case 94:
  _LL10:
    goto _LL12;
  case 60:
  _LL12:
    goto _LL14;
  case 62:
  _LL14:
    goto _LL16;
  case 32:
  _LL16:
    goto _LL18;
  case 10:
  _LL18:
    goto _LL1A;
  case 9:
  _LL1A:
    return 1;
  default:
    return 0;
  };
}


x86 assembly (clang, -O0):
<Cyc_is_other_special>:
push   %rbp
mov    %rsp,%rbp
mov    %dil,%al
mov    %al,-0x5(%rbp)
mov    -0x5(%rbp),%al
mov    %al,-0x6(%rbp)
movsbl -0x6(%rbp),%eax
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
add    $0xfffffff7,%eax
mov    %eax,%ecx
mov    %rcx,-0x18(%rbp)
sub    $0x73,%eax
ja     11c4 <Cyc_is_other_special+0xc4>
mov    -0x18(%rbp),%rax
lea    0xec9(%rip),%rcx
movslq (%rcx,%rax,4),%rax
add    %rcx,%rax
jmp    *%rax
jmp    114a <Cyc_is_other_special+0x4a>
jmp    114a <Cyc_is_other_special+0x4a>
jmp    1154 <Cyc_is_other_special+0x54>
jmp    1154 <Cyc_is_other_special+0x54>
jmp    115e <Cyc_is_other_special+0x5e>
jmp    115e <Cyc_is_other_special+0x5e>
jmp    1168 <Cyc_is_other_special+0x68>
jmp    1168 <Cyc_is_other_special+0x68>
jmp    1172 <Cyc_is_other_special+0x72>
jmp    1172 <Cyc_is_other_special+0x72>
jmp    117c <Cyc_is_other_special+0x7c>
jmp    117c <Cyc_is_other_special+0x7c>
jmp    1186 <Cyc_is_other_special+0x86>
jmp    1186 <Cyc_is_other_special+0x86>
jmp    1190 <Cyc_is_other_special+0x90>
jmp    1190 <Cyc_is_other_special+0x90>
jmp    119a <Cyc_is_other_special+0x9a>
jmp    119a <Cyc_is_other_special+0x9a>
jmp    11a4 <Cyc_is_other_special+0xa4>
jmp    11a4 <Cyc_is_other_special+0xa4>
jmp    11ae <Cyc_is_other_special+0xae>
jmp    11ae <Cyc_is_other_special+0xae>
jmp    11b8 <Cyc_is_other_special+0xb8>
jmp    11b8 <Cyc_is_other_special+0xb8>
movl   $0x1,-0x4(%rbp)
jmp    11cb <Cyc_is_other_special+0xcb>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<Cyc_is_other_special>:
add    $0xfffffff7,%edi
cmp    $0x73,%edi
ja     111e <Cyc_is_other_special+0x1e>
mov    $0x1,%eax
lea    0xeec(%rip),%rcx
movslq (%rcx,%rdi,4),%rdx
add    %rcx,%rdx
jmp    *%rdx
ret
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @Cyc_is_other_special(i8 signext %0) {
%2 = alloca i32
%3 = alloca i8
%4 = alloca i8
%5 = alloca i32
store i8 %0, i8* %3
%6 = load i8, i8* %3
store i8 %6, i8* %4
%7 = load i8, i8* %4
%8 = sext i8 %7 to i32
store i32 %8, i32* %5
%9 = load i32, i32* %5
switch i32 %9, label %35 [
i32 92, label %10
i32 34, label %11
i32 59, label %13
i32 38, label %15
i32 40, label %17
i32 41, label %19
i32 124, label %21
i32 94, label %23
i32 60, label %25
i32 62, label %27
i32 32, label %29
i32 10, label %31
i32 9, label %33
]
10: ; preds = %1
br label %12
11: ; preds = %1
br label %12
12: ; preds = %11, %10
br label %14
13: ; preds = %1
br label %14
14: ; preds = %13, %12
br label %16
15: ; preds = %1
br label %16
16: ; preds = %15, %14
br label %18
17: ; preds = %1
br label %18
18: ; preds = %17, %16
br label %20
19: ; preds = %1
br label %20
20: ; preds = %19, %18
br label %22
21: ; preds = %1
br label %22
22: ; preds = %21, %20
br label %24
23: ; preds = %1
br label %24
24: ; preds = %23, %22
br label %26
25: ; preds = %1
br label %26
26: ; preds = %25, %24
br label %28
27: ; preds = %1
br label %28
28: ; preds = %27, %26
br label %30
29: ; preds = %1
br label %30
30: ; preds = %29, %28
br label %32
31: ; preds = %1
br label %32
32: ; preds = %31, %30
br label %34
33: ; preds = %1
br label %34
34: ; preds = %33, %32
store i32 1, i32* %2
br label %36
35: ; preds = %1
store i32 0, i32* %2
br label %36
36: ; preds = %35, %34
%37 = load i32, i32* %2
ret i32 %37
}

LLVM IR (-O2):
define i32 @Cyc_is_other_special(i8 signext %0) {
%2 = sext i8 %0 to i32
switch i32 %2, label %3 [
i32 92, label %4
i32 34, label %4
i32 59, label %4
i32 38, label %4
i32 40, label %4
i32 41, label %4
i32 124, label %4
i32 94, label %4
i32 60, label %4
i32 62, label %4
i32 32, label %4
i32 10, label %4
i32 9, label %4
]
3: ; preds = %1
br label %4
4: ; preds = %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %1, %3
%5 = phi i32 [ 0, %3 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ]
ret i32 %5
}