#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int C1__f(int, int);
int L1__f(char *, int /*<<< orphan*/);
int T0__f(int);
int T1__f(int);
int T2__f(int, int);
int T3__f(int, int, int);
int T4__f(int, int, int);
int T5__f(int, int);
int T6__f(int, int);
int T6a__f(int, int, int);
int T6b__f(int, int, int);
int T7__f(int, int);
int T7a__f(int, int, int);
int T7b__f(int, int, int);
int T8a__f(int, int, int);
int T8b__f(int, int, int);
int T8c__f(int, int, int);
int T8d__f(int, int, int);
int /*<<< orphan*/ assert(int);
int /*<<< orphan*/ printf(char *);
char *strdup(char *);
int /*<<< orphan*/ strlen(char *);
int main(void) {
  char *str;
  assert(T0__f(0) == 0);
  assert(T0__f(1) == 1);
  assert(T0__f(-123) == -123);
  assert(T1__f(0) == 0);
  assert(T1__f(1) == -1);
  assert(T1__f(-123) == 123);
  assert(T2__f(0, 0) == 0);
  assert(T2__f(1, 0) == 1);
  assert(T2__f(0, 1) == -1);
  assert(T2__f(12, -123) == 135);
  assert(T3__f(1, 0, 0) == 0);
  assert(T3__f(1, 1, 0) == 1);
  assert(T3__f(1, 0, 1) == 1);
  assert(T3__f(1, 12, -123) == -111);
  assert(T3__f(0, 0, 0) == 0);
  assert(T3__f(0, 1, 0) == 1);
  assert(T3__f(0, 0, 1) == -1);
  assert(T3__f(0, 12, -123) == 135);
  assert(T4__f(1, 0, 0) == 0);
  assert(T4__f(1, 1, 0) == 1);
  assert(T4__f(1, 0, 1) == 1);
  assert(T4__f(1, 12, -123) == -111);
  assert(T4__f(0, 0, 0) == 0);
  assert(T4__f(0, 1, 0) == 1);
  assert(T4__f(0, 0, 1) == -1);
  assert(T4__f(0, 12, -123) == 135);
  assert(T5__f(5, 3) == 2);
  assert(T5__f(3, 5) == 2);
  assert(T6__f(0, 0) == -9);
  assert(T6__f(0, 1) == -9);
  assert(T6__f(1, 0) == -9);
  assert(T6__f(1, 1) == 9);
  assert(T6a__f(0, 0, 0) == -9);
  assert(T6a__f(0, 0, 1) == -9);
  assert(T6a__f(0, 1, 0) == -9);
  assert(T6a__f(0, 1, 1) == -9);
  assert(T6a__f(1, 0, 0) == -9);
  assert(T6a__f(1, 0, 1) == -9);
  assert(T6a__f(1, 1, 0) == -9);
  assert(T6a__f(1, 1, 1) == 9);
  assert(T6b__f(0, 0, 0) == -9);
  assert(T6b__f(0, 0, 1) == -9);
  assert(T6b__f(0, 1, 0) == -9);
  assert(T6b__f(0, 1, 1) == -9);
  assert(T6b__f(1, 0, 0) == -9);
  assert(T6b__f(1, 0, 1) == -9);
  assert(T6b__f(1, 1, 0) == -9);
  assert(T6b__f(1, 1, 1) == 9);
  assert(T7__f(0, 0) == -9);
  assert(T7__f(0, 1) == 9);
  assert(T7__f(1, 0) == 9);
  assert(T7__f(1, 1) == 9);
  assert(T7a__f(0, 0, 0) == -9);
  assert(T7a__f(0, 0, 1) == 9);
  assert(T7a__f(0, 1, 0) == 9);
  assert(T7a__f(0, 1, 1) == 9);
  assert(T7a__f(1, 0, 0) == 9);
  assert(T7a__f(1, 0, 1) == 9);
  assert(T7a__f(1, 1, 0) == 9);
  assert(T7a__f(1, 1, 1) == 9);
  assert(T7b__f(0, 0, 0) == -9);
  assert(T7b__f(0, 0, 1) == 9);
  assert(T7b__f(0, 1, 0) == 9);
  assert(T7b__f(0, 1, 1) == 9);
  assert(T7b__f(1, 0, 0) == 9);
  assert(T7b__f(1, 0, 1) == 9);
  assert(T7b__f(1, 1, 0) == 9);
  assert(T7b__f(1, 1, 1) == 9);
  assert(T8a__f(0, 0, 0) == -9);
  assert(T8a__f(0, 0, 1) == 9);
  assert(T8a__f(0, 1, 0) == -9);
  assert(T8a__f(0, 1, 1) == 9);
  assert(T8a__f(1, 0, 0) == -9);
  assert(T8a__f(1, 0, 1) == 9);
  assert(T8a__f(1, 1, 0) == 9);
  assert(T8a__f(1, 1, 1) == 9);
  assert(T8b__f(0, 0, 0) == -9);
  assert(T8b__f(0, 0, 1) == -9);
  assert(T8b__f(0, 1, 0) == -9);
  assert(T8b__f(0, 1, 1) == -9);
  assert(T8b__f(1, 0, 0) == -9);
  assert(T8b__f(1, 0, 1) == 9);
  assert(T8b__f(1, 1, 0) == 9);
  assert(T8b__f(1, 1, 1) == 9);
  assert(T8c__f(0, 0, 0) == -9);
  assert(T8c__f(0, 0, 1) == -9);
  assert(T8c__f(0, 1, 0) == -9);
  assert(T8c__f(0, 1, 1) == 9);
  assert(T8c__f(1, 0, 0) == -9);
  assert(T8c__f(1, 0, 1) == 9);
  assert(T8c__f(1, 1, 0) == -9);
  assert(T8c__f(1, 1, 1) == 9);
  assert(T8d__f(0, 0, 0) == -9);
  assert(T8d__f(0, 0, 1) == -9);
  assert(T8d__f(0, 1, 0) == -9);
  assert(T8d__f(0, 1, 1) == 9);
  assert(T8d__f(1, 0, 0) == 9);
  assert(T8d__f(1, 0, 1) == 9);
  assert(T8d__f(1, 1, 0) == 9);
  assert(T8d__f(1, 1, 1) == 9);
  str = strdup("");
  assert(L1__f(str, strlen(str)) == 0);
  str = strdup("a");
  assert(L1__f(str, strlen(str)) == 1);
  str = strdup("ab");
  assert(L1__f(str, strlen(str)) == 2);
  str = strdup("12345");
  assert(L1__f(str, strlen(str)) == 5);
  assert(C1__f(5, 3) == 2);
  printf("### All tests successful.\n");
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
movl   $0x0,-0x4(%rbp)
xor    %edi,%edi
call   10a0 <T0__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
call   10a0 <T0__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0xffffff85,%edi
call   10a0 <T0__f@plt>
cmp    $0xffffff85,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
call   1040 <T1__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
call   1040 <T1__f@plt>
cmp    $0xffffffff,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0xffffff85,%edi
call   1040 <T1__f@plt>
cmp    $0x7b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    %esi,%edi
call   10c0 <T2__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   10c0 <T2__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   10c0 <T2__f@plt>
cmp    $0xffffffff,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0xc,%edi
mov    $0xffffff85,%esi
call   10c0 <T2__f@plt>
cmp    $0x87,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1050 <T3__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1050 <T3__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1050 <T3__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1050 <T3__f@plt>
cmp    $0xffffff91,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1050 <T3__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1050 <T3__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1050 <T3__f@plt>
cmp    $0xffffffff,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1050 <T3__f@plt>
cmp    $0x87,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1080 <T4__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1080 <T4__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1080 <T4__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1080 <T4__f@plt>
cmp    $0xffffff91,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1080 <T4__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1080 <T4__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1080 <T4__f@plt>
cmp    $0xffffffff,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1080 <T4__f@plt>
cmp    $0x87,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x5,%edi
mov    $0x3,%esi
call   1120 <T5__f@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x3,%edi
mov    $0x5,%esi
call   1120 <T5__f@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    %esi,%edi
call   10f0 <T6__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   10f0 <T6__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   10f0 <T6__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   10f0 <T6__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1110 <T6a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1110 <T6a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1130 <T6b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1130 <T6b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    %esi,%edi
call   1160 <T7__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1160 <T7__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1160 <T7__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
mov    %esi,%edi
call   1160 <T7__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   10b0 <T7a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   10b0 <T7a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1090 <T7b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1090 <T7b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1170 <T8a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1170 <T8a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1170 <T8a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1170 <T8a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1170 <T8a__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1170 <T8a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1170 <T8a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1170 <T8a__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1150 <T8b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1150 <T8b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1150 <T8b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1150 <T8b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1150 <T8b__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1150 <T8b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1150 <T8b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1150 <T8b__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   10d0 <T8c__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   10d0 <T8c__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   10d0 <T8c__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   10d0 <T8c__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   10d0 <T8c__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   10d0 <T8c__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   10d0 <T8c__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   10d0 <T8c__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1100 <T8d__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %esi,%esi
mov    $0x1,%edx
mov    %esi,%edi
call   1100 <T8d__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edx,%edx
mov    $0x1,%esi
mov    %edx,%edi
call   1100 <T8d__f@plt>
cmp    $0xfffffff7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%edx
mov    %edx,%esi
call   1100 <T8d__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %edx,%edx
mov    %edx,%esi
call   1100 <T8d__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
xor    %esi,%esi
mov    %edx,%edi
call   1100 <T8d__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%esi
xor    %edx,%edx
mov    %esi,%edi
call   1100 <T8d__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x1,%edx
mov    %edx,%edi
mov    %edx,%esi
call   1100 <T8d__f@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
lea    0x237(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x30(%rbp)
mov    -0x10(%rbp),%rdi
call   1060 <strlen@plt>
mov    -0x30(%rbp),%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
cmp    $0x0,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
lea    0x1d6(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x28(%rbp)
mov    -0x10(%rbp),%rdi
call   1060 <strlen@plt>
mov    -0x28(%rbp),%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
lea    0x19c(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x20(%rbp)
mov    -0x10(%rbp),%rdi
call   1060 <strlen@plt>
mov    -0x20(%rbp),%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
lea    0x163(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,-0x10(%rbp)
mov    -0x10(%rbp),%rax
mov    %rax,-0x18(%rbp)
mov    -0x10(%rbp),%rdi
call   1060 <strlen@plt>
mov    -0x18(%rbp),%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
cmp    $0x5,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
mov    $0x5,%edi
mov    $0x3,%esi
call   1140 <C1__f@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
call   10e0 <assert@plt>
lea    0x10e(%rip),%rdi
call   1070 <printf@plt>
xor    %eax,%eax
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
xor    %edi,%edi
call   10a0 <T0__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
call   10a0 <T0__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0xffffff85,%edi
call   10a0 <T0__f@plt>
xor    %edi,%edi
cmp    $0xffffff85,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
call   1040 <T1__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
call   1040 <T1__f@plt>
xor    %edi,%edi
cmp    $0xffffffff,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0xffffff85,%edi
call   1040 <T1__f@plt>
xor    %edi,%edi
cmp    $0x7b,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
call   10c0 <T2__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   10c0 <T2__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   10c0 <T2__f@plt>
xor    %edi,%edi
cmp    $0xffffffff,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0xc,%edi
mov    $0xffffff85,%esi
call   10c0 <T2__f@plt>
xor    %edi,%edi
cmp    $0x87,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0xffffff91,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0xffffffff,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1060 <T3__f@plt>
xor    %edi,%edi
cmp    $0x87,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0xffffff91,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0xffffffff,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0xc,%esi
mov    $0xffffff85,%edx
call   1080 <T4__f@plt>
xor    %edi,%edi
cmp    $0x87,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x5,%edi
mov    $0x3,%esi
call   1120 <T5__f@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x3,%edi
mov    $0x5,%esi
call   1120 <T5__f@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
call   10f0 <T6__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   10f0 <T6__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   10f0 <T6__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   10f0 <T6__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1110 <T6a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1130 <T6b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
call   1160 <T7__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
call   1160 <T7__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
call   1160 <T7__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
call   1160 <T7__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   10b0 <T7a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1090 <T7b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1170 <T8a__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1150 <T8b__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   10d0 <T8c__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0xfffffff7,%eax
sete   %dil
call   10e0 <assert@plt>
xor    %edi,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
xor    %edx,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
xor    %esi,%esi
mov    $0x1,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
xor    %edx,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x1,%edi
mov    $0x1,%esi
mov    $0x1,%edx
call   1100 <T8d__f@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
call   10e0 <assert@plt>
lea    0x289(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,%rbx
mov    %rax,%rdi
call   1070 <strlen@plt>
mov    %rbx,%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
xor    %edi,%edi
test   %eax,%eax
sete   %dil
call   10e0 <assert@plt>
lea    0x237(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,%rbx
mov    %rax,%rdi
call   1070 <strlen@plt>
mov    %rbx,%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
call   10e0 <assert@plt>
lea    0x20a(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,%rbx
mov    %rax,%rdi
call   1070 <strlen@plt>
mov    %rbx,%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
call   10e0 <assert@plt>
lea    0x1de(%rip),%rdi
call   1180 <strdup@plt>
mov    %rax,%rbx
mov    %rax,%rdi
call   1070 <strlen@plt>
mov    %rbx,%rdi
mov    %eax,%esi
call   1030 <L1__f@plt>
xor    %edi,%edi
cmp    $0x5,%eax
sete   %dil
call   10e0 <assert@plt>
mov    $0x5,%edi
mov    $0x3,%esi
call   1140 <C1__f@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
call   10e0 <assert@plt>
lea    0x198(%rip),%rdi
call   1050 <puts@plt>
xor    %eax,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [1 x i8] zeroinitializer
@.str.1 = [2 x i8] c"a\00"
@.str.2 = [3 x i8] c"ab\00"
@.str.3 = [6 x i8] c"12345\00"
@.str.4 = [27 x i8] c"### All tests successful.\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i8*
store i32 0, i32* %1
%3 = call i32 @T0__f(i32 0)
%4 = icmp eq i32 %3, 0
%5 = zext i1 %4 to i32
%6 = call i32 @assert(i32 %5)
%7 = call i32 @T0__f(i32 1)
%8 = icmp eq i32 %7, 1
%9 = zext i1 %8 to i32
%10 = call i32 @assert(i32 %9)
%11 = call i32 @T0__f(i32 -123)
%12 = icmp eq i32 %11, -123
%13 = zext i1 %12 to i32
%14 = call i32 @assert(i32 %13)
%15 = call i32 @T1__f(i32 0)
%16 = icmp eq i32 %15, 0
%17 = zext i1 %16 to i32
%18 = call i32 @assert(i32 %17)
%19 = call i32 @T1__f(i32 1)
%20 = icmp eq i32 %19, -1
%21 = zext i1 %20 to i32
%22 = call i32 @assert(i32 %21)
%23 = call i32 @T1__f(i32 -123)
%24 = icmp eq i32 %23, 123
%25 = zext i1 %24 to i32
%26 = call i32 @assert(i32 %25)
%27 = call i32 @T2__f(i32 0, i32 0)
%28 = icmp eq i32 %27, 0
%29 = zext i1 %28 to i32
%30 = call i32 @assert(i32 %29)
%31 = call i32 @T2__f(i32 1, i32 0)
%32 = icmp eq i32 %31, 1
%33 = zext i1 %32 to i32
%34 = call i32 @assert(i32 %33)
%35 = call i32 @T2__f(i32 0, i32 1)
%36 = icmp eq i32 %35, -1
%37 = zext i1 %36 to i32
%38 = call i32 @assert(i32 %37)
%39 = call i32 @T2__f(i32 12, i32 -123)
%40 = icmp eq i32 %39, 135
%41 = zext i1 %40 to i32
%42 = call i32 @assert(i32 %41)
%43 = call i32 @T3__f(i32 1, i32 0, i32 0)
%44 = icmp eq i32 %43, 0
%45 = zext i1 %44 to i32
%46 = call i32 @assert(i32 %45)
%47 = call i32 @T3__f(i32 1, i32 1, i32 0)
%48 = icmp eq i32 %47, 1
%49 = zext i1 %48 to i32
%50 = call i32 @assert(i32 %49)
%51 = call i32 @T3__f(i32 1, i32 0, i32 1)
%52 = icmp eq i32 %51, 1
%53 = zext i1 %52 to i32
%54 = call i32 @assert(i32 %53)
%55 = call i32 @T3__f(i32 1, i32 12, i32 -123)
%56 = icmp eq i32 %55, -111
%57 = zext i1 %56 to i32
%58 = call i32 @assert(i32 %57)
%59 = call i32 @T3__f(i32 0, i32 0, i32 0)
%60 = icmp eq i32 %59, 0
%61 = zext i1 %60 to i32
%62 = call i32 @assert(i32 %61)
%63 = call i32 @T3__f(i32 0, i32 1, i32 0)
%64 = icmp eq i32 %63, 1
%65 = zext i1 %64 to i32
%66 = call i32 @assert(i32 %65)
%67 = call i32 @T3__f(i32 0, i32 0, i32 1)
%68 = icmp eq i32 %67, -1
%69 = zext i1 %68 to i32
%70 = call i32 @assert(i32 %69)
%71 = call i32 @T3__f(i32 0, i32 12, i32 -123)
%72 = icmp eq i32 %71, 135
%73 = zext i1 %72 to i32
%74 = call i32 @assert(i32 %73)
%75 = call i32 @T4__f(i32 1, i32 0, i32 0)
%76 = icmp eq i32 %75, 0
%77 = zext i1 %76 to i32
%78 = call i32 @assert(i32 %77)
%79 = call i32 @T4__f(i32 1, i32 1, i32 0)
%80 = icmp eq i32 %79, 1
%81 = zext i1 %80 to i32
%82 = call i32 @assert(i32 %81)
%83 = call i32 @T4__f(i32 1, i32 0, i32 1)
%84 = icmp eq i32 %83, 1
%85 = zext i1 %84 to i32
%86 = call i32 @assert(i32 %85)
%87 = call i32 @T4__f(i32 1, i32 12, i32 -123)
%88 = icmp eq i32 %87, -111
%89 = zext i1 %88 to i32
%90 = call i32 @assert(i32 %89)
%91 = call i32 @T4__f(i32 0, i32 0, i32 0)
%92 = icmp eq i32 %91, 0
%93 = zext i1 %92 to i32
%94 = call i32 @assert(i32 %93)
%95 = call i32 @T4__f(i32 0, i32 1, i32 0)
%96 = icmp eq i32 %95, 1
%97 = zext i1 %96 to i32
%98 = call i32 @assert(i32 %97)
%99 = call i32 @T4__f(i32 0, i32 0, i32 1)
%100 = icmp eq i32 %99, -1
%101 = zext i1 %100 to i32
%102 = call i32 @assert(i32 %101)
%103 = call i32 @T4__f(i32 0, i32 12, i32 -123)
%104 = icmp eq i32 %103, 135
%105 = zext i1 %104 to i32
%106 = call i32 @assert(i32 %105)
%107 = call i32 @T5__f(i32 5, i32 3)
%108 = icmp eq i32 %107, 2
%109 = zext i1 %108 to i32
%110 = call i32 @assert(i32 %109)
%111 = call i32 @T5__f(i32 3, i32 5)
%112 = icmp eq i32 %111, 2
%113 = zext i1 %112 to i32
%114 = call i32 @assert(i32 %113)
%115 = call i32 @T6__f(i32 0, i32 0)
%116 = icmp eq i32 %115, -9
%117 = zext i1 %116 to i32
%118 = call i32 @assert(i32 %117)
%119 = call i32 @T6__f(i32 0, i32 1)
%120 = icmp eq i32 %119, -9
%121 = zext i1 %120 to i32
%122 = call i32 @assert(i32 %121)
%123 = call i32 @T6__f(i32 1, i32 0)
%124 = icmp eq i32 %123, -9
%125 = zext i1 %124 to i32
%126 = call i32 @assert(i32 %125)
%127 = call i32 @T6__f(i32 1, i32 1)
%128 = icmp eq i32 %127, 9
%129 = zext i1 %128 to i32
%130 = call i32 @assert(i32 %129)
%131 = call i32 @T6a__f(i32 0, i32 0, i32 0)
%132 = icmp eq i32 %131, -9
%133 = zext i1 %132 to i32
%134 = call i32 @assert(i32 %133)
%135 = call i32 @T6a__f(i32 0, i32 0, i32 1)
%136 = icmp eq i32 %135, -9
%137 = zext i1 %136 to i32
%138 = call i32 @assert(i32 %137)
%139 = call i32 @T6a__f(i32 0, i32 1, i32 0)
%140 = icmp eq i32 %139, -9
%141 = zext i1 %140 to i32
%142 = call i32 @assert(i32 %141)
%143 = call i32 @T6a__f(i32 0, i32 1, i32 1)
%144 = icmp eq i32 %143, -9
%145 = zext i1 %144 to i32
%146 = call i32 @assert(i32 %145)
%147 = call i32 @T6a__f(i32 1, i32 0, i32 0)
%148 = icmp eq i32 %147, -9
%149 = zext i1 %148 to i32
%150 = call i32 @assert(i32 %149)
%151 = call i32 @T6a__f(i32 1, i32 0, i32 1)
%152 = icmp eq i32 %151, -9
%153 = zext i1 %152 to i32
%154 = call i32 @assert(i32 %153)
%155 = call i32 @T6a__f(i32 1, i32 1, i32 0)
%156 = icmp eq i32 %155, -9
%157 = zext i1 %156 to i32
%158 = call i32 @assert(i32 %157)
%159 = call i32 @T6a__f(i32 1, i32 1, i32 1)
%160 = icmp eq i32 %159, 9
%161 = zext i1 %160 to i32
%162 = call i32 @assert(i32 %161)
%163 = call i32 @T6b__f(i32 0, i32 0, i32 0)
%164 = icmp eq i32 %163, -9
%165 = zext i1 %164 to i32
%166 = call i32 @assert(i32 %165)
%167 = call i32 @T6b__f(i32 0, i32 0, i32 1)
%168 = icmp eq i32 %167, -9
%169 = zext i1 %168 to i32
%170 = call i32 @assert(i32 %169)
%171 = call i32 @T6b__f(i32 0, i32 1, i32 0)
%172 = icmp eq i32 %171, -9
%173 = zext i1 %172 to i32
%174 = call i32 @assert(i32 %173)
%175 = call i32 @T6b__f(i32 0, i32 1, i32 1)
%176 = icmp eq i32 %175, -9
%177 = zext i1 %176 to i32
%178 = call i32 @assert(i32 %177)
%179 = call i32 @T6b__f(i32 1, i32 0, i32 0)
%180 = icmp eq i32 %179, -9
%181 = zext i1 %180 to i32
%182 = call i32 @assert(i32 %181)
%183 = call i32 @T6b__f(i32 1, i32 0, i32 1)
%184 = icmp eq i32 %183, -9
%185 = zext i1 %184 to i32
%186 = call i32 @assert(i32 %185)
%187 = call i32 @T6b__f(i32 1, i32 1, i32 0)
%188 = icmp eq i32 %187, -9
%189 = zext i1 %188 to i32
%190 = call i32 @assert(i32 %189)
%191 = call i32 @T6b__f(i32 1, i32 1, i32 1)
%192 = icmp eq i32 %191, 9
%193 = zext i1 %192 to i32
%194 = call i32 @assert(i32 %193)
%195 = call i32 @T7__f(i32 0, i32 0)
%196 = icmp eq i32 %195, -9
%197 = zext i1 %196 to i32
%198 = call i32 @assert(i32 %197)
%199 = call i32 @T7__f(i32 0, i32 1)
%200 = icmp eq i32 %199, 9
%201 = zext i1 %200 to i32
%202 = call i32 @assert(i32 %201)
%203 = call i32 @T7__f(i32 1, i32 0)
%204 = icmp eq i32 %203, 9
%205 = zext i1 %204 to i32
%206 = call i32 @assert(i32 %205)
%207 = call i32 @T7__f(i32 1, i32 1)
%208 = icmp eq i32 %207, 9
%209 = zext i1 %208 to i32
%210 = call i32 @assert(i32 %209)
%211 = call i32 @T7a__f(i32 0, i32 0, i32 0)
%212 = icmp eq i32 %211, -9
%213 = zext i1 %212 to i32
%214 = call i32 @assert(i32 %213)
%215 = call i32 @T7a__f(i32 0, i32 0, i32 1)
%216 = icmp eq i32 %215, 9
%217 = zext i1 %216 to i32
%218 = call i32 @assert(i32 %217)
%219 = call i32 @T7a__f(i32 0, i32 1, i32 0)
%220 = icmp eq i32 %219, 9
%221 = zext i1 %220 to i32
%222 = call i32 @assert(i32 %221)
%223 = call i32 @T7a__f(i32 0, i32 1, i32 1)
%224 = icmp eq i32 %223, 9
%225 = zext i1 %224 to i32
%226 = call i32 @assert(i32 %225)
%227 = call i32 @T7a__f(i32 1, i32 0, i32 0)
%228 = icmp eq i32 %227, 9
%229 = zext i1 %228 to i32
%230 = call i32 @assert(i32 %229)
%231 = call i32 @T7a__f(i32 1, i32 0, i32 1)
%232 = icmp eq i32 %231, 9
%233 = zext i1 %232 to i32
%234 = call i32 @assert(i32 %233)
%235 = call i32 @T7a__f(i32 1, i32 1, i32 0)
%236 = icmp eq i32 %235, 9
%237 = zext i1 %236 to i32
%238 = call i32 @assert(i32 %237)
%239 = call i32 @T7a__f(i32 1, i32 1, i32 1)
%240 = icmp eq i32 %239, 9
%241 = zext i1 %240 to i32
%242 = call i32 @assert(i32 %241)
%243 = call i32 @T7b__f(i32 0, i32 0, i32 0)
%244 = icmp eq i32 %243, -9
%245 = zext i1 %244 to i32
%246 = call i32 @assert(i32 %245)
%247 = call i32 @T7b__f(i32 0, i32 0, i32 1)
%248 = icmp eq i32 %247, 9
%249 = zext i1 %248 to i32
%250 = call i32 @assert(i32 %249)
%251 = call i32 @T7b__f(i32 0, i32 1, i32 0)
%252 = icmp eq i32 %251, 9
%253 = zext i1 %252 to i32
%254 = call i32 @assert(i32 %253)
%255 = call i32 @T7b__f(i32 0, i32 1, i32 1)
%256 = icmp eq i32 %255, 9
%257 = zext i1 %256 to i32
%258 = call i32 @assert(i32 %257)
%259 = call i32 @T7b__f(i32 1, i32 0, i32 0)
%260 = icmp eq i32 %259, 9
%261 = zext i1 %260 to i32
%262 = call i32 @assert(i32 %261)
%263 = call i32 @T7b__f(i32 1, i32 0, i32 1)
%264 = icmp eq i32 %263, 9
%265 = zext i1 %264 to i32
%266 = call i32 @assert(i32 %265)
%267 = call i32 @T7b__f(i32 1, i32 1, i32 0)
%268 = icmp eq i32 %267, 9
%269 = zext i1 %268 to i32
%270 = call i32 @assert(i32 %269)
%271 = call i32 @T7b__f(i32 1, i32 1, i32 1)
%272 = icmp eq i32 %271, 9
%273 = zext i1 %272 to i32
%274 = call i32 @assert(i32 %273)
%275 = call i32 @T8a__f(i32 0, i32 0, i32 0)
%276 = icmp eq i32 %275, -9
%277 = zext i1 %276 to i32
%278 = call i32 @assert(i32 %277)
%279 = call i32 @T8a__f(i32 0, i32 0, i32 1)
%280 = icmp eq i32 %279, 9
%281 = zext i1 %280 to i32
%282 = call i32 @assert(i32 %281)
%283 = call i32 @T8a__f(i32 0, i32 1, i32 0)
%284 = icmp eq i32 %283, -9
%285 = zext i1 %284 to i32
%286 = call i32 @assert(i32 %285)
%287 = call i32 @T8a__f(i32 0, i32 1, i32 1)
%288 = icmp eq i32 %287, 9
%289 = zext i1 %288 to i32
%290 = call i32 @assert(i32 %289)
%291 = call i32 @T8a__f(i32 1, i32 0, i32 0)
%292 = icmp eq i32 %291, -9
%293 = zext i1 %292 to i32
%294 = call i32 @assert(i32 %293)
%295 = call i32 @T8a__f(i32 1, i32 0, i32 1)
%296 = icmp eq i32 %295, 9
%297 = zext i1 %296 to i32
%298 = call i32 @assert(i32 %297)
%299 = call i32 @T8a__f(i32 1, i32 1, i32 0)
%300 = icmp eq i32 %299, 9
%301 = zext i1 %300 to i32
%302 = call i32 @assert(i32 %301)
%303 = call i32 @T8a__f(i32 1, i32 1, i32 1)
%304 = icmp eq i32 %303, 9
%305 = zext i1 %304 to i32
%306 = call i32 @assert(i32 %305)
%307 = call i32 @T8b__f(i32 0, i32 0, i32 0)
%308 = icmp eq i32 %307, -9
%309 = zext i1 %308 to i32
%310 = call i32 @assert(i32 %309)
%311 = call i32 @T8b__f(i32 0, i32 0, i32 1)
%312 = icmp eq i32 %311, -9
%313 = zext i1 %312 to i32
%314 = call i32 @assert(i32 %313)
%315 = call i32 @T8b__f(i32 0, i32 1, i32 0)
%316 = icmp eq i32 %315, -9
%317 = zext i1 %316 to i32
%318 = call i32 @assert(i32 %317)
%319 = call i32 @T8b__f(i32 0, i32 1, i32 1)
%320 = icmp eq i32 %319, -9
%321 = zext i1 %320 to i32
%322 = call i32 @assert(i32 %321)
%323 = call i32 @T8b__f(i32 1, i32 0, i32 0)
%324 = icmp eq i32 %323, -9
%325 = zext i1 %324 to i32
%326 = call i32 @assert(i32 %325)
%327 = call i32 @T8b__f(i32 1, i32 0, i32 1)
%328 = icmp eq i32 %327, 9
%329 = zext i1 %328 to i32
%330 = call i32 @assert(i32 %329)
%331 = call i32 @T8b__f(i32 1, i32 1, i32 0)
%332 = icmp eq i32 %331, 9
%333 = zext i1 %332 to i32
%334 = call i32 @assert(i32 %333)
%335 = call i32 @T8b__f(i32 1, i32 1, i32 1)
%336 = icmp eq i32 %335, 9
%337 = zext i1 %336 to i32
%338 = call i32 @assert(i32 %337)
%339 = call i32 @T8c__f(i32 0, i32 0, i32 0)
%340 = icmp eq i32 %339, -9
%341 = zext i1 %340 to i32
%342 = call i32 @assert(i32 %341)
%343 = call i32 @T8c__f(i32 0, i32 0, i32 1)
%344 = icmp eq i32 %343, -9
%345 = zext i1 %344 to i32
%346 = call i32 @assert(i32 %345)
%347 = call i32 @T8c__f(i32 0, i32 1, i32 0)
%348 = icmp eq i32 %347, -9
%349 = zext i1 %348 to i32
%350 = call i32 @assert(i32 %349)
%351 = call i32 @T8c__f(i32 0, i32 1, i32 1)
%352 = icmp eq i32 %351, 9
%353 = zext i1 %352 to i32
%354 = call i32 @assert(i32 %353)
%355 = call i32 @T8c__f(i32 1, i32 0, i32 0)
%356 = icmp eq i32 %355, -9
%357 = zext i1 %356 to i32
%358 = call i32 @assert(i32 %357)
%359 = call i32 @T8c__f(i32 1, i32 0, i32 1)
%360 = icmp eq i32 %359, 9
%361 = zext i1 %360 to i32
%362 = call i32 @assert(i32 %361)
%363 = call i32 @T8c__f(i32 1, i32 1, i32 0)
%364 = icmp eq i32 %363, -9
%365 = zext i1 %364 to i32
%366 = call i32 @assert(i32 %365)
%367 = call i32 @T8c__f(i32 1, i32 1, i32 1)
%368 = icmp eq i32 %367, 9
%369 = zext i1 %368 to i32
%370 = call i32 @assert(i32 %369)
%371 = call i32 @T8d__f(i32 0, i32 0, i32 0)
%372 = icmp eq i32 %371, -9
%373 = zext i1 %372 to i32
%374 = call i32 @assert(i32 %373)
%375 = call i32 @T8d__f(i32 0, i32 0, i32 1)
%376 = icmp eq i32 %375, -9
%377 = zext i1 %376 to i32
%378 = call i32 @assert(i32 %377)
%379 = call i32 @T8d__f(i32 0, i32 1, i32 0)
%380 = icmp eq i32 %379, -9
%381 = zext i1 %380 to i32
%382 = call i32 @assert(i32 %381)
%383 = call i32 @T8d__f(i32 0, i32 1, i32 1)
%384 = icmp eq i32 %383, 9
%385 = zext i1 %384 to i32
%386 = call i32 @assert(i32 %385)
%387 = call i32 @T8d__f(i32 1, i32 0, i32 0)
%388 = icmp eq i32 %387, 9
%389 = zext i1 %388 to i32
%390 = call i32 @assert(i32 %389)
%391 = call i32 @T8d__f(i32 1, i32 0, i32 1)
%392 = icmp eq i32 %391, 9
%393 = zext i1 %392 to i32
%394 = call i32 @assert(i32 %393)
%395 = call i32 @T8d__f(i32 1, i32 1, i32 0)
%396 = icmp eq i32 %395, 9
%397 = zext i1 %396 to i32
%398 = call i32 @assert(i32 %397)
%399 = call i32 @T8d__f(i32 1, i32 1, i32 1)
%400 = icmp eq i32 %399, 9
%401 = zext i1 %400 to i32
%402 = call i32 @assert(i32 %401)
%403 = call i8* @strdup(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
store i8* %403, i8** %2
%404 = load i8*, i8** %2
%405 = load i8*, i8** %2
%406 = call i32 @strlen(i8* %405)
%407 = call i32 @L1__f(i8* %404, i32 %406)
%408 = icmp eq i32 %407, 0
%409 = zext i1 %408 to i32
%410 = call i32 @assert(i32 %409)
%411 = call i8* @strdup(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
store i8* %411, i8** %2
%412 = load i8*, i8** %2
%413 = load i8*, i8** %2
%414 = call i32 @strlen(i8* %413)
%415 = call i32 @L1__f(i8* %412, i32 %414)
%416 = icmp eq i32 %415, 1
%417 = zext i1 %416 to i32
%418 = call i32 @assert(i32 %417)
%419 = call i8* @strdup(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
store i8* %419, i8** %2
%420 = load i8*, i8** %2
%421 = load i8*, i8** %2
%422 = call i32 @strlen(i8* %421)
%423 = call i32 @L1__f(i8* %420, i32 %422)
%424 = icmp eq i32 %423, 2
%425 = zext i1 %424 to i32
%426 = call i32 @assert(i32 %425)
%427 = call i8* @strdup(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
store i8* %427, i8** %2
%428 = load i8*, i8** %2
%429 = load i8*, i8** %2
%430 = call i32 @strlen(i8* %429)
%431 = call i32 @L1__f(i8* %428, i32 %430)
%432 = icmp eq i32 %431, 5
%433 = zext i1 %432 to i32
%434 = call i32 @assert(i32 %433)
%435 = call i32 @C1__f(i32 5, i32 3)
%436 = icmp eq i32 %435, 2
%437 = zext i1 %436 to i32
%438 = call i32 @assert(i32 %437)
%439 = call i32 @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.4, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@.str = [1 x i8] zeroinitializer
@.str.1 = [2 x i8] c"a\00"
@.str.2 = [3 x i8] c"ab\00"
@.str.3 = [6 x i8] c"12345\00"
@str = [26 x i8] c"### All tests successful.\00"
define i32 @main() {
%1 = tail call i32 @T0__f(i32 0)
%2 = icmp eq i32 %1, 0
%3 = zext i1 %2 to i32
%4 = tail call i32 @assert(i32 %3)
%5 = tail call i32 @T0__f(i32 1)
%6 = icmp eq i32 %5, 1
%7 = zext i1 %6 to i32
%8 = tail call i32 @assert(i32 %7)
%9 = tail call i32 @T0__f(i32 -123)
%10 = icmp eq i32 %9, -123
%11 = zext i1 %10 to i32
%12 = tail call i32 @assert(i32 %11)
%13 = tail call i32 @T1__f(i32 0)
%14 = icmp eq i32 %13, 0
%15 = zext i1 %14 to i32
%16 = tail call i32 @assert(i32 %15)
%17 = tail call i32 @T1__f(i32 1)
%18 = icmp eq i32 %17, -1
%19 = zext i1 %18 to i32
%20 = tail call i32 @assert(i32 %19)
%21 = tail call i32 @T1__f(i32 -123)
%22 = icmp eq i32 %21, 123
%23 = zext i1 %22 to i32
%24 = tail call i32 @assert(i32 %23)
%25 = tail call i32 @T2__f(i32 0, i32 0)
%26 = icmp eq i32 %25, 0
%27 = zext i1 %26 to i32
%28 = tail call i32 @assert(i32 %27)
%29 = tail call i32 @T2__f(i32 1, i32 0)
%30 = icmp eq i32 %29, 1
%31 = zext i1 %30 to i32
%32 = tail call i32 @assert(i32 %31)
%33 = tail call i32 @T2__f(i32 0, i32 1)
%34 = icmp eq i32 %33, -1
%35 = zext i1 %34 to i32
%36 = tail call i32 @assert(i32 %35)
%37 = tail call i32 @T2__f(i32 12, i32 -123)
%38 = icmp eq i32 %37, 135
%39 = zext i1 %38 to i32
%40 = tail call i32 @assert(i32 %39)
%41 = tail call i32 @T3__f(i32 1, i32 0, i32 0)
%42 = icmp eq i32 %41, 0
%43 = zext i1 %42 to i32
%44 = tail call i32 @assert(i32 %43)
%45 = tail call i32 @T3__f(i32 1, i32 1, i32 0)
%46 = icmp eq i32 %45, 1
%47 = zext i1 %46 to i32
%48 = tail call i32 @assert(i32 %47)
%49 = tail call i32 @T3__f(i32 1, i32 0, i32 1)
%50 = icmp eq i32 %49, 1
%51 = zext i1 %50 to i32
%52 = tail call i32 @assert(i32 %51)
%53 = tail call i32 @T3__f(i32 1, i32 12, i32 -123)
%54 = icmp eq i32 %53, -111
%55 = zext i1 %54 to i32
%56 = tail call i32 @assert(i32 %55)
%57 = tail call i32 @T3__f(i32 0, i32 0, i32 0)
%58 = icmp eq i32 %57, 0
%59 = zext i1 %58 to i32
%60 = tail call i32 @assert(i32 %59)
%61 = tail call i32 @T3__f(i32 0, i32 1, i32 0)
%62 = icmp eq i32 %61, 1
%63 = zext i1 %62 to i32
%64 = tail call i32 @assert(i32 %63)
%65 = tail call i32 @T3__f(i32 0, i32 0, i32 1)
%66 = icmp eq i32 %65, -1
%67 = zext i1 %66 to i32
%68 = tail call i32 @assert(i32 %67)
%69 = tail call i32 @T3__f(i32 0, i32 12, i32 -123)
%70 = icmp eq i32 %69, 135
%71 = zext i1 %70 to i32
%72 = tail call i32 @assert(i32 %71)
%73 = tail call i32 @T4__f(i32 1, i32 0, i32 0)
%74 = icmp eq i32 %73, 0
%75 = zext i1 %74 to i32
%76 = tail call i32 @assert(i32 %75)
%77 = tail call i32 @T4__f(i32 1, i32 1, i32 0)
%78 = icmp eq i32 %77, 1
%79 = zext i1 %78 to i32
%80 = tail call i32 @assert(i32 %79)
%81 = tail call i32 @T4__f(i32 1, i32 0, i32 1)
%82 = icmp eq i32 %81, 1
%83 = zext i1 %82 to i32
%84 = tail call i32 @assert(i32 %83)
%85 = tail call i32 @T4__f(i32 1, i32 12, i32 -123)
%86 = icmp eq i32 %85, -111
%87 = zext i1 %86 to i32
%88 = tail call i32 @assert(i32 %87)
%89 = tail call i32 @T4__f(i32 0, i32 0, i32 0)
%90 = icmp eq i32 %89, 0
%91 = zext i1 %90 to i32
%92 = tail call i32 @assert(i32 %91)
%93 = tail call i32 @T4__f(i32 0, i32 1, i32 0)
%94 = icmp eq i32 %93, 1
%95 = zext i1 %94 to i32
%96 = tail call i32 @assert(i32 %95)
%97 = tail call i32 @T4__f(i32 0, i32 0, i32 1)
%98 = icmp eq i32 %97, -1
%99 = zext i1 %98 to i32
%100 = tail call i32 @assert(i32 %99)
%101 = tail call i32 @T4__f(i32 0, i32 12, i32 -123)
%102 = icmp eq i32 %101, 135
%103 = zext i1 %102 to i32
%104 = tail call i32 @assert(i32 %103)
%105 = tail call i32 @T5__f(i32 5, i32 3)
%106 = icmp eq i32 %105, 2
%107 = zext i1 %106 to i32
%108 = tail call i32 @assert(i32 %107)
%109 = tail call i32 @T5__f(i32 3, i32 5)
%110 = icmp eq i32 %109, 2
%111 = zext i1 %110 to i32
%112 = tail call i32 @assert(i32 %111)
%113 = tail call i32 @T6__f(i32 0, i32 0)
%114 = icmp eq i32 %113, -9
%115 = zext i1 %114 to i32
%116 = tail call i32 @assert(i32 %115)
%117 = tail call i32 @T6__f(i32 0, i32 1)
%118 = icmp eq i32 %117, -9
%119 = zext i1 %118 to i32
%120 = tail call i32 @assert(i32 %119)
%121 = tail call i32 @T6__f(i32 1, i32 0)
%122 = icmp eq i32 %121, -9
%123 = zext i1 %122 to i32
%124 = tail call i32 @assert(i32 %123)
%125 = tail call i32 @T6__f(i32 1, i32 1)
%126 = icmp eq i32 %125, 9
%127 = zext i1 %126 to i32
%128 = tail call i32 @assert(i32 %127)
%129 = tail call i32 @T6a__f(i32 0, i32 0, i32 0)
%130 = icmp eq i32 %129, -9
%131 = zext i1 %130 to i32
%132 = tail call i32 @assert(i32 %131)
%133 = tail call i32 @T6a__f(i32 0, i32 0, i32 1)
%134 = icmp eq i32 %133, -9
%135 = zext i1 %134 to i32
%136 = tail call i32 @assert(i32 %135)
%137 = tail call i32 @T6a__f(i32 0, i32 1, i32 0)
%138 = icmp eq i32 %137, -9
%139 = zext i1 %138 to i32
%140 = tail call i32 @assert(i32 %139)
%141 = tail call i32 @T6a__f(i32 0, i32 1, i32 1)
%142 = icmp eq i32 %141, -9
%143 = zext i1 %142 to i32
%144 = tail call i32 @assert(i32 %143)
%145 = tail call i32 @T6a__f(i32 1, i32 0, i32 0)
%146 = icmp eq i32 %145, -9
%147 = zext i1 %146 to i32
%148 = tail call i32 @assert(i32 %147)
%149 = tail call i32 @T6a__f(i32 1, i32 0, i32 1)
%150 = icmp eq i32 %149, -9
%151 = zext i1 %150 to i32
%152 = tail call i32 @assert(i32 %151)
%153 = tail call i32 @T6a__f(i32 1, i32 1, i32 0)
%154 = icmp eq i32 %153, -9
%155 = zext i1 %154 to i32
%156 = tail call i32 @assert(i32 %155)
%157 = tail call i32 @T6a__f(i32 1, i32 1, i32 1)
%158 = icmp eq i32 %157, 9
%159 = zext i1 %158 to i32
%160 = tail call i32 @assert(i32 %159)
%161 = tail call i32 @T6b__f(i32 0, i32 0, i32 0)
%162 = icmp eq i32 %161, -9
%163 = zext i1 %162 to i32
%164 = tail call i32 @assert(i32 %163)
%165 = tail call i32 @T6b__f(i32 0, i32 0, i32 1)
%166 = icmp eq i32 %165, -9
%167 = zext i1 %166 to i32
%168 = tail call i32 @assert(i32 %167)
%169 = tail call i32 @T6b__f(i32 0, i32 1, i32 0)
%170 = icmp eq i32 %169, -9
%171 = zext i1 %170 to i32
%172 = tail call i32 @assert(i32 %171)
%173 = tail call i32 @T6b__f(i32 0, i32 1, i32 1)
%174 = icmp eq i32 %173, -9
%175 = zext i1 %174 to i32
%176 = tail call i32 @assert(i32 %175)
%177 = tail call i32 @T6b__f(i32 1, i32 0, i32 0)
%178 = icmp eq i32 %177, -9
%179 = zext i1 %178 to i32
%180 = tail call i32 @assert(i32 %179)
%181 = tail call i32 @T6b__f(i32 1, i32 0, i32 1)
%182 = icmp eq i32 %181, -9
%183 = zext i1 %182 to i32
%184 = tail call i32 @assert(i32 %183)
%185 = tail call i32 @T6b__f(i32 1, i32 1, i32 0)
%186 = icmp eq i32 %185, -9
%187 = zext i1 %186 to i32
%188 = tail call i32 @assert(i32 %187)
%189 = tail call i32 @T6b__f(i32 1, i32 1, i32 1)
%190 = icmp eq i32 %189, 9
%191 = zext i1 %190 to i32
%192 = tail call i32 @assert(i32 %191)
%193 = tail call i32 @T7__f(i32 0, i32 0)
%194 = icmp eq i32 %193, -9
%195 = zext i1 %194 to i32
%196 = tail call i32 @assert(i32 %195)
%197 = tail call i32 @T7__f(i32 0, i32 1)
%198 = icmp eq i32 %197, 9
%199 = zext i1 %198 to i32
%200 = tail call i32 @assert(i32 %199)
%201 = tail call i32 @T7__f(i32 1, i32 0)
%202 = icmp eq i32 %201, 9
%203 = zext i1 %202 to i32
%204 = tail call i32 @assert(i32 %203)
%205 = tail call i32 @T7__f(i32 1, i32 1)
%206 = icmp eq i32 %205, 9
%207 = zext i1 %206 to i32
%208 = tail call i32 @assert(i32 %207)
%209 = tail call i32 @T7a__f(i32 0, i32 0, i32 0)
%210 = icmp eq i32 %209, -9
%211 = zext i1 %210 to i32
%212 = tail call i32 @assert(i32 %211)
%213 = tail call i32 @T7a__f(i32 0, i32 0, i32 1)
%214 = icmp eq i32 %213, 9
%215 = zext i1 %214 to i32
%216 = tail call i32 @assert(i32 %215)
%217 = tail call i32 @T7a__f(i32 0, i32 1, i32 0)
%218 = icmp eq i32 %217, 9
%219 = zext i1 %218 to i32
%220 = tail call i32 @assert(i32 %219)
%221 = tail call i32 @T7a__f(i32 0, i32 1, i32 1)
%222 = icmp eq i32 %221, 9
%223 = zext i1 %222 to i32
%224 = tail call i32 @assert(i32 %223)
%225 = tail call i32 @T7a__f(i32 1, i32 0, i32 0)
%226 = icmp eq i32 %225, 9
%227 = zext i1 %226 to i32
%228 = tail call i32 @assert(i32 %227)
%229 = tail call i32 @T7a__f(i32 1, i32 0, i32 1)
%230 = icmp eq i32 %229, 9
%231 = zext i1 %230 to i32
%232 = tail call i32 @assert(i32 %231)
%233 = tail call i32 @T7a__f(i32 1, i32 1, i32 0)
%234 = icmp eq i32 %233, 9
%235 = zext i1 %234 to i32
%236 = tail call i32 @assert(i32 %235)
%237 = tail call i32 @T7a__f(i32 1, i32 1, i32 1)
%238 = icmp eq i32 %237, 9
%239 = zext i1 %238 to i32
%240 = tail call i32 @assert(i32 %239)
%241 = tail call i32 @T7b__f(i32 0, i32 0, i32 0)
%242 = icmp eq i32 %241, -9
%243 = zext i1 %242 to i32
%244 = tail call i32 @assert(i32 %243)
%245 = tail call i32 @T7b__f(i32 0, i32 0, i32 1)
%246 = icmp eq i32 %245, 9
%247 = zext i1 %246 to i32
%248 = tail call i32 @assert(i32 %247)
%249 = tail call i32 @T7b__f(i32 0, i32 1, i32 0)
%250 = icmp eq i32 %249, 9
%251 = zext i1 %250 to i32
%252 = tail call i32 @assert(i32 %251)
%253 = tail call i32 @T7b__f(i32 0, i32 1, i32 1)
%254 = icmp eq i32 %253, 9
%255 = zext i1 %254 to i32
%256 = tail call i32 @assert(i32 %255)
%257 = tail call i32 @T7b__f(i32 1, i32 0, i32 0)
%258 = icmp eq i32 %257, 9
%259 = zext i1 %258 to i32
%260 = tail call i32 @assert(i32 %259)
%261 = tail call i32 @T7b__f(i32 1, i32 0, i32 1)
%262 = icmp eq i32 %261, 9
%263 = zext i1 %262 to i32
%264 = tail call i32 @assert(i32 %263)
%265 = tail call i32 @T7b__f(i32 1, i32 1, i32 0)
%266 = icmp eq i32 %265, 9
%267 = zext i1 %266 to i32
%268 = tail call i32 @assert(i32 %267)
%269 = tail call i32 @T7b__f(i32 1, i32 1, i32 1)
%270 = icmp eq i32 %269, 9
%271 = zext i1 %270 to i32
%272 = tail call i32 @assert(i32 %271)
%273 = tail call i32 @T8a__f(i32 0, i32 0, i32 0)
%274 = icmp eq i32 %273, -9
%275 = zext i1 %274 to i32
%276 = tail call i32 @assert(i32 %275)
%277 = tail call i32 @T8a__f(i32 0, i32 0, i32 1)
%278 = icmp eq i32 %277, 9
%279 = zext i1 %278 to i32
%280 = tail call i32 @assert(i32 %279)
%281 = tail call i32 @T8a__f(i32 0, i32 1, i32 0)
%282 = icmp eq i32 %281, -9
%283 = zext i1 %282 to i32
%284 = tail call i32 @assert(i32 %283)
%285 = tail call i32 @T8a__f(i32 0, i32 1, i32 1)
%286 = icmp eq i32 %285, 9
%287 = zext i1 %286 to i32
%288 = tail call i32 @assert(i32 %287)
%289 = tail call i32 @T8a__f(i32 1, i32 0, i32 0)
%290 = icmp eq i32 %289, -9
%291 = zext i1 %290 to i32
%292 = tail call i32 @assert(i32 %291)
%293 = tail call i32 @T8a__f(i32 1, i32 0, i32 1)
%294 = icmp eq i32 %293, 9
%295 = zext i1 %294 to i32
%296 = tail call i32 @assert(i32 %295)
%297 = tail call i32 @T8a__f(i32 1, i32 1, i32 0)
%298 = icmp eq i32 %297, 9
%299 = zext i1 %298 to i32
%300 = tail call i32 @assert(i32 %299)
%301 = tail call i32 @T8a__f(i32 1, i32 1, i32 1)
%302 = icmp eq i32 %301, 9
%303 = zext i1 %302 to i32
%304 = tail call i32 @assert(i32 %303)
%305 = tail call i32 @T8b__f(i32 0, i32 0, i32 0)
%306 = icmp eq i32 %305, -9
%307 = zext i1 %306 to i32
%308 = tail call i32 @assert(i32 %307)
%309 = tail call i32 @T8b__f(i32 0, i32 0, i32 1)
%310 = icmp eq i32 %309, -9
%311 = zext i1 %310 to i32
%312 = tail call i32 @assert(i32 %311)
%313 = tail call i32 @T8b__f(i32 0, i32 1, i32 0)
%314 = icmp eq i32 %313, -9
%315 = zext i1 %314 to i32
%316 = tail call i32 @assert(i32 %315)
%317 = tail call i32 @T8b__f(i32 0, i32 1, i32 1)
%318 = icmp eq i32 %317, -9
%319 = zext i1 %318 to i32
%320 = tail call i32 @assert(i32 %319)
%321 = tail call i32 @T8b__f(i32 1, i32 0, i32 0)
%322 = icmp eq i32 %321, -9
%323 = zext i1 %322 to i32
%324 = tail call i32 @assert(i32 %323)
%325 = tail call i32 @T8b__f(i32 1, i32 0, i32 1)
%326 = icmp eq i32 %325, 9
%327 = zext i1 %326 to i32
%328 = tail call i32 @assert(i32 %327)
%329 = tail call i32 @T8b__f(i32 1, i32 1, i32 0)
%330 = icmp eq i32 %329, 9
%331 = zext i1 %330 to i32
%332 = tail call i32 @assert(i32 %331)
%333 = tail call i32 @T8b__f(i32 1, i32 1, i32 1)
%334 = icmp eq i32 %333, 9
%335 = zext i1 %334 to i32
%336 = tail call i32 @assert(i32 %335)
%337 = tail call i32 @T8c__f(i32 0, i32 0, i32 0)
%338 = icmp eq i32 %337, -9
%339 = zext i1 %338 to i32
%340 = tail call i32 @assert(i32 %339)
%341 = tail call i32 @T8c__f(i32 0, i32 0, i32 1)
%342 = icmp eq i32 %341, -9
%343 = zext i1 %342 to i32
%344 = tail call i32 @assert(i32 %343)
%345 = tail call i32 @T8c__f(i32 0, i32 1, i32 0)
%346 = icmp eq i32 %345, -9
%347 = zext i1 %346 to i32
%348 = tail call i32 @assert(i32 %347)
%349 = tail call i32 @T8c__f(i32 0, i32 1, i32 1)
%350 = icmp eq i32 %349, 9
%351 = zext i1 %350 to i32
%352 = tail call i32 @assert(i32 %351)
%353 = tail call i32 @T8c__f(i32 1, i32 0, i32 0)
%354 = icmp eq i32 %353, -9
%355 = zext i1 %354 to i32
%356 = tail call i32 @assert(i32 %355)
%357 = tail call i32 @T8c__f(i32 1, i32 0, i32 1)
%358 = icmp eq i32 %357, 9
%359 = zext i1 %358 to i32
%360 = tail call i32 @assert(i32 %359)
%361 = tail call i32 @T8c__f(i32 1, i32 1, i32 0)
%362 = icmp eq i32 %361, -9
%363 = zext i1 %362 to i32
%364 = tail call i32 @assert(i32 %363)
%365 = tail call i32 @T8c__f(i32 1, i32 1, i32 1)
%366 = icmp eq i32 %365, 9
%367 = zext i1 %366 to i32
%368 = tail call i32 @assert(i32 %367)
%369 = tail call i32 @T8d__f(i32 0, i32 0, i32 0)
%370 = icmp eq i32 %369, -9
%371 = zext i1 %370 to i32
%372 = tail call i32 @assert(i32 %371)
%373 = tail call i32 @T8d__f(i32 0, i32 0, i32 1)
%374 = icmp eq i32 %373, -9
%375 = zext i1 %374 to i32
%376 = tail call i32 @assert(i32 %375)
%377 = tail call i32 @T8d__f(i32 0, i32 1, i32 0)
%378 = icmp eq i32 %377, -9
%379 = zext i1 %378 to i32
%380 = tail call i32 @assert(i32 %379)
%381 = tail call i32 @T8d__f(i32 0, i32 1, i32 1)
%382 = icmp eq i32 %381, 9
%383 = zext i1 %382 to i32
%384 = tail call i32 @assert(i32 %383)
%385 = tail call i32 @T8d__f(i32 1, i32 0, i32 0)
%386 = icmp eq i32 %385, 9
%387 = zext i1 %386 to i32
%388 = tail call i32 @assert(i32 %387)
%389 = tail call i32 @T8d__f(i32 1, i32 0, i32 1)
%390 = icmp eq i32 %389, 9
%391 = zext i1 %390 to i32
%392 = tail call i32 @assert(i32 %391)
%393 = tail call i32 @T8d__f(i32 1, i32 1, i32 0)
%394 = icmp eq i32 %393, 9
%395 = zext i1 %394 to i32
%396 = tail call i32 @assert(i32 %395)
%397 = tail call i32 @T8d__f(i32 1, i32 1, i32 1)
%398 = icmp eq i32 %397, 9
%399 = zext i1 %398 to i32
%400 = tail call i32 @assert(i32 %399)
%401 = tail call dereferenceable_or_null(1) i8* @strdup(i8* getelementptr inbounds ([1 x i8], [1 x i8]* @.str, i64 0, i64 0))
%402 = tail call i32 @strlen(i8* %401)
%403 = tail call i32 @L1__f(i8* %401, i32 %402)
%404 = icmp eq i32 %403, 0
%405 = zext i1 %404 to i32
%406 = tail call i32 @assert(i32 %405)
%407 = tail call dereferenceable_or_null(2) i8* @strdup(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.1, i64 0, i64 0))
%408 = tail call i32 @strlen(i8* %407)
%409 = tail call i32 @L1__f(i8* %407, i32 %408)
%410 = icmp eq i32 %409, 1
%411 = zext i1 %410 to i32
%412 = tail call i32 @assert(i32 %411)
%413 = tail call dereferenceable_or_null(3) i8* @strdup(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.2, i64 0, i64 0))
%414 = tail call i32 @strlen(i8* %413)
%415 = tail call i32 @L1__f(i8* %413, i32 %414)
%416 = icmp eq i32 %415, 2
%417 = zext i1 %416 to i32
%418 = tail call i32 @assert(i32 %417)
%419 = tail call dereferenceable_or_null(6) i8* @strdup(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.3, i64 0, i64 0))
%420 = tail call i32 @strlen(i8* %419)
%421 = tail call i32 @L1__f(i8* %419, i32 %420)
%422 = icmp eq i32 %421, 5
%423 = zext i1 %422 to i32
%424 = tail call i32 @assert(i32 %423)
%425 = tail call i32 @C1__f(i32 5, i32 3)
%426 = icmp eq i32 %425, 2
%427 = zext i1 %426 to i32
%428 = tail call i32 @assert(i32 %427)
%429 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([26 x i8], [26 x i8]* @str, i64 0, i64 0))
ret i32 0
}