int opcode_is_branch(int opcode) {
  switch (opcode) {
  case 279:
  case 280:
  case 281:
  case 282:
  case 283:
  case 284:
  case 285:
  case 286:
  case 287:
  case 288:
  case 561:
  case 562:
  case 563:
  case 289:
  case 290:
  case 291:
  case 292:
  case 564:
  case 565:
  case 293:
  case 294:
  case 566:
  case 567:
  case 295:
  case 296:
  case 568:
  case 569:
  case 297:
  case 298:
  case 299:
  case 300:
  case 301:
  case 302:
  case 570:
    return (1);
  default:
    return (0);
  }
}


x86 assembly (clang, -O0):
<opcode_is_branch>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,-0xc(%rbp)
add    $0xfffffee9,%eax
sub    $0x18,%eax
jb     1136 <opcode_is_branch+0x36>
jmp    1120 <opcode_is_branch+0x20>
mov    -0xc(%rbp),%eax
add    $0xfffffdcf,%eax
sub    $0x9,%eax
ja     1142 <opcode_is_branch+0x42>
jmp    1136 <opcode_is_branch+0x36>
movl   $0x1,-0x4(%rbp)
jmp    1149 <opcode_is_branch+0x49>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<opcode_is_branch>:
mov    $0x1,%eax
lea    -0x117(%rdi),%ecx
cmp    $0x18,%ecx
jae    1111 <opcode_is_branch+0x11>
ret
add    $0xfffffdcf,%edi
cmp    $0xa,%edi
jb     1110 <opcode_is_branch+0x10>
xor    %eax,%eax
ret

LLVM IR (-O0):
define i32 @opcode_is_branch(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
switch i32 %4, label %6 [
i32 279, label %5
i32 280, label %5
i32 281, label %5
i32 282, label %5
i32 283, label %5
i32 284, label %5
i32 285, label %5
i32 286, label %5
i32 287, label %5
i32 288, label %5
i32 561, label %5
i32 562, label %5
i32 563, label %5
i32 289, label %5
i32 290, label %5
i32 291, label %5
i32 292, label %5
i32 564, label %5
i32 565, label %5
i32 293, label %5
i32 294, label %5
i32 566, label %5
i32 567, label %5
i32 295, label %5
i32 296, label %5
i32 568, label %5
i32 569, label %5
i32 297, label %5
i32 298, label %5
i32 299, label %5
i32 300, label %5
i32 301, label %5
i32 302, label %5
i32 570, label %5
]
5: ; preds = %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, %1, %1, %1, %1, %1, %1, %1, %1
store i32 1, i32* %2
br label %7
6: ; preds = %1
store i32 0, i32* %2
br label %7
7: ; preds = %6, %5
%8 = load i32, i32* %2
ret i32 %8
}

LLVM IR (-O2):
define i32 @opcode_is_branch(i32 %0) {
switch i32 %0, label %2 [
i32 279, label %3
i32 280, label %3
i32 281, label %3
i32 282, label %3
i32 283, label %3
i32 284, label %3
i32 285, label %3
i32 286, label %3
i32 287, label %3
i32 288, label %3
i32 561, label %3
i32 562, label %3
i32 563, label %3
i32 289, label %3
i32 290, label %3
i32 291, label %3
i32 292, label %3
i32 564, label %3
i32 565, label %3
i32 293, label %3
i32 294, label %3
i32 566, label %3
i32 567, label %3
i32 295, label %3
i32 296, label %3
i32 568, label %3
i32 569, label %3
i32 297, label %3
i32 298, label %3
i32 299, label %3
i32 300, label %3
i32 301, label %3
i32 302, label %3
i32 570, label %3
]
2: ; preds = %1
br label %3
3: ; preds = %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, %1, %1, %1, %1, %1, %1, %1, %1, %2
%4 = phi i32 [ 0, %2 ], [ 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 ], [ 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 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ], [ 1, %1 ]
ret i32 %4
}