isa(cp, what) register char *cp;
register int what;
{
  if (cp == 0)
    return ((what & 16) != 0);
  if (cp[1] == 0) {
    if (what & 1 && (*cp == '+' || *cp == '-'))
      return (1);
    if (what & 2 && (*cp == '*' || *cp == '/' || *cp == '%'))
      return (1);
    if (what & 16 && (*cp == '(' || *cp == ')' || *cp == '!' || *cp == '~' ||
                      *cp == '^' || *cp == '"'))
      return (1);
  } else if (cp[2] == 0) {
    if (what & 16) {
      if (cp[0] == '|' && cp[1] == '&')
        return (1);
      if (cp[0] == '<' && cp[1] == '<')
        return (1);
      if (cp[0] == '>' && cp[1] == '>')
        return (1);
    }
    if (what & 4) {
      if (cp[0] == '=') {
        if (cp[1] == '=')
          return (1);
        if (cp[1] == '~')
          return (7);
      } else if (cp[0] == '!') {
        if (cp[1] == '=')
          return (6);
        if (cp[1] == '~')
          return (8);
      }
    }
  }
  if (what & 8) {
    if (*cp == '<')
      return (4);
    if (*cp == '>')
      return (2);
  }
  return (0);
}


x86 assembly (clang, -O0):
<isa>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x10(%rbp)
mov    %esi,-0x14(%rbp)
cmpq   $0x0,-0x10(%rbp)
jne    112f <isa+0x2f>
mov    -0x14(%rbp),%eax
and    $0x10,%eax
cmp    $0x0,%eax
setne  %al
and    $0x1,%al
movzbl %al,%eax
mov    %eax,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x0,%eax
jne    1246 <isa+0x146>
mov    -0x14(%rbp),%eax
and    $0x1,%eax
cmp    $0x0,%eax
je     117b <isa+0x7b>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2b,%eax
je     116f <isa+0x6f>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2d,%eax
jne    117b <isa+0x7b>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x14(%rbp),%eax
and    $0x2,%eax
cmp    $0x0,%eax
je     11c6 <isa+0xc6>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2a,%eax
je     11ba <isa+0xba>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x2f,%eax
je     11ba <isa+0xba>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x25,%eax
jne    11c6 <isa+0xc6>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x14(%rbp),%eax
and    $0x10,%eax
cmp    $0x0,%eax
je     1241 <isa+0x141>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x28,%eax
je     1235 <isa+0x135>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x29,%eax
je     1235 <isa+0x135>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x21,%eax
je     1235 <isa+0x135>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x7e,%eax
je     1235 <isa+0x135>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x5e,%eax
je     1235 <isa+0x135>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x22,%eax
jne    1241 <isa+0x141>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
jmp    13b3 <isa+0x2b3>
mov    -0x10(%rbp),%rax
movsbl 0x2(%rax),%eax
cmp    $0x0,%eax
jne    13ae <isa+0x2ae>
mov    -0x14(%rbp),%eax
and    $0x10,%eax
cmp    $0x0,%eax
je     12f2 <isa+0x1f2>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x7c,%eax
jne    1293 <isa+0x193>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x26,%eax
jne    1293 <isa+0x193>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3c,%eax
jne    12c0 <isa+0x1c0>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x3c,%eax
jne    12c0 <isa+0x1c0>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3e,%eax
jne    12ed <isa+0x1ed>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x3e,%eax
jne    12ed <isa+0x1ed>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
jmp    12f2 <isa+0x1f2>
mov    -0x14(%rbp),%eax
and    $0x4,%eax
cmp    $0x0,%eax
je     13a9 <isa+0x2a9>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3d,%eax
jne    1350 <isa+0x250>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x3d,%eax
jne    132e <isa+0x22e>
movl   $0x1,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x7e,%eax
jne    134b <isa+0x24b>
movl   $0x7,-0x4(%rbp)
jmp    1406 <isa+0x306>
jmp    13a4 <isa+0x2a4>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x21,%eax
jne    139f <isa+0x29f>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x3d,%eax
jne    137d <isa+0x27d>
movl   $0x6,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl 0x1(%rax),%eax
cmp    $0x7e,%eax
jne    139a <isa+0x29a>
movl   $0x8,-0x4(%rbp)
jmp    1406 <isa+0x306>
jmp    139f <isa+0x29f>
jmp    13a4 <isa+0x2a4>
jmp    13a9 <isa+0x2a9>
jmp    13ae <isa+0x2ae>
jmp    13b3 <isa+0x2b3>
mov    -0x14(%rbp),%eax
and    $0x8,%eax
cmp    $0x0,%eax
je     13ff <isa+0x2ff>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3c,%eax
jne    13de <isa+0x2de>
movl   $0x4,-0x4(%rbp)
jmp    1406 <isa+0x306>
mov    -0x10(%rbp),%rax
movsbl (%rax),%eax
cmp    $0x3e,%eax
jne    13fa <isa+0x2fa>
movl   $0x2,-0x4(%rbp)
jmp    1406 <isa+0x306>
jmp    13ff <isa+0x2ff>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<isa>:
test   %rdi,%rdi
je     1130 <isa+0x30>
mov    0x1(%rdi),%cl
test   %cl,%cl
je     1139 <isa+0x39>
cmpb   $0x0,0x2(%rdi)
je     1189 <isa+0x89>
xor    %eax,%eax
test   $0x8,%sil
je     1188 <isa+0x88>
mov    (%rdi),%al
xor    %ecx,%ecx
cmp    $0x3e,%al
sete   %cl
add    %ecx,%ecx
cmp    $0x3c,%al
mov    $0x4,%eax
cmovne %ecx,%eax
ret
shr    $0x4,%esi
and    $0x1,%esi
mov    %esi,%eax
ret
test   $0x1,%sil
je     1150 <isa+0x50>
mov    (%rdi),%cl
mov    $0x1,%eax
cmp    $0x2b,%cl
je     1188 <isa+0x88>
cmp    $0x2d,%cl
je     1188 <isa+0x88>
test   $0x2,%sil
jne    11bf <isa+0xbf>
test   $0x10,%sil
je     1112 <isa+0x12>
mov    (%rdi),%r8b
mov    $0x1,%eax
lea    -0x21(%r8),%edx
cmp    $0x3d,%dl
ja     1218 <isa+0x118>
movzbl %dl,%edx
movabs $0x2000000000000183,%rcx
bt     %rdx,%rcx
jae    1218 <isa+0x118>
ret
test   $0x10,%sil
jne    11e2 <isa+0xe2>
test   $0x4,%sil
je     1112 <isa+0x12>
mov    (%rdi),%al
cmp    $0x21,%al
je     1204 <isa+0x104>
cmp    $0x3d,%al
jne    1112 <isa+0x12>
cmp    $0x3d,%cl
je     1235 <isa+0x135>
cmp    $0x7e,%cl
jne    1112 <isa+0x12>
mov    $0x7,%eax
ret
movzbl (%rdi),%ecx
cmp    $0x2f,%rcx
ja     1156 <isa+0x56>
mov    $0x1,%eax
movabs $0x842000000000,%rdx
bt     %rcx,%rdx
jb     1188 <isa+0x88>
jmp    1156 <isa+0x56>
mov    (%rdi),%dl
mov    $0x1,%eax
cmp    $0x7c,%dl
jne    11f3 <isa+0xf3>
cmp    $0x26,%cl
je     1188 <isa+0x88>
cmp    $0x3e,%dl
je     1227 <isa+0x127>
cmp    $0x3c,%dl
jne    118f <isa+0x8f>
cmp    $0x3c,%cl
je     1188 <isa+0x88>
jmp    118f <isa+0x8f>
cmp    $0x3d,%cl
je     123b <isa+0x13b>
cmp    $0x7e,%cl
jne    1112 <isa+0x12>
mov    $0x8,%eax
ret
cmp    $0x7e,%r8b
jne    1112 <isa+0x12>
jmp    1188 <isa+0x88>
cmp    $0x3e,%cl
je     1188 <isa+0x88>
jmp    118f <isa+0x8f>
mov    $0x1,%eax
ret
mov    $0x6,%eax
ret

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

LLVM IR (-O2):
define i32 @isa(i8* %0, i32 %1) {
%3 = icmp eq i8* %0, null
br i1 %3, label %4, label %7
4: ; preds = %2
%5 = lshr i32 %1, 4
%6 = and i32 %5, 1
br label %61
7: ; preds = %2
%8 = getelementptr inbounds i8, i8* %0, i64 1
%9 = load i8, i8* %8
%10 = icmp eq i8 %9, 0
br i1 %10, label %11, label %26
11: ; preds = %7
%12 = and i32 %1, 1
%13 = icmp eq i32 %12, 0
br i1 %13, label %16, label %14
14: ; preds = %11
%15 = load i8, i8* %0
switch i8 %15, label %16 [
i8 43, label %61
i8 45, label %61
]
16: ; preds = %14, %11
%17 = and i32 %1, 2
%18 = icmp eq i32 %17, 0
br i1 %18, label %21, label %19
19: ; preds = %16
%20 = load i8, i8* %0
switch i8 %20, label %21 [
i8 42, label %61
i8 47, label %61
i8 37, label %61
]
21: ; preds = %19, %16
%22 = and i32 %1, 16
%23 = icmp eq i32 %22, 0
br i1 %23, label %52, label %24
24: ; preds = %21
%25 = load i8, i8* %0
switch i8 %25, label %52 [
i8 40, label %61
i8 41, label %61
i8 33, label %61
i8 126, label %61
i8 94, label %61
i8 34, label %61
]
26: ; preds = %7
%27 = getelementptr inbounds i8, i8* %0, i64 2
%28 = load i8, i8* %27
%29 = icmp eq i8 %28, 0
br i1 %29, label %30, label %52
30: ; preds = %26
%31 = and i32 %1, 16
%32 = icmp eq i32 %31, 0
br i1 %32, label %43, label %33
33: ; preds = %30
%34 = load i8, i8* %0
%35 = icmp eq i8 %34, 124
%36 = icmp eq i8 %9, 38
%37 = select i1 %35, i1 %36, i1 false
br i1 %37, label %61, label %38
38: ; preds = %33
switch i8 %34, label %43 [
i8 60, label %39
i8 62, label %41
]
39: ; preds = %38
%40 = icmp eq i8 %9, 60
br i1 %40, label %61, label %43
41: ; preds = %38
%42 = icmp eq i8 %9, 62
br i1 %42, label %61, label %43
43: ; preds = %38, %39, %41, %30
%44 = and i32 %1, 4
%45 = icmp eq i32 %44, 0
br i1 %45, label %52, label %46
46: ; preds = %43
%47 = load i8, i8* %0
switch i8 %47, label %52 [
i8 61, label %48
i8 33, label %50
]
48: ; preds = %46
switch i8 %9, label %52 [
i8 61, label %61
i8 126, label %49
]
49: ; preds = %48
br label %61
50: ; preds = %46
switch i8 %9, label %52 [
i8 61, label %61
i8 126, label %51
]
51: ; preds = %50
br label %61
52: ; preds = %50, %46, %48, %24, %26, %43, %21
%53 = and i32 %1, 8
%54 = icmp eq i32 %53, 0
br i1 %54, label %61, label %55
55: ; preds = %52
%56 = load i8, i8* %0
%57 = icmp eq i8 %56, 62
%58 = select i1 %57, i32 2, i32 0
%59 = icmp eq i8 %56, 60
%60 = select i1 %59, i32 4, i32 %58
br label %61
61: ; preds = %52, %55, %50, %48, %41, %39, %33, %24, %24, %24, %24, %24, %24, %19, %19, %19, %14, %14, %51, %49, %4
%62 = phi i32 [ %6, %4 ], [ 7, %49 ], [ 8, %51 ], [ 1, %14 ], [ 1, %14 ], [ 1, %19 ], [ 1, %19 ], [ 1, %19 ], [ 1, %24 ], [ 1, %24 ], [ 1, %24 ], [ 1, %24 ], [ 1, %24 ], [ 1, %24 ], [ 1, %33 ], [ 1, %39 ], [ 1, %41 ], [ 1, %48 ], [ 6, %50 ], [ %60, %55 ], [ 0, %52 ]
ret i32 %62
}