int is_url_codepoint(char c) {
  if (1 == (c ==
            (((((((0x030) | (0x031) | (0x032) | (0x033) | (0x034) | (0x035) |
                  (0x036) | (0x037) | (0x038) | (0x039))) |
                (((0x041) | (0x042) | (0x043) | (0x044) | (0x045) | (0x046) |
                  (0x047) | (0x046) | (0x047) | (0x048) | (0x049) | (0x050) |
                  (0x051) | (0x052) | (0x053) | (0x054) | (0x055) | (0x056) |
                  (0x057) | (0x058) | (0x059) | (0x05a) | (0x061) | (0x062) |
                  (0x063) | (0x064) | (0x065) | (0x066) | (0x067) | (0x068) |
                  (0x069) | (0x070) | (0x071) | (0x072) | (0x073) | (0x074) |
                  (0x075) | (0x076) | (0x077) | (0x078) | (0x079) |
                  (0x07a))))) |
              '!' | '$' | '&' | '\'' | '(' | ')' | '*' | '+' | ',' | '-' | '.' |
              '/' | ':' | ';' | '=' | '?' | '@' | '_' | '~') &
             c))
          ? 1
      : 0 || 1 == ((c >= 0x0a0) && (c <= 0xd7ff))      ? 1
      : 0 || 1 == ((c >= 0xe000) && (c <= 0xfdcf))     ? 1
      : 0 || 1 == ((c >= 0xfdf0) && (c <= 0xffef))     ? 1
      : 0 || 1 == ((c >= 0x10000) && (c <= 0x1fffd))   ? 1
      : 0 || 1 == ((c >= 0x20000) && (c <= 0x2fffd))   ? 1
      : 0 || 1 == ((c >= 0x30000) && (c <= 0x3fffd))   ? 1
      : 0 || 1 == ((c >= 0x40000) && (c <= 0x4fffd))   ? 1
      : 0 || 1 == ((c >= 0x50000) && (c <= 0x6fffd))   ? 1
      : 0 || 1 == ((c >= 0x60000) && (c <= 0x6fffd))   ? 1
      : 0 || 1 == ((c >= 0x70000) && (c <= 0x7fffd))   ? 1
      : 0 || 1 == ((c >= 0x80000) && (c <= 0x8fffd))   ? 1
      : 0 || 1 == ((c >= 0x90000) && (c <= 0x9fffd))   ? 1
      : 0 || 1 == ((c >= 0xa0000) && (c <= 0xafffd))   ? 1
      : 0 || 1 == ((c >= 0xb0000) && (c <= 0xbfffd))   ? 1
      : 0 || 1 == ((c >= 0xc0000) && (c <= 0xcfffd))   ? 1
      : 0 || 1 == ((c >= 0xd0000) && (c <= 0xdfffd))   ? 1
      : 0 || 1 == ((c >= 0xe0000) && (c <= 0xefffd))   ? 1
      : 0 || 1 == ((c >= 0xf0000) && (c <= 0xffffd))   ? 1
      : 0 || 1 == ((c >= 0x100000) && (c <= 0x10fffd)) ? 1
                                                       : 0) {
    return 1;
  } else {
    return 0;
  }
}


x86 assembly (clang, -O0):
<is_url_codepoint>:
push   %rbp
mov    %rsp,%rbp
mov    %dil,%al
mov    %al,-0x5(%rbp)
movsbl -0x5(%rbp),%eax
movsbl -0x5(%rbp),%ecx
and    $0x7f,%ecx
cmp    %ecx,%eax
sete   %al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    113b <is_url_codepoint+0x3b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xa0,%ecx
mov    %al,-0x6(%rbp)
jl     115f <is_url_codepoint+0x5f>
movsbl -0x5(%rbp),%eax
cmp    $0xd7ff,%eax
setle  %al
mov    %al,-0x6(%rbp)
mov    -0x6(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1183 <is_url_codepoint+0x83>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xe000,%ecx
mov    %al,-0x7(%rbp)
jl     11a7 <is_url_codepoint+0xa7>
movsbl -0x5(%rbp),%eax
cmp    $0xfdcf,%eax
setle  %al
mov    %al,-0x7(%rbp)
mov    -0x7(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    11cb <is_url_codepoint+0xcb>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xfdf0,%ecx
mov    %al,-0x8(%rbp)
jl     11ef <is_url_codepoint+0xef>
movsbl -0x5(%rbp),%eax
cmp    $0xffef,%eax
setle  %al
mov    %al,-0x8(%rbp)
mov    -0x8(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1213 <is_url_codepoint+0x113>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x10000,%ecx
mov    %al,-0x9(%rbp)
jl     1237 <is_url_codepoint+0x137>
movsbl -0x5(%rbp),%eax
cmp    $0x1fffd,%eax
setle  %al
mov    %al,-0x9(%rbp)
mov    -0x9(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    125b <is_url_codepoint+0x15b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x20000,%ecx
mov    %al,-0xa(%rbp)
jl     127f <is_url_codepoint+0x17f>
movsbl -0x5(%rbp),%eax
cmp    $0x2fffd,%eax
setle  %al
mov    %al,-0xa(%rbp)
mov    -0xa(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    12a3 <is_url_codepoint+0x1a3>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x30000,%ecx
mov    %al,-0xb(%rbp)
jl     12c7 <is_url_codepoint+0x1c7>
movsbl -0x5(%rbp),%eax
cmp    $0x3fffd,%eax
setle  %al
mov    %al,-0xb(%rbp)
mov    -0xb(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    12eb <is_url_codepoint+0x1eb>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x40000,%ecx
mov    %al,-0xc(%rbp)
jl     130f <is_url_codepoint+0x20f>
movsbl -0x5(%rbp),%eax
cmp    $0x4fffd,%eax
setle  %al
mov    %al,-0xc(%rbp)
mov    -0xc(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1333 <is_url_codepoint+0x233>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x50000,%ecx
mov    %al,-0xd(%rbp)
jl     1357 <is_url_codepoint+0x257>
movsbl -0x5(%rbp),%eax
cmp    $0x6fffd,%eax
setle  %al
mov    %al,-0xd(%rbp)
mov    -0xd(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    137b <is_url_codepoint+0x27b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x60000,%ecx
mov    %al,-0xe(%rbp)
jl     139f <is_url_codepoint+0x29f>
movsbl -0x5(%rbp),%eax
cmp    $0x6fffd,%eax
setle  %al
mov    %al,-0xe(%rbp)
mov    -0xe(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    13c3 <is_url_codepoint+0x2c3>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x70000,%ecx
mov    %al,-0xf(%rbp)
jl     13e7 <is_url_codepoint+0x2e7>
movsbl -0x5(%rbp),%eax
cmp    $0x7fffd,%eax
setle  %al
mov    %al,-0xf(%rbp)
mov    -0xf(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    140b <is_url_codepoint+0x30b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x80000,%ecx
mov    %al,-0x10(%rbp)
jl     142f <is_url_codepoint+0x32f>
movsbl -0x5(%rbp),%eax
cmp    $0x8fffd,%eax
setle  %al
mov    %al,-0x10(%rbp)
mov    -0x10(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1453 <is_url_codepoint+0x353>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x90000,%ecx
mov    %al,-0x11(%rbp)
jl     1477 <is_url_codepoint+0x377>
movsbl -0x5(%rbp),%eax
cmp    $0x9fffd,%eax
setle  %al
mov    %al,-0x11(%rbp)
mov    -0x11(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    149b <is_url_codepoint+0x39b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xa0000,%ecx
mov    %al,-0x12(%rbp)
jl     14bf <is_url_codepoint+0x3bf>
movsbl -0x5(%rbp),%eax
cmp    $0xafffd,%eax
setle  %al
mov    %al,-0x12(%rbp)
mov    -0x12(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    14e3 <is_url_codepoint+0x3e3>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xb0000,%ecx
mov    %al,-0x13(%rbp)
jl     1507 <is_url_codepoint+0x407>
movsbl -0x5(%rbp),%eax
cmp    $0xbfffd,%eax
setle  %al
mov    %al,-0x13(%rbp)
mov    -0x13(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    152b <is_url_codepoint+0x42b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xc0000,%ecx
mov    %al,-0x14(%rbp)
jl     154f <is_url_codepoint+0x44f>
movsbl -0x5(%rbp),%eax
cmp    $0xcfffd,%eax
setle  %al
mov    %al,-0x14(%rbp)
mov    -0x14(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1573 <is_url_codepoint+0x473>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xd0000,%ecx
mov    %al,-0x15(%rbp)
jl     1597 <is_url_codepoint+0x497>
movsbl -0x5(%rbp),%eax
cmp    $0xdfffd,%eax
setle  %al
mov    %al,-0x15(%rbp)
mov    -0x15(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    15bb <is_url_codepoint+0x4bb>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xe0000,%ecx
mov    %al,-0x16(%rbp)
jl     15df <is_url_codepoint+0x4df>
movsbl -0x5(%rbp),%eax
cmp    $0xefffd,%eax
setle  %al
mov    %al,-0x16(%rbp)
mov    -0x16(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1603 <is_url_codepoint+0x503>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0xf0000,%ecx
mov    %al,-0x17(%rbp)
jl     1627 <is_url_codepoint+0x527>
movsbl -0x5(%rbp),%eax
cmp    $0xffffd,%eax
setle  %al
mov    %al,-0x17(%rbp)
mov    -0x17(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    164b <is_url_codepoint+0x54b>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movsbl -0x5(%rbp),%ecx
xor    %eax,%eax
cmp    $0x100000,%ecx
mov    %al,-0x18(%rbp)
jl     166f <is_url_codepoint+0x56f>
movsbl -0x5(%rbp),%eax
cmp    $0x10fffd,%eax
setle  %al
mov    %al,-0x18(%rbp)
mov    -0x18(%rbp),%al
and    $0x1,%al
movzbl %al,%ecx
mov    $0x1,%eax
cmp    %ecx,%eax
jne    1693 <is_url_codepoint+0x593>
mov    $0x1,%al
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
xor    %eax,%eax
test   $0x1,%al
jne    16a2 <is_url_codepoint+0x5a2>
jmp    16ae <is_url_codepoint+0x5ae>
movl   $0x1,-0x4(%rbp)
jmp    16b5 <is_url_codepoint+0x5b5>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<is_url_codepoint>:
not    %dil
shr    $0x7,%dil
movzbl %dil,%eax
ret

LLVM IR (-O0):
define i32 @is_url_codepoint(i8 signext %0) {
%2 = alloca i32
%3 = alloca i8
store i8 %0, i8* %3
%4 = load i8, i8* %3
%5 = sext i8 %4 to i32
%6 = load i8, i8* %3
%7 = sext i8 %6 to i32
%8 = and i32 127, %7
%9 = icmp eq i32 %5, %8
%10 = zext i1 %9 to i32
%11 = icmp eq i32 1, %10
br i1 %11, label %12, label %13
12: ; preds = %1
br i1 true, label %261, label %262
13: ; preds = %1
%14 = load i8, i8* %3
%15 = sext i8 %14 to i32
%16 = icmp sge i32 %15, 160
br i1 %16, label %17, label %21
17: ; preds = %13
%18 = load i8, i8* %3
%19 = sext i8 %18 to i32
%20 = icmp sle i32 %19, 55295
br label %21
21: ; preds = %17, %13
%22 = phi i1 [ false, %13 ], [ %20, %17 ]
%23 = zext i1 %22 to i32
%24 = icmp eq i32 1, %23
br i1 %24, label %25, label %26
25: ; preds = %21
br i1 true, label %261, label %262
26: ; preds = %21
%27 = load i8, i8* %3
%28 = sext i8 %27 to i32
%29 = icmp sge i32 %28, 57344
br i1 %29, label %30, label %34
30: ; preds = %26
%31 = load i8, i8* %3
%32 = sext i8 %31 to i32
%33 = icmp sle i32 %32, 64975
br label %34
34: ; preds = %30, %26
%35 = phi i1 [ false, %26 ], [ %33, %30 ]
%36 = zext i1 %35 to i32
%37 = icmp eq i32 1, %36
br i1 %37, label %38, label %39
38: ; preds = %34
br i1 true, label %261, label %262
39: ; preds = %34
%40 = load i8, i8* %3
%41 = sext i8 %40 to i32
%42 = icmp sge i32 %41, 65008
br i1 %42, label %43, label %47
43: ; preds = %39
%44 = load i8, i8* %3
%45 = sext i8 %44 to i32
%46 = icmp sle i32 %45, 65519
br label %47
47: ; preds = %43, %39
%48 = phi i1 [ false, %39 ], [ %46, %43 ]
%49 = zext i1 %48 to i32
%50 = icmp eq i32 1, %49
br i1 %50, label %51, label %52
51: ; preds = %47
br i1 true, label %261, label %262
52: ; preds = %47
%53 = load i8, i8* %3
%54 = sext i8 %53 to i32
%55 = icmp sge i32 %54, 65536
br i1 %55, label %56, label %60
56: ; preds = %52
%57 = load i8, i8* %3
%58 = sext i8 %57 to i32
%59 = icmp sle i32 %58, 131069
br label %60
60: ; preds = %56, %52
%61 = phi i1 [ false, %52 ], [ %59, %56 ]
%62 = zext i1 %61 to i32
%63 = icmp eq i32 1, %62
br i1 %63, label %64, label %65
64: ; preds = %60
br i1 true, label %261, label %262
65: ; preds = %60
%66 = load i8, i8* %3
%67 = sext i8 %66 to i32
%68 = icmp sge i32 %67, 131072
br i1 %68, label %69, label %73
69: ; preds = %65
%70 = load i8, i8* %3
%71 = sext i8 %70 to i32
%72 = icmp sle i32 %71, 196605
br label %73
73: ; preds = %69, %65
%74 = phi i1 [ false, %65 ], [ %72, %69 ]
%75 = zext i1 %74 to i32
%76 = icmp eq i32 1, %75
br i1 %76, label %77, label %78
77: ; preds = %73
br i1 true, label %261, label %262
78: ; preds = %73
%79 = load i8, i8* %3
%80 = sext i8 %79 to i32
%81 = icmp sge i32 %80, 196608
br i1 %81, label %82, label %86
82: ; preds = %78
%83 = load i8, i8* %3
%84 = sext i8 %83 to i32
%85 = icmp sle i32 %84, 262141
br label %86
86: ; preds = %82, %78
%87 = phi i1 [ false, %78 ], [ %85, %82 ]
%88 = zext i1 %87 to i32
%89 = icmp eq i32 1, %88
br i1 %89, label %90, label %91
90: ; preds = %86
br i1 true, label %261, label %262
91: ; preds = %86
%92 = load i8, i8* %3
%93 = sext i8 %92 to i32
%94 = icmp sge i32 %93, 262144
br i1 %94, label %95, label %99
95: ; preds = %91
%96 = load i8, i8* %3
%97 = sext i8 %96 to i32
%98 = icmp sle i32 %97, 327677
br label %99
99: ; preds = %95, %91
%100 = phi i1 [ false, %91 ], [ %98, %95 ]
%101 = zext i1 %100 to i32
%102 = icmp eq i32 1, %101
br i1 %102, label %103, label %104
103: ; preds = %99
br i1 true, label %261, label %262
104: ; preds = %99
%105 = load i8, i8* %3
%106 = sext i8 %105 to i32
%107 = icmp sge i32 %106, 327680
br i1 %107, label %108, label %112
108: ; preds = %104
%109 = load i8, i8* %3
%110 = sext i8 %109 to i32
%111 = icmp sle i32 %110, 458749
br label %112
112: ; preds = %108, %104
%113 = phi i1 [ false, %104 ], [ %111, %108 ]
%114 = zext i1 %113 to i32
%115 = icmp eq i32 1, %114
br i1 %115, label %116, label %117
116: ; preds = %112
br i1 true, label %261, label %262
117: ; preds = %112
%118 = load i8, i8* %3
%119 = sext i8 %118 to i32
%120 = icmp sge i32 %119, 393216
br i1 %120, label %121, label %125
121: ; preds = %117
%122 = load i8, i8* %3
%123 = sext i8 %122 to i32
%124 = icmp sle i32 %123, 458749
br label %125
125: ; preds = %121, %117
%126 = phi i1 [ false, %117 ], [ %124, %121 ]
%127 = zext i1 %126 to i32
%128 = icmp eq i32 1, %127
br i1 %128, label %129, label %130
129: ; preds = %125
br i1 true, label %261, label %262
130: ; preds = %125
%131 = load i8, i8* %3
%132 = sext i8 %131 to i32
%133 = icmp sge i32 %132, 458752
br i1 %133, label %134, label %138
134: ; preds = %130
%135 = load i8, i8* %3
%136 = sext i8 %135 to i32
%137 = icmp sle i32 %136, 524285
br label %138
138: ; preds = %134, %130
%139 = phi i1 [ false, %130 ], [ %137, %134 ]
%140 = zext i1 %139 to i32
%141 = icmp eq i32 1, %140
br i1 %141, label %142, label %143
142: ; preds = %138
br i1 true, label %261, label %262
143: ; preds = %138
%144 = load i8, i8* %3
%145 = sext i8 %144 to i32
%146 = icmp sge i32 %145, 524288
br i1 %146, label %147, label %151
147: ; preds = %143
%148 = load i8, i8* %3
%149 = sext i8 %148 to i32
%150 = icmp sle i32 %149, 589821
br label %151
151: ; preds = %147, %143
%152 = phi i1 [ false, %143 ], [ %150, %147 ]
%153 = zext i1 %152 to i32
%154 = icmp eq i32 1, %153
br i1 %154, label %155, label %156
155: ; preds = %151
br i1 true, label %261, label %262
156: ; preds = %151
%157 = load i8, i8* %3
%158 = sext i8 %157 to i32
%159 = icmp sge i32 %158, 589824
br i1 %159, label %160, label %164
160: ; preds = %156
%161 = load i8, i8* %3
%162 = sext i8 %161 to i32
%163 = icmp sle i32 %162, 655357
br label %164
164: ; preds = %160, %156
%165 = phi i1 [ false, %156 ], [ %163, %160 ]
%166 = zext i1 %165 to i32
%167 = icmp eq i32 1, %166
br i1 %167, label %168, label %169
168: ; preds = %164
br i1 true, label %261, label %262
169: ; preds = %164
%170 = load i8, i8* %3
%171 = sext i8 %170 to i32
%172 = icmp sge i32 %171, 655360
br i1 %172, label %173, label %177
173: ; preds = %169
%174 = load i8, i8* %3
%175 = sext i8 %174 to i32
%176 = icmp sle i32 %175, 720893
br label %177
177: ; preds = %173, %169
%178 = phi i1 [ false, %169 ], [ %176, %173 ]
%179 = zext i1 %178 to i32
%180 = icmp eq i32 1, %179
br i1 %180, label %181, label %182
181: ; preds = %177
br i1 true, label %261, label %262
182: ; preds = %177
%183 = load i8, i8* %3
%184 = sext i8 %183 to i32
%185 = icmp sge i32 %184, 720896
br i1 %185, label %186, label %190
186: ; preds = %182
%187 = load i8, i8* %3
%188 = sext i8 %187 to i32
%189 = icmp sle i32 %188, 786429
br label %190
190: ; preds = %186, %182
%191 = phi i1 [ false, %182 ], [ %189, %186 ]
%192 = zext i1 %191 to i32
%193 = icmp eq i32 1, %192
br i1 %193, label %194, label %195
194: ; preds = %190
br i1 true, label %261, label %262
195: ; preds = %190
%196 = load i8, i8* %3
%197 = sext i8 %196 to i32
%198 = icmp sge i32 %197, 786432
br i1 %198, label %199, label %203
199: ; preds = %195
%200 = load i8, i8* %3
%201 = sext i8 %200 to i32
%202 = icmp sle i32 %201, 851965
br label %203
203: ; preds = %199, %195
%204 = phi i1 [ false, %195 ], [ %202, %199 ]
%205 = zext i1 %204 to i32
%206 = icmp eq i32 1, %205
br i1 %206, label %207, label %208
207: ; preds = %203
br i1 true, label %261, label %262
208: ; preds = %203
%209 = load i8, i8* %3
%210 = sext i8 %209 to i32
%211 = icmp sge i32 %210, 851968
br i1 %211, label %212, label %216
212: ; preds = %208
%213 = load i8, i8* %3
%214 = sext i8 %213 to i32
%215 = icmp sle i32 %214, 917501
br label %216
216: ; preds = %212, %208
%217 = phi i1 [ false, %208 ], [ %215, %212 ]
%218 = zext i1 %217 to i32
%219 = icmp eq i32 1, %218
br i1 %219, label %220, label %221
220: ; preds = %216
br i1 true, label %261, label %262
221: ; preds = %216
%222 = load i8, i8* %3
%223 = sext i8 %222 to i32
%224 = icmp sge i32 %223, 917504
br i1 %224, label %225, label %229
225: ; preds = %221
%226 = load i8, i8* %3
%227 = sext i8 %226 to i32
%228 = icmp sle i32 %227, 983037
br label %229
229: ; preds = %225, %221
%230 = phi i1 [ false, %221 ], [ %228, %225 ]
%231 = zext i1 %230 to i32
%232 = icmp eq i32 1, %231
br i1 %232, label %233, label %234
233: ; preds = %229
br i1 true, label %261, label %262
234: ; preds = %229
%235 = load i8, i8* %3
%236 = sext i8 %235 to i32
%237 = icmp sge i32 %236, 983040
br i1 %237, label %238, label %242
238: ; preds = %234
%239 = load i8, i8* %3
%240 = sext i8 %239 to i32
%241 = icmp sle i32 %240, 1048573
br label %242
242: ; preds = %238, %234
%243 = phi i1 [ false, %234 ], [ %241, %238 ]
%244 = zext i1 %243 to i32
%245 = icmp eq i32 1, %244
br i1 %245, label %246, label %247
246: ; preds = %242
br i1 true, label %261, label %262
247: ; preds = %242
%248 = load i8, i8* %3
%249 = sext i8 %248 to i32
%250 = icmp sge i32 %249, 1048576
br i1 %250, label %251, label %255
251: ; preds = %247
%252 = load i8, i8* %3
%253 = sext i8 %252 to i32
%254 = icmp sle i32 %253, 1114109
br label %255
255: ; preds = %251, %247
%256 = phi i1 [ false, %247 ], [ %254, %251 ]
%257 = zext i1 %256 to i32
%258 = icmp eq i32 1, %257
br i1 %258, label %259, label %260
259: ; preds = %255
br i1 true, label %261, label %262
260: ; preds = %255
br i1 false, label %261, label %262
261: ; preds = %260, %259, %246, %233, %220, %207, %194, %181, %168, %155, %142, %129, %116, %103, %90, %77, %64, %51, %38, %25, %12
store i32 1, i32* %2
br label %263
262: ; preds = %260, %259, %246, %233, %220, %207, %194, %181, %168, %155, %142, %129, %116, %103, %90, %77, %64, %51, %38, %25, %12
store i32 0, i32* %2
br label %263
263: ; preds = %262, %261
%264 = load i32, i32* %2
ret i32 %264
}

LLVM IR (-O2):
define i32 @is_url_codepoint(i8 signext %0) {
%2 = xor i8 %0, -1
%3 = lshr i8 %2, 7
%4 = zext i8 %3 to i32
ret i32 %4
}