int xml_digit(int c) {
  if (c <= 0x0aef) {
    if (c <= 0x06f9) {
      if (c <= 0x0039) {
        return (c >= 0x0030 && c <= 0x0039);
      } else {
        if (c <= 0x0669) {
          return (c >= 0x0660 && c <= 0x0669);
        } else {
          return (c >= 0x06f0 && c <= 0x06f9);
        }
      }
    } else {
      if (c <= 0x09ef) {
        if (c <= 0x096f) {
          return (c >= 0x0966 && c <= 0x096f);
        } else {
          return (c >= 0x09e6 && c <= 0x09ef);
        }
      } else {
        if (c <= 0x0a6f) {
          return (c >= 0x0a66 && c <= 0x0a6f);
        } else {
          return (c >= 0x0ae6 && c <= 0x0aef);
        }
      }
    }
  } else {
    if (c <= 0x0cef) {
      if (c <= 0x0bef) {
        if (c <= 0x0b6f) {
          return (c >= 0x0b66 && c <= 0x0b6f);
        } else {
          return (c >= 0x0be7 && c <= 0x0bef);
        }
      } else {
        if (c <= 0x0c6f) {
          return (c >= 0x0c66 && c <= 0x0c6f);
        } else {
          return (c >= 0x0ce6 && c <= 0x0cef);
        }
      }
    } else {
      if (c <= 0x0e59) {
        if (c <= 0x0d6f) {
          return (c >= 0x0d66 && c <= 0x0d6f);
        } else {
          return (c >= 0x0e50 && c <= 0x0e59);
        }
      } else {
        if (c <= 0x0ed9) {
          return (c >= 0x0ed0 && c <= 0x0ed9);
        } else {
          return (c >= 0x0f20 && c <= 0x0f29);
        }
      }
    }
  }
}


x86 assembly (clang, -O0):
<xml_digit>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x8(%rbp)
cmpl   $0xaef,-0x8(%rbp)
jg     12a2 <xml_digit+0x1a2>
cmpl   $0x6f9,-0x8(%rbp)
jg     11bf <xml_digit+0xbf>
cmpl   $0x39,-0x8(%rbp)
jg     1154 <xml_digit+0x54>
xor    %eax,%eax
cmpl   $0x30,-0x8(%rbp)
mov    %al,-0x9(%rbp)
jl     1144 <xml_digit+0x44>
cmpl   $0x39,-0x8(%rbp)
setle  %al
mov    %al,-0x9(%rbp)
mov    -0x9(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0x669,-0x8(%rbp)
jg     1190 <xml_digit+0x90>
xor    %eax,%eax
cmpl   $0x660,-0x8(%rbp)
mov    %al,-0xa(%rbp)
jl     1180 <xml_digit+0x80>
cmpl   $0x669,-0x8(%rbp)
setle  %al
mov    %al,-0xa(%rbp)
mov    -0xa(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0x6f0,-0x8(%rbp)
mov    %al,-0xb(%rbp)
jl     11af <xml_digit+0xaf>
cmpl   $0x6f9,-0x8(%rbp)
setle  %al
mov    %al,-0xb(%rbp)
mov    -0xb(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0x9ef,-0x8(%rbp)
jg     1237 <xml_digit+0x137>
cmpl   $0x96f,-0x8(%rbp)
jg     1208 <xml_digit+0x108>
xor    %eax,%eax
cmpl   $0x966,-0x8(%rbp)
mov    %al,-0xc(%rbp)
jl     11f8 <xml_digit+0xf8>
cmpl   $0x96f,-0x8(%rbp)
setle  %al
mov    %al,-0xc(%rbp)
mov    -0xc(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0x9e6,-0x8(%rbp)
mov    %al,-0xd(%rbp)
jl     1227 <xml_digit+0x127>
cmpl   $0x9ef,-0x8(%rbp)
setle  %al
mov    %al,-0xd(%rbp)
mov    -0xd(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0xa6f,-0x8(%rbp)
jg     1273 <xml_digit+0x173>
xor    %eax,%eax
cmpl   $0xa66,-0x8(%rbp)
mov    %al,-0xe(%rbp)
jl     1263 <xml_digit+0x163>
cmpl   $0xa6f,-0x8(%rbp)
setle  %al
mov    %al,-0xe(%rbp)
mov    -0xe(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0xae6,-0x8(%rbp)
mov    %al,-0xf(%rbp)
jl     1292 <xml_digit+0x192>
cmpl   $0xaef,-0x8(%rbp)
setle  %al
mov    %al,-0xf(%rbp)
mov    -0xf(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0xcef,-0x8(%rbp)
jg     1392 <xml_digit+0x292>
cmpl   $0xbef,-0x8(%rbp)
jg     1327 <xml_digit+0x227>
cmpl   $0xb6f,-0x8(%rbp)
jg     12f8 <xml_digit+0x1f8>
xor    %eax,%eax
cmpl   $0xb66,-0x8(%rbp)
mov    %al,-0x10(%rbp)
jl     12e8 <xml_digit+0x1e8>
cmpl   $0xb6f,-0x8(%rbp)
setle  %al
mov    %al,-0x10(%rbp)
mov    -0x10(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0xbe7,-0x8(%rbp)
mov    %al,-0x11(%rbp)
jl     1317 <xml_digit+0x217>
cmpl   $0xbef,-0x8(%rbp)
setle  %al
mov    %al,-0x11(%rbp)
mov    -0x11(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0xc6f,-0x8(%rbp)
jg     1363 <xml_digit+0x263>
xor    %eax,%eax
cmpl   $0xc66,-0x8(%rbp)
mov    %al,-0x12(%rbp)
jl     1353 <xml_digit+0x253>
cmpl   $0xc6f,-0x8(%rbp)
setle  %al
mov    %al,-0x12(%rbp)
mov    -0x12(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0xce6,-0x8(%rbp)
mov    %al,-0x13(%rbp)
jl     1382 <xml_digit+0x282>
cmpl   $0xcef,-0x8(%rbp)
setle  %al
mov    %al,-0x13(%rbp)
mov    -0x13(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0xe59,-0x8(%rbp)
jg     140a <xml_digit+0x30a>
cmpl   $0xd6f,-0x8(%rbp)
jg     13db <xml_digit+0x2db>
xor    %eax,%eax
cmpl   $0xd66,-0x8(%rbp)
mov    %al,-0x14(%rbp)
jl     13cb <xml_digit+0x2cb>
cmpl   $0xd6f,-0x8(%rbp)
setle  %al
mov    %al,-0x14(%rbp)
mov    -0x14(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0xe50,-0x8(%rbp)
mov    %al,-0x15(%rbp)
jl     13fa <xml_digit+0x2fa>
cmpl   $0xe59,-0x8(%rbp)
setle  %al
mov    %al,-0x15(%rbp)
mov    -0x15(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
cmpl   $0xed9,-0x8(%rbp)
jg     1446 <xml_digit+0x346>
xor    %eax,%eax
cmpl   $0xed0,-0x8(%rbp)
mov    %al,-0x16(%rbp)
jl     1436 <xml_digit+0x336>
cmpl   $0xed9,-0x8(%rbp)
setle  %al
mov    %al,-0x16(%rbp)
mov    -0x16(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1470 <xml_digit+0x370>
xor    %eax,%eax
cmpl   $0xf20,-0x8(%rbp)
mov    %al,-0x17(%rbp)
jl     1465 <xml_digit+0x365>
cmpl   $0xf29,-0x8(%rbp)
setle  %al
mov    %al,-0x17(%rbp)
mov    -0x17(%rbp),%al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<xml_digit>:
cmp    $0xaef,%edi
jg     111f <xml_digit+0x1f>
cmp    $0x6f9,%edi
jg     1142 <xml_digit+0x42>
cmp    $0x39,%edi
jg     1175 <xml_digit+0x75>
cmp    $0x30,%edi
setge  %al
movzbl %al,%eax
ret
cmp    $0xcef,%edi
ja     115d <xml_digit+0x5d>
cmp    $0xbef,%edi
ja     1185 <xml_digit+0x85>
cmp    $0xb6f,%edi
ja     11b5 <xml_digit+0xb5>
cmp    $0xb66,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0x9ef,%edi
ja     1195 <xml_digit+0x95>
cmp    $0x96f,%edi
ja     11bd <xml_digit+0xbd>
cmp    $0x966,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xe59,%edi
ja     11a5 <xml_digit+0xa5>
cmp    $0xd6f,%edi
ja     11c5 <xml_digit+0xc5>
cmp    $0xd66,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0x669,%edi
ja     11cd <xml_digit+0xcd>
cmp    $0x660,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xc6f,%edi
ja     11d5 <xml_digit+0xd5>
cmp    $0xc66,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xa6f,%edi
ja     11dd <xml_digit+0xdd>
cmp    $0xa66,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xed9,%edi
ja     11ea <xml_digit+0xea>
cmp    $0xed0,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xbe7,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0x9e6,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xe50,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0x6f0,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xce6,%edi
jmp    11e3 <xml_digit+0xe3>
cmp    $0xae6,%edi
setae  %al
movzbl %al,%eax
ret
add    $0xfffff0e0,%edi
cmp    $0xa,%edi
setb   %al
movzbl %al,%eax
ret

LLVM IR (-O0):
define i32 @xml_digit(i32 %0) {
%2 = alloca i32
%3 = alloca i32
store i32 %0, i32* %3
%4 = load i32, i32* %3
%5 = icmp sle i32 %4, 2799
br i1 %5, label %6, label %87
6: ; preds = %1
%7 = load i32, i32* %3
%8 = icmp sle i32 %7, 1785
br i1 %8, label %9, label %42
9: ; preds = %6
%10 = load i32, i32* %3
%11 = icmp sle i32 %10, 57
br i1 %11, label %12, label %21
12: ; preds = %9
%13 = load i32, i32* %3
%14 = icmp sge i32 %13, 48
br i1 %14, label %15, label %18
15: ; preds = %12
%16 = load i32, i32* %3
%17 = icmp sle i32 %16, 57
br label %18
18: ; preds = %15, %12
%19 = phi i1 [ false, %12 ], [ %17, %15 ]
%20 = zext i1 %19 to i32
store i32 %20, i32* %2
br label %180
21: ; preds = %9
%22 = load i32, i32* %3
%23 = icmp sle i32 %22, 1641
br i1 %23, label %24, label %33
24: ; preds = %21
%25 = load i32, i32* %3
%26 = icmp sge i32 %25, 1632
br i1 %26, label %27, label %30
27: ; preds = %24
%28 = load i32, i32* %3
%29 = icmp sle i32 %28, 1641
br label %30
30: ; preds = %27, %24
%31 = phi i1 [ false, %24 ], [ %29, %27 ]
%32 = zext i1 %31 to i32
store i32 %32, i32* %2
br label %180
33: ; preds = %21
%34 = load i32, i32* %3
%35 = icmp sge i32 %34, 1776
br i1 %35, label %36, label %39
36: ; preds = %33
%37 = load i32, i32* %3
%38 = icmp sle i32 %37, 1785
br label %39
39: ; preds = %36, %33
%40 = phi i1 [ false, %33 ], [ %38, %36 ]
%41 = zext i1 %40 to i32
store i32 %41, i32* %2
br label %180
42: ; preds = %6
%43 = load i32, i32* %3
%44 = icmp sle i32 %43, 2543
br i1 %44, label %45, label %66
45: ; preds = %42
%46 = load i32, i32* %3
%47 = icmp sle i32 %46, 2415
br i1 %47, label %48, label %57
48: ; preds = %45
%49 = load i32, i32* %3
%50 = icmp sge i32 %49, 2406
br i1 %50, label %51, label %54
51: ; preds = %48
%52 = load i32, i32* %3
%53 = icmp sle i32 %52, 2415
br label %54
54: ; preds = %51, %48
%55 = phi i1 [ false, %48 ], [ %53, %51 ]
%56 = zext i1 %55 to i32
store i32 %56, i32* %2
br label %180
57: ; preds = %45
%58 = load i32, i32* %3
%59 = icmp sge i32 %58, 2534
br i1 %59, label %60, label %63
60: ; preds = %57
%61 = load i32, i32* %3
%62 = icmp sle i32 %61, 2543
br label %63
63: ; preds = %60, %57
%64 = phi i1 [ false, %57 ], [ %62, %60 ]
%65 = zext i1 %64 to i32
store i32 %65, i32* %2
br label %180
66: ; preds = %42
%67 = load i32, i32* %3
%68 = icmp sle i32 %67, 2671
br i1 %68, label %69, label %78
69: ; preds = %66
%70 = load i32, i32* %3
%71 = icmp sge i32 %70, 2662
br i1 %71, label %72, label %75
72: ; preds = %69
%73 = load i32, i32* %3
%74 = icmp sle i32 %73, 2671
br label %75
75: ; preds = %72, %69
%76 = phi i1 [ false, %69 ], [ %74, %72 ]
%77 = zext i1 %76 to i32
store i32 %77, i32* %2
br label %180
78: ; preds = %66
%79 = load i32, i32* %3
%80 = icmp sge i32 %79, 2790
br i1 %80, label %81, label %84
81: ; preds = %78
%82 = load i32, i32* %3
%83 = icmp sle i32 %82, 2799
br label %84
84: ; preds = %81, %78
%85 = phi i1 [ false, %78 ], [ %83, %81 ]
%86 = zext i1 %85 to i32
store i32 %86, i32* %2
br label %180
87: ; preds = %1
%88 = load i32, i32* %3
%89 = icmp sle i32 %88, 3311
br i1 %89, label %90, label %135
90: ; preds = %87
%91 = load i32, i32* %3
%92 = icmp sle i32 %91, 3055
br i1 %92, label %93, label %114
93: ; preds = %90
%94 = load i32, i32* %3
%95 = icmp sle i32 %94, 2927
br i1 %95, label %96, label %105
96: ; preds = %93
%97 = load i32, i32* %3
%98 = icmp sge i32 %97, 2918
br i1 %98, label %99, label %102
99: ; preds = %96
%100 = load i32, i32* %3
%101 = icmp sle i32 %100, 2927
br label %102
102: ; preds = %99, %96
%103 = phi i1 [ false, %96 ], [ %101, %99 ]
%104 = zext i1 %103 to i32
store i32 %104, i32* %2
br label %180
105: ; preds = %93
%106 = load i32, i32* %3
%107 = icmp sge i32 %106, 3047
br i1 %107, label %108, label %111
108: ; preds = %105
%109 = load i32, i32* %3
%110 = icmp sle i32 %109, 3055
br label %111
111: ; preds = %108, %105
%112 = phi i1 [ false, %105 ], [ %110, %108 ]
%113 = zext i1 %112 to i32
store i32 %113, i32* %2
br label %180
114: ; preds = %90
%115 = load i32, i32* %3
%116 = icmp sle i32 %115, 3183
br i1 %116, label %117, label %126
117: ; preds = %114
%118 = load i32, i32* %3
%119 = icmp sge i32 %118, 3174
br i1 %119, label %120, label %123
120: ; preds = %117
%121 = load i32, i32* %3
%122 = icmp sle i32 %121, 3183
br label %123
123: ; preds = %120, %117
%124 = phi i1 [ false, %117 ], [ %122, %120 ]
%125 = zext i1 %124 to i32
store i32 %125, i32* %2
br label %180
126: ; preds = %114
%127 = load i32, i32* %3
%128 = icmp sge i32 %127, 3302
br i1 %128, label %129, label %132
129: ; preds = %126
%130 = load i32, i32* %3
%131 = icmp sle i32 %130, 3311
br label %132
132: ; preds = %129, %126
%133 = phi i1 [ false, %126 ], [ %131, %129 ]
%134 = zext i1 %133 to i32
store i32 %134, i32* %2
br label %180
135: ; preds = %87
%136 = load i32, i32* %3
%137 = icmp sle i32 %136, 3673
br i1 %137, label %138, label %159
138: ; preds = %135
%139 = load i32, i32* %3
%140 = icmp sle i32 %139, 3439
br i1 %140, label %141, label %150
141: ; preds = %138
%142 = load i32, i32* %3
%143 = icmp sge i32 %142, 3430
br i1 %143, label %144, label %147
144: ; preds = %141
%145 = load i32, i32* %3
%146 = icmp sle i32 %145, 3439
br label %147
147: ; preds = %144, %141
%148 = phi i1 [ false, %141 ], [ %146, %144 ]
%149 = zext i1 %148 to i32
store i32 %149, i32* %2
br label %180
150: ; preds = %138
%151 = load i32, i32* %3
%152 = icmp sge i32 %151, 3664
br i1 %152, label %153, label %156
153: ; preds = %150
%154 = load i32, i32* %3
%155 = icmp sle i32 %154, 3673
br label %156
156: ; preds = %153, %150
%157 = phi i1 [ false, %150 ], [ %155, %153 ]
%158 = zext i1 %157 to i32
store i32 %158, i32* %2
br label %180
159: ; preds = %135
%160 = load i32, i32* %3
%161 = icmp sle i32 %160, 3801
br i1 %161, label %162, label %171
162: ; preds = %159
%163 = load i32, i32* %3
%164 = icmp sge i32 %163, 3792
br i1 %164, label %165, label %168
165: ; preds = %162
%166 = load i32, i32* %3
%167 = icmp sle i32 %166, 3801
br label %168
168: ; preds = %165, %162
%169 = phi i1 [ false, %162 ], [ %167, %165 ]
%170 = zext i1 %169 to i32
store i32 %170, i32* %2
br label %180
171: ; preds = %159
%172 = load i32, i32* %3
%173 = icmp sge i32 %172, 3872
br i1 %173, label %174, label %177
174: ; preds = %171
%175 = load i32, i32* %3
%176 = icmp sle i32 %175, 3881
br label %177
177: ; preds = %174, %171
%178 = phi i1 [ false, %171 ], [ %176, %174 ]
%179 = zext i1 %178 to i32
store i32 %179, i32* %2
br label %180
180: ; preds = %177, %168, %156, %147, %132, %123, %111, %102, %84, %75, %63, %54, %39, %30, %18
%181 = load i32, i32* %2
ret i32 %181
}

LLVM IR (-O2):
define i32 @xml_digit(i32 %0) {
%2 = icmp slt i32 %0, 2800
br i1 %2, label %3, label %29
3: ; preds = %1
%4 = icmp slt i32 %0, 1786
br i1 %4, label %5, label %15
5: ; preds = %3
%6 = icmp slt i32 %0, 58
br i1 %6, label %7, label %9
7: ; preds = %5
%8 = icmp sgt i32 %0, 47
br label %60
9: ; preds = %5
%10 = icmp ult i32 %0, 1642
br i1 %10, label %11, label %13
11: ; preds = %9
%12 = icmp ugt i32 %0, 1631
br label %60
13: ; preds = %9
%14 = icmp ugt i32 %0, 1775
br label %60
15: ; preds = %3
%16 = icmp ult i32 %0, 2544
br i1 %16, label %17, label %23
17: ; preds = %15
%18 = icmp ult i32 %0, 2416
br i1 %18, label %19, label %21
19: ; preds = %17
%20 = icmp ugt i32 %0, 2405
br label %60
21: ; preds = %17
%22 = icmp ugt i32 %0, 2533
br label %60
23: ; preds = %15
%24 = icmp ult i32 %0, 2672
br i1 %24, label %25, label %27
25: ; preds = %23
%26 = icmp ugt i32 %0, 2661
br label %60
27: ; preds = %23
%28 = icmp ugt i32 %0, 2789
br label %60
29: ; preds = %1
%30 = icmp ult i32 %0, 3312
br i1 %30, label %31, label %45
31: ; preds = %29
%32 = icmp ult i32 %0, 3056
br i1 %32, label %33, label %39
33: ; preds = %31
%34 = icmp ult i32 %0, 2928
br i1 %34, label %35, label %37
35: ; preds = %33
%36 = icmp ugt i32 %0, 2917
br label %60
37: ; preds = %33
%38 = icmp ugt i32 %0, 3046
br label %60
39: ; preds = %31
%40 = icmp ult i32 %0, 3184
br i1 %40, label %41, label %43
41: ; preds = %39
%42 = icmp ugt i32 %0, 3173
br label %60
43: ; preds = %39
%44 = icmp ugt i32 %0, 3301
br label %60
45: ; preds = %29
%46 = icmp ult i32 %0, 3674
br i1 %46, label %47, label %53
47: ; preds = %45
%48 = icmp ult i32 %0, 3440
br i1 %48, label %49, label %51
49: ; preds = %47
%50 = icmp ugt i32 %0, 3429
br label %60
51: ; preds = %47
%52 = icmp ugt i32 %0, 3663
br label %60
53: ; preds = %45
%54 = icmp ult i32 %0, 3802
br i1 %54, label %55, label %57
55: ; preds = %53
%56 = icmp ugt i32 %0, 3791
br label %60
57: ; preds = %53
%58 = add nsw i32 %0, -3872
%59 = icmp ult i32 %58, 10
br label %60
60: ; preds = %57, %55, %51, %49, %43, %41, %37, %35, %27, %25, %21, %19, %13, %11, %7
%61 = phi i1 [ %8, %7 ], [ %12, %11 ], [ %14, %13 ], [ %20, %19 ], [ %22, %21 ], [ %26, %25 ], [ %28, %27 ], [ %36, %35 ], [ %38, %37 ], [ %42, %41 ], [ %44, %43 ], [ %50, %49 ], [ %52, %51 ], [ %56, %55 ], [ %59, %57 ]
%62 = zext i1 %61 to i32
ret i32 %62
}