#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 */
unsigned long ULONG_MAX;
int /*<<< orphan*/ all_false(unsigned long);
int /*<<< orphan*/ all_true(unsigned long);
int /*<<< orphan*/ double_basic_op(char *, unsigned long);
int /*<<< orphan*/ file_read(unsigned int);
int /*<<< orphan*/ file_read_direct(unsigned int);
int /*<<< orphan*/ file_read_random(unsigned int);
int /*<<< orphan*/ file_read_random_direct(unsigned int);
int /*<<< orphan*/ file_write(unsigned int);
int /*<<< orphan*/ file_write_random(unsigned int);
int /*<<< orphan*/ float_basic_op(char *, unsigned long);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ function_calls(unsigned int);
int /*<<< orphan*/ function_calls_recursive(unsigned int);
int /*<<< orphan*/ goto_jump(unsigned long);
int /*<<< orphan*/ int_basic_op(char *, unsigned long);
int /*<<< orphan*/ ipcmain(char *, unsigned long, unsigned int);
int /*<<< orphan*/ long_basic_op(char *, unsigned long);
int /*<<< orphan*/ mem_calloc(unsigned int);
int /*<<< orphan*/ mem_read_contig(unsigned int);
int /*<<< orphan*/ mem_read_ram(unsigned long);
int /*<<< orphan*/ mem_read_random(unsigned int);
int /*<<< orphan*/ mem_read_strided(unsigned int, unsigned int);
int /*<<< orphan*/ mem_write_contig(unsigned int);
int /*<<< orphan*/ mem_write_random(unsigned int);
int /*<<< orphan*/ mem_write_strided(unsigned int, unsigned int);
int /*<<< orphan*/ mk_rm_dir(unsigned int);
int /*<<< orphan*/ netmain(char *, unsigned long);
int /*<<< orphan*/ printf(char *);
int /*<<< orphan*/ process_fork_create(unsigned long);
int /*<<< orphan*/ process_fork_destroy(unsigned long);
int /*<<< orphan*/ process_pthread_create(unsigned long);
int /*<<< orphan*/ process_pthread_destroy(unsigned long);
int /*<<< orphan*/ process_vfork_create(unsigned long);
int /*<<< orphan*/ process_vfork_destroy(unsigned long);
int /*<<< orphan*/ read_lat(unsigned int);
int /*<<< orphan*/ sleep_nanosleep(unsigned int, unsigned long);
int /*<<< orphan*/ sleep_nop(unsigned int, unsigned long);
int /*<<< orphan*/ sleep_sleep(unsigned int, unsigned long);
int /*<<< orphan*/ sleep_usleep(unsigned int, unsigned long);
int /*<<< orphan*/ stderr;
scalar_t__ strcmp(char *, char *);
int /*<<< orphan*/ switch_jump(unsigned long);
int /*<<< orphan*/ t2_f2(unsigned long);
int /*<<< orphan*/ t_f_random(unsigned long);
int /*<<< orphan*/ true_false(unsigned long);
void bench_level0(char *b, unsigned int s, unsigned int t, unsigned long r,
                  char *o, char *dt) {
  if (strcmp(b, "basic_op") == 0) {
    if (strcmp(dt, "int") == 0)
      int_basic_op(o, r);
    else if (strcmp(dt, "float") == 0)
      float_basic_op(o, r);
    else if (strcmp(dt, "long") == 0)
      long_basic_op(o, r);
    else if (strcmp(dt, "double") == 0)
      double_basic_op(o, r);
    else
      fprintf(stderr, "ERROR: check you are using a valid data type...\n");
  } else if (strcmp(b, "memory") == 0) {
    if (strcmp(o, "calloc") == 0)
      mem_calloc(s);
    else if (strcmp(o, "read_ram") == 0)
      mem_read_ram(r);
    else if (strcmp(o, "write_contig") == 0)
      mem_write_contig(s);
    else if (strcmp(o, "write_strided") == 0)
      mem_write_strided(s, t);
    else if (strcmp(o, "write_random") == 0)
      mem_write_random(s);
    else if (strcmp(o, "read_contig") == 0)
      mem_read_contig(s);
    else if (strcmp(o, "read_lat") == 0)
      read_lat(s);
    else if (strcmp(o, "read_strided") == 0)
      mem_read_strided(s, t);
    else if (strcmp(o, "read_random") == 0)
      mem_read_random(s);
    else
      fprintf(stderr, "ERROR: check you are using a valid operation type...\n");
  } else if (strcmp(b, "function") == 0) {
    if (strcmp(o, "normal") == 0)
      function_calls(s);
    else if (strcmp(o, "recursive") == 0)
      function_calls_recursive(s);
    else
      fprintf(stderr, "ERROR: check you are using a valid operation type...\n");
  } else if (strcmp(b, "io") == 0) {
    if (strcmp(o, "mk_rm_dir") == 0)
      mk_rm_dir(s);
    else if (strcmp(o, "file_write") == 0)
      file_write(s);
    else if (strcmp(o, "file_read") == 0)
      file_read(s);
    else if (strcmp(o, "file_write_random") == 0)
      file_write_random(s);
    else if (strcmp(o, "file_read_random") == 0)
      file_read_random(s);
    else if (strcmp(o, "file_read_direct") == 0)
      file_read_direct(s);
    else if (strcmp(o, "file_read_random_direct") == 0)
      file_read_random_direct(s);
    else
      fprintf(stderr, "ERROR: check you are using a valid operation type...\n");
  } else if (strcmp(b, "ipc") == 0) {
    ipcmain(o, r, s);
  } else if (strcmp(b, "net") == 0) {
    netmain(o, r);
  } else if (strcmp(b, "branch") == 0) {
    if (strcmp(o, "all_true") == 0)
      all_true(r);
    else if (strcmp(o, "all_false") == 0)
      all_false(r);
    else if (strcmp(o, "true_false") == 0)
      true_false(r);
    else if (strcmp(o, "t2_f2") == 0)
      t2_f2(r);
    else if (strcmp(o, "t4_f4") == 0)
      t2_f2(r);
    else if (strcmp(o, "t8_f8") == 0)
      t2_f2(r);
    else if (strcmp(o, "t_f_random") == 0)
      t_f_random(r);
    else if (strcmp(o, "switch") == 0)
      switch_jump(r);
    else if (strcmp(o, "goto") == 0)
      goto_jump(r);
    else
      fprintf(stderr, "ERROR: check you are using a valid operation type...\n");
  } else if (strcmp(b, "sleep") == 0) {
    if (r == ULONG_MAX)
      r = 1000;
    if (strcmp(o, "sleep") == 0 || strcmp(o, "+") == 0)
      sleep_sleep(s, r);
    else if (strcmp(o, "nop") == 0)
      sleep_nop(s, r);
    else if (strcmp(o, "usleep") == 0)
      sleep_usleep(s, r);
    else if (strcmp(o, "nanosleep") == 0)
      sleep_nanosleep(s, r);
    else
      fprintf(stderr,
              "ERROR: check you are requesting a valid sleep type...\n");
  } else if (strcmp(b, "process") == 0) {
    if (r == ULONG_MAX)
      r = 1000;
    if (strcmp(o, "fork_create") == 0)
      process_fork_create(r);
    else if (strcmp(o, "fork_destroy") == 0)
      process_fork_destroy(r);
    else if (strcmp(o, "vfork_create") == 0)
      process_vfork_create(r);
    else if (strcmp(o, "vfork_destroy") == 0)
      process_vfork_destroy(r);
    else if (strcmp(o, "pthread_create") == 0)
      process_pthread_create(r);
    else if (strcmp(o, "pthread_destroy") == 0)
      process_pthread_destroy(r);
    else
      fprintf(stderr,
              "ERROR: check you are requesting a valid process type...\n");
  } else
    printf("Not implemented yet.\n");
}


x86 assembly (clang, -O0):
<bench_level0>:
push   %rbp
mov    %rsp,%rbp
sub    $0x30,%rsp
mov    %rdi,-0x8(%rbp)
mov    %esi,-0xc(%rbp)
mov    %edx,-0x10(%rbp)
mov    %rcx,-0x18(%rbp)
mov    %r8,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
mov    -0x8(%rbp),%rdi
lea    0xc17(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    14d1 <bench_level0+0x111>
mov    -0x28(%rbp),%rdi
lea    0xc06(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1424 <bench_level0+0x64>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   1060 <int_basic_op@plt>
jmp    14cc <bench_level0+0x10c>
mov    -0x28(%rbp),%rdi
lea    0xbde(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1450 <bench_level0+0x90>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   1130 <float_basic_op@plt>
jmp    14c7 <bench_level0+0x107>
mov    -0x28(%rbp),%rdi
lea    0xbb8(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    147c <bench_level0+0xbc>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   1210 <long_basic_op@plt>
jmp    14c2 <bench_level0+0x102>
mov    -0x28(%rbp),%rdi
lea    0xb91(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    14a8 <bench_level0+0xe8>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   1170 <double_basic_op@plt>
jmp    14bd <bench_level0+0xfd>
mov    0x2b31(%rip),%rax
mov    (%rax),%edi
lea    0xb67(%rip),%rsi
call   1180 <fprintf@plt>
jmp    14c2 <bench_level0+0x102>
jmp    14c7 <bench_level0+0x107>
jmp    14cc <bench_level0+0x10c>
jmp    1d4e <bench_level0+0x98e>
mov    -0x8(%rbp),%rdi
lea    0xb74(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1693 <bench_level0+0x2d3>
mov    -0x20(%rbp),%rdi
lea    0xb61(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1512 <bench_level0+0x152>
mov    -0xc(%rbp),%edi
call   1290 <mem_calloc@plt>
jmp    168e <bench_level0+0x2ce>
mov    -0x20(%rbp),%rdi
lea    0xb41(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    153a <bench_level0+0x17a>
mov    -0x18(%rbp),%rdi
call   12e0 <mem_read_ram@plt>
jmp    1689 <bench_level0+0x2c9>
mov    -0x20(%rbp),%rdi
lea    0xb22(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1561 <bench_level0+0x1a1>
mov    -0xc(%rbp),%edi
call   11a0 <mem_write_contig@plt>
jmp    1684 <bench_level0+0x2c4>
mov    -0x20(%rbp),%rdi
lea    0xb08(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    158b <bench_level0+0x1cb>
mov    -0xc(%rbp),%edi
mov    -0x10(%rbp),%esi
call   11d0 <mem_write_strided@plt>
jmp    167f <bench_level0+0x2bf>
mov    -0x20(%rbp),%rdi
lea    0xb85(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    15b2 <bench_level0+0x1f2>
mov    -0xc(%rbp),%edi
call   10e0 <mem_write_random@plt>
jmp    167a <bench_level0+0x2ba>
mov    -0x20(%rbp),%rdi
lea    0xac5(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    15d9 <bench_level0+0x219>
mov    -0xc(%rbp),%edi
call   1190 <mem_read_contig@plt>
jmp    1675 <bench_level0+0x2b5>
mov    -0x20(%rbp),%rdi
lea    0xaaa(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1600 <bench_level0+0x240>
mov    -0xc(%rbp),%edi
call   1200 <read_lat@plt>
jmp    1670 <bench_level0+0x2b0>
mov    -0x20(%rbp),%rdi
lea    0xa8c(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    162a <bench_level0+0x26a>
mov    -0xc(%rbp),%edi
mov    -0x10(%rbp),%esi
call   1120 <mem_read_strided@plt>
jmp    166b <bench_level0+0x2ab>
mov    -0x20(%rbp),%rdi
lea    0xaf8(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1651 <bench_level0+0x291>
mov    -0xc(%rbp),%edi
call   1240 <mem_read_random@plt>
jmp    1666 <bench_level0+0x2a6>
mov    0x2988(%rip),%rax
mov    (%rax),%edi
lea    0xa43(%rip),%rsi
call   1180 <fprintf@plt>
jmp    166b <bench_level0+0x2ab>
jmp    1670 <bench_level0+0x2b0>
jmp    1675 <bench_level0+0x2b5>
jmp    167a <bench_level0+0x2ba>
jmp    167f <bench_level0+0x2bf>
jmp    1684 <bench_level0+0x2c4>
jmp    1689 <bench_level0+0x2c9>
jmp    168e <bench_level0+0x2ce>
jmp    1d49 <bench_level0+0x989>
mov    -0x8(%rbp),%rdi
lea    0xa3c(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    171a <bench_level0+0x35a>
mov    -0x20(%rbp),%rdi
lea    0xa2b(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    16d4 <bench_level0+0x314>
mov    -0xc(%rbp),%edi
call   12a0 <function_calls@plt>
jmp    1715 <bench_level0+0x355>
mov    -0x20(%rbp),%rdi
lea    0xa0b(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    16fb <bench_level0+0x33b>
mov    -0xc(%rbp),%edi
call   1230 <function_calls_recursive@plt>
jmp    1710 <bench_level0+0x350>
mov    0x28de(%rip),%rax
mov    (%rax),%edi
lea    0x999(%rip),%rsi
call   1180 <fprintf@plt>
jmp    1715 <bench_level0+0x355>
jmp    1d44 <bench_level0+0x984>
mov    -0x8(%rbp),%rdi
lea    0x9cf(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    187d <bench_level0+0x4bd>
mov    -0x20(%rbp),%rdi
lea    0x9b8(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    175b <bench_level0+0x39b>
mov    -0xc(%rbp),%edi
call   1030 <mk_rm_dir@plt>
jmp    1878 <bench_level0+0x4b8>
mov    -0x20(%rbp),%rdi
lea    0x99b(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1782 <bench_level0+0x3c2>
mov    -0xc(%rbp),%edi
call   12b0 <file_write@plt>
jmp    1873 <bench_level0+0x4b3>
mov    -0x20(%rbp),%rdi
lea    0x97f(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    17a9 <bench_level0+0x3e9>
mov    -0xc(%rbp),%edi
call   1270 <file_read@plt>
jmp    186e <bench_level0+0x4ae>
mov    -0x20(%rbp),%rdi
lea    0x962(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    17d0 <bench_level0+0x410>
mov    -0xc(%rbp),%edi
call   11f0 <file_write_random@plt>
jmp    1869 <bench_level0+0x4a9>
mov    -0x20(%rbp),%rdi
lea    0x94d(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    17f7 <bench_level0+0x437>
mov    -0xc(%rbp),%edi
call   1280 <file_read_random@plt>
jmp    1864 <bench_level0+0x4a4>
mov    -0x20(%rbp),%rdi
lea    0x937(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    181e <bench_level0+0x45e>
mov    -0xc(%rbp),%edi
call   1260 <file_read_direct@plt>
jmp    185f <bench_level0+0x49f>
mov    -0x20(%rbp),%rdi
lea    0x921(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1845 <bench_level0+0x485>
mov    -0xc(%rbp),%edi
call   1040 <file_read_random_direct@plt>
jmp    185a <bench_level0+0x49a>
mov    0x2794(%rip),%rax
mov    (%rax),%edi
lea    0x84f(%rip),%rsi
call   1180 <fprintf@plt>
jmp    185f <bench_level0+0x49f>
jmp    1864 <bench_level0+0x4a4>
jmp    1869 <bench_level0+0x4a9>
jmp    186e <bench_level0+0x4ae>
jmp    1873 <bench_level0+0x4b3>
jmp    1878 <bench_level0+0x4b8>
jmp    1d3f <bench_level0+0x97f>
mov    -0x8(%rbp),%rdi
lea    0x8da(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    18ac <bench_level0+0x4ec>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
mov    -0xc(%rbp),%edx
call   1080 <ipcmain@plt>
jmp    1d3a <bench_level0+0x97a>
mov    -0x8(%rbp),%rdi
lea    0x8af(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    18d8 <bench_level0+0x518>
mov    -0x20(%rbp),%rdi
mov    -0x18(%rbp),%rsi
call   11b0 <netmain@plt>
jmp    1d35 <bench_level0+0x975>
mov    -0x8(%rbp),%rdi
lea    0x887(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1a9c <bench_level0+0x6dc>
mov    -0x20(%rbp),%rdi
lea    0x874(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    191a <bench_level0+0x55a>
mov    -0x18(%rbp),%rdi
call   11e0 <all_true@plt>
jmp    1a97 <bench_level0+0x6d7>
mov    -0x20(%rbp),%rdi
lea    0x855(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1942 <bench_level0+0x582>
mov    -0x18(%rbp),%rdi
call   11c0 <all_false@plt>
jmp    1a92 <bench_level0+0x6d2>
mov    -0x20(%rbp),%rdi
lea    0x837(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    196a <bench_level0+0x5aa>
mov    -0x18(%rbp),%rdi
call   1070 <true_false@plt>
jmp    1a8d <bench_level0+0x6cd>
mov    -0x20(%rbp),%rdi
lea    0x81a(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1992 <bench_level0+0x5d2>
mov    -0x18(%rbp),%rdi
call   1110 <t2_f2@plt>
jmp    1a88 <bench_level0+0x6c8>
mov    -0x20(%rbp),%rdi
lea    0x7f8(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    19ba <bench_level0+0x5fa>
mov    -0x18(%rbp),%rdi
call   1110 <t2_f2@plt>
jmp    1a83 <bench_level0+0x6c3>
mov    -0x20(%rbp),%rdi
lea    0x7d6(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    19e2 <bench_level0+0x622>
mov    -0x18(%rbp),%rdi
call   1110 <t2_f2@plt>
jmp    1a7e <bench_level0+0x6be>
mov    -0x20(%rbp),%rdi
lea    0x7b4(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1a0a <bench_level0+0x64a>
mov    -0x18(%rbp),%rdi
call   10c0 <t_f_random@plt>
jmp    1a79 <bench_level0+0x6b9>
mov    -0x20(%rbp),%rdi
lea    0x797(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1a32 <bench_level0+0x672>
mov    -0x18(%rbp),%rdi
call   1150 <switch_jump@plt>
jmp    1a74 <bench_level0+0x6b4>
mov    -0x20(%rbp),%rdi
lea    0x776(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1a5a <bench_level0+0x69a>
mov    -0x18(%rbp),%rdi
call   12c0 <goto_jump@plt>
jmp    1a6f <bench_level0+0x6af>
mov    0x257f(%rip),%rax
mov    (%rax),%edi
lea    0x63a(%rip),%rsi
call   1180 <fprintf@plt>
jmp    1a74 <bench_level0+0x6b4>
jmp    1a79 <bench_level0+0x6b9>
jmp    1a7e <bench_level0+0x6be>
jmp    1a83 <bench_level0+0x6c3>
jmp    1a88 <bench_level0+0x6c8>
jmp    1a8d <bench_level0+0x6cd>
jmp    1a92 <bench_level0+0x6d2>
jmp    1a97 <bench_level0+0x6d7>
jmp    1d30 <bench_level0+0x970>
mov    -0x8(%rbp),%rdi
lea    0x722(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1bc1 <bench_level0+0x801>
mov    -0x18(%rbp),%rax
mov    0x250f(%rip),%rcx
cmp    (%rcx),%rax
jne    1ad2 <bench_level0+0x712>
movq   $0x3e8,-0x18(%rbp)
mov    -0x20(%rbp),%rdi
lea    0x6ec(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
je     1b06 <bench_level0+0x746>
mov    -0x20(%rbp),%rdi
lea    0x6c1(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1b17 <bench_level0+0x757>
mov    -0xc(%rbp),%edi
mov    -0x18(%rbp),%rsi
call   10a0 <sleep_sleep@plt>
jmp    1bbc <bench_level0+0x7fc>
mov    -0x20(%rbp),%rdi
lea    0x698(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1b42 <bench_level0+0x782>
mov    -0xc(%rbp),%edi
mov    -0x18(%rbp),%rsi
call   12d0 <sleep_nop@plt>
jmp    1bb7 <bench_level0+0x7f7>
mov    -0x20(%rbp),%rdi
lea    0x671(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1b6d <bench_level0+0x7ad>
mov    -0xc(%rbp),%edi
mov    -0x18(%rbp),%rsi
call   1250 <sleep_usleep@plt>
jmp    1bb2 <bench_level0+0x7f2>
mov    -0x20(%rbp),%rdi
lea    0x64d(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1b98 <bench_level0+0x7d8>
mov    -0xc(%rbp),%edi
mov    -0x18(%rbp),%rsi
call   1050 <sleep_nanosleep@plt>
jmp    1bad <bench_level0+0x7ed>
mov    0x2441(%rip),%rax
mov    (%rax),%edi
lea    0x627(%rip),%rsi
call   1180 <fprintf@plt>
jmp    1bb2 <bench_level0+0x7f2>
jmp    1bb7 <bench_level0+0x7f7>
jmp    1bbc <bench_level0+0x7fc>
jmp    1d2b <bench_level0+0x96b>
mov    -0x8(%rbp),%rdi
lea    0x63a(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1d1a <bench_level0+0x95a>
mov    -0x18(%rbp),%rax
mov    0x23ea(%rip),%rcx
cmp    (%rcx),%rax
jne    1bf7 <bench_level0+0x837>
movq   $0x3e8,-0x18(%rbp)
mov    -0x20(%rbp),%rdi
lea    0x60d(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1c1f <bench_level0+0x85f>
mov    -0x18(%rbp),%rdi
call   1140 <process_fork_create@plt>
jmp    1d15 <bench_level0+0x955>
mov    -0x20(%rbp),%rdi
lea    0x5f2(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1c47 <bench_level0+0x887>
mov    -0x18(%rbp),%rdi
call   1090 <process_fork_destroy@plt>
jmp    1d10 <bench_level0+0x950>
mov    -0x20(%rbp),%rdi
lea    0x5bc(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1c6f <bench_level0+0x8af>
mov    -0x18(%rbp),%rdi
call   1220 <process_vfork_create@plt>
jmp    1d0b <bench_level0+0x94b>
mov    -0x20(%rbp),%rdi
lea    0x5a1(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1c97 <bench_level0+0x8d7>
mov    -0x18(%rbp),%rdi
call   1100 <process_vfork_destroy@plt>
jmp    1d06 <bench_level0+0x946>
mov    -0x20(%rbp),%rdi
lea    0x587(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1cbf <bench_level0+0x8ff>
mov    -0x18(%rbp),%rdi
call   10f0 <process_pthread_create@plt>
jmp    1d01 <bench_level0+0x941>
mov    -0x20(%rbp),%rdi
lea    0x56e(%rip),%rsi
call   1160 <strcmp@plt>
cmp    $0x0,%rax
jne    1ce7 <bench_level0+0x927>
mov    -0x18(%rbp),%rdi
call   10b0 <process_pthread_destroy@plt>
jmp    1cfc <bench_level0+0x93c>
mov    0x22f2(%rip),%rax
mov    (%rax),%edi
lea    0x551(%rip),%rsi
call   1180 <fprintf@plt>
jmp    1d01 <bench_level0+0x941>
jmp    1d06 <bench_level0+0x946>
jmp    1d0b <bench_level0+0x94b>
jmp    1d10 <bench_level0+0x950>
jmp    1d15 <bench_level0+0x955>
jmp    1d26 <bench_level0+0x966>
lea    0x560(%rip),%rdi
call   10d0 <printf@plt>
jmp    1d2b <bench_level0+0x96b>
jmp    1d30 <bench_level0+0x970>
jmp    1d35 <bench_level0+0x975>
jmp    1d3a <bench_level0+0x97a>
jmp    1d3f <bench_level0+0x97f>
jmp    1d44 <bench_level0+0x984>
jmp    1d49 <bench_level0+0x989>
jmp    1d4e <bench_level0+0x98e>
add    $0x30,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<bench_level0>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
push   %rax
mov    %r9,%rbx
mov    %r8,%r15
mov    %rcx,%r12
mov    %edx,%r13d
mov    %esi,%r14d
mov    %rdi,%rbp
lea    0xc1c(%rip),%rsi
call   1160 <strcmp@plt>
test   %rax,%rax
je     14cc <bench_level0+0x10c>
lea    0xc57(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1541 <bench_level0+0x181>
lea    0xcc9(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     162b <bench_level0+0x26b>
lea    0xccb(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1697 <bench_level0+0x2d7>
lea    0xd21(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1784 <bench_level0+0x3c4>
lea    0xd0d(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     17e5 <bench_level0+0x425>
lea    0xcf9(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1859 <bench_level0+0x499>
lea    0xd40(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1976 <bench_level0+0x5b6>
lea    0xd65(%rip),%rsi
mov    %rbp,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1a42 <bench_level0+0x682>
lea    0xdc8(%rip),%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1070 <puts@plt>
lea    0xb36(%rip),%rsi
mov    %rbx,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     167e <bench_level0+0x2be>
lea    0xb22(%rip),%rsi
mov    %rbx,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1755 <bench_level0+0x395>
lea    0xb10(%rip),%rsi
mov    %rbx,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     17a0 <bench_level0+0x3e0>
lea    0xafd(%rip),%rsi
mov    %rbx,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     17fe <bench_level0+0x43e>
mov    0x2aad(%rip),%rax
mov    (%rax),%edi
lea    0xae3(%rip),%rsi
jmp    166b <bench_level0+0x2ab>
lea    0xb0f(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     176e <bench_level0+0x3ae>
lea    0xafe(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     17b9 <bench_level0+0x3f9>
lea    0xaef(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1817 <bench_level0+0x457>
lea    0xae4(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1947 <bench_level0+0x587>
lea    0xb73(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1a16 <bench_level0+0x656>
lea    0xac2(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b13 <bench_level0+0x753>
lea    0xab6(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b55 <bench_level0+0x795>
lea    0xaa7(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1bad <bench_level0+0x7ed>
lea    0xb25(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
jne    165b <bench_level0+0x29b>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1240 <mem_read_random@plt>
lea    0xab1(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     17cf <bench_level0+0x40f>
lea    0xaa0(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     182d <bench_level0+0x46d>
mov    0x297e(%rip),%rax
mov    (%rax),%edi
lea    0xa39(%rip),%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1180 <fprintf@plt>
mov    %r15,%rdi
mov    %r12,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1060 <int_basic_op@plt>
lea    0xa59(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1843 <bench_level0+0x483>
lea    0xa4b(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1960 <bench_level0+0x5a0>
lea    0xa3e(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1a2c <bench_level0+0x66c>
lea    0xa30(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b29 <bench_level0+0x769>
lea    0xa2a(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b6b <bench_level0+0x7ab>
lea    0xa23(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1bc6 <bench_level0+0x806>
lea    0xa1c(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
jne    165b <bench_level0+0x29b>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1040 <file_read_random_direct@plt>
mov    %r15,%rdi
mov    %r12,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1130 <float_basic_op@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1290 <mem_calloc@plt>
mov    %r15,%rdi
mov    %r12,%rsi
mov    %r14d,%edx
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1090 <ipcmain@plt>
mov    %r15,%rdi
mov    %r12,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1210 <long_basic_op@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    12e0 <mem_read_ram@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    12a0 <function_calls@plt>
mov    %r15,%rdi
mov    %r12,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11b0 <netmain@plt>
mov    %r15,%rdi
mov    %r12,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1170 <double_basic_op@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11a0 <mem_write_contig@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1230 <function_calls_recursive@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1030 <mk_rm_dir@plt>
lea    0x911(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b3f <bench_level0+0x77f>
lea    0x902(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b81 <bench_level0+0x7c1>
lea    0x8f4(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1bdc <bench_level0+0x81c>
lea    0x8e7(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b97 <bench_level0+0x7d7>
lea    0x8d5(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b97 <bench_level0+0x7d7>
lea    0x8c3(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1b97 <bench_level0+0x7d7>
lea    0x8b1(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c95 <bench_level0+0x8d5>
lea    0x8a4(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1cc1 <bench_level0+0x901>
lea    0x893(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
jne    165b <bench_level0+0x29b>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    12c0 <goto_jump@plt>
mov    %r14d,%edi
mov    %r13d,%esi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11d0 <mem_write_strided@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    12b0 <file_write@plt>
mov    0x2653(%rip),%rax
cmp    %r12,(%rax)
mov    $0x3e8,%ebx
cmovne %r12,%rbx
lea    0x839(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1afa <bench_level0+0x73a>
lea    0x810(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1afa <bench_level0+0x73a>
lea    0x7fa(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c08 <bench_level0+0x848>
lea    0x7e6(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c37 <bench_level0+0x877>
lea    0x7d5(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c66 <bench_level0+0x8a6>
mov    0x25d8(%rip),%rax
mov    (%rax),%edi
lea    0x7be(%rip),%rsi
jmp    166b <bench_level0+0x2ab>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10e0 <mem_write_random@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1270 <file_read@plt>
mov    0x2587(%rip),%rax
cmp    %r12,(%rax)
mov    $0x3e8,%ebx
cmovne %r12,%rbx
lea    0x7b3(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1bf2 <bench_level0+0x832>
lea    0x7a8(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c21 <bench_level0+0x861>
lea    0x782(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c50 <bench_level0+0x890>
lea    0x777(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1c7f <bench_level0+0x8bf>
lea    0x76d(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1cab <bench_level0+0x8eb>
lea    0x764(%rip),%rsi
mov    %r15,%rdi
call   1160 <strcmp@plt>
test   %rax,%rax
je     1cd7 <bench_level0+0x917>
mov    0x24f4(%rip),%rax
mov    (%rax),%edi
lea    0x753(%rip),%rsi
jmp    166b <bench_level0+0x2ab>
mov    %r14d,%edi
mov    %rbx,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10b0 <sleep_sleep@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1190 <mem_read_contig@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11f0 <file_write_random@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11e0 <all_true@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1200 <read_lat@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1280 <file_read_random@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    11c0 <all_false@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1110 <t2_f2@plt>
mov    %r14d,%edi
mov    %r13d,%esi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1120 <mem_read_strided@plt>
mov    %r14d,%edi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1260 <file_read_direct@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1080 <true_false@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1140 <process_fork_create@plt>
mov    %r14d,%edi
mov    %rbx,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    12d0 <sleep_nop@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10a0 <process_fork_destroy@plt>
mov    %r14d,%edi
mov    %rbx,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1250 <sleep_usleep@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1220 <process_vfork_create@plt>
mov    %r14d,%edi
mov    %rbx,%rsi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1050 <sleep_nanosleep@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1100 <process_vfork_destroy@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10d0 <t_f_random@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10f0 <process_pthread_create@plt>
mov    %r12,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    1150 <switch_jump@plt>
mov    %rbx,%rdi
add    $0x8,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
jmp    10c0 <process_pthread_destroy@plt>

LLVM IR (-O0):
@.str = [9 x i8] c"basic_op\00"
@.str.1 = [4 x i8] c"int\00"
@.str.2 = [6 x i8] c"float\00"
@.str.3 = [5 x i8] c"long\00"
@.str.4 = [7 x i8] c"double\00"
@stderr = global i32 0
@.str.5 = [49 x i8] c"ERROR: check you are using a valid data type...\0A\00"
@.str.6 = [7 x i8] c"memory\00"
@.str.7 = [7 x i8] c"calloc\00"
@.str.8 = [9 x i8] c"read_ram\00"
@.str.9 = [13 x i8] c"write_contig\00"
@.str.10 = [14 x i8] c"write_strided\00"
@.str.11 = [13 x i8] c"write_random\00"
@.str.12 = [12 x i8] c"read_contig\00"
@.str.13 = [9 x i8] c"read_lat\00"
@.str.14 = [13 x i8] c"read_strided\00"
@.str.15 = [12 x i8] c"read_random\00"
@.str.16 = [54 x i8] c"ERROR: check you are using a valid operation type...\0A\00"
@.str.17 = [9 x i8] c"function\00"
@.str.18 = [7 x i8] c"normal\00"
@.str.19 = [10 x i8] c"recursive\00"
@.str.20 = [3 x i8] c"io\00"
@.str.21 = [10 x i8] c"mk_rm_dir\00"
@.str.22 = [11 x i8] c"file_write\00"
@.str.23 = [10 x i8] c"file_read\00"
@.str.24 = [18 x i8] c"file_write_random\00"
@.str.25 = [17 x i8] c"file_read_random\00"
@.str.26 = [17 x i8] c"file_read_direct\00"
@.str.27 = [24 x i8] c"file_read_random_direct\00"
@.str.28 = [4 x i8] c"ipc\00"
@.str.29 = [4 x i8] c"net\00"
@.str.30 = [7 x i8] c"branch\00"
@.str.31 = [9 x i8] c"all_true\00"
@.str.32 = [10 x i8] c"all_false\00"
@.str.33 = [11 x i8] c"true_false\00"
@.str.34 = [6 x i8] c"t2_f2\00"
@.str.35 = [6 x i8] c"t4_f4\00"
@.str.36 = [6 x i8] c"t8_f8\00"
@.str.37 = [11 x i8] c"t_f_random\00"
@.str.38 = [7 x i8] c"switch\00"
@.str.39 = [5 x i8] c"goto\00"
@.str.40 = [6 x i8] c"sleep\00"
@ULONG_MAX = global i64 0
@.str.41 = [2 x i8] c"+\00"
@.str.42 = [4 x i8] c"nop\00"
@.str.43 = [7 x i8] c"usleep\00"
@.str.44 = [10 x i8] c"nanosleep\00"
@.str.45 = [55 x i8] c"ERROR: check you are requesting a valid sleep type...\0A\00"
@.str.46 = [8 x i8] c"process\00"
@.str.47 = [12 x i8] c"fork_create\00"
@.str.48 = [13 x i8] c"fork_destroy\00"
@.str.49 = [13 x i8] c"vfork_create\00"
@.str.50 = [14 x i8] c"vfork_destroy\00"
@.str.51 = [15 x i8] c"pthread_create\00"
@.str.52 = [16 x i8] c"pthread_destroy\00"
@.str.53 = [57 x i8] c"ERROR: check you are requesting a valid process type...\0A\00"
@.str.54 = [22 x i8] c"Not implemented yet.\0A\00"
define void @bench_level0(i8* %0, i32 %1, i32 %2, i64 %3, i8* %4, i8* %5) {
%7 = alloca i8*
%8 = alloca i32
%9 = alloca i32
%10 = alloca i64
%11 = alloca i8*
%12 = alloca i8*
store i8* %0, i8** %7
store i32 %1, i32* %8
store i32 %2, i32* %9
store i64 %3, i64* %10
store i8* %4, i8** %11
store i8* %5, i8** %12
%13 = load i8*, i8** %7
%14 = call i64 @strcmp(i8* %13, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%15 = icmp eq i64 %14, 0
br i1 %15, label %16, label %55
16: ; preds = %6
%17 = load i8*, i8** %12
%18 = call i64 @strcmp(i8* %17, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%19 = icmp eq i64 %18, 0
br i1 %19, label %20, label %24
20: ; preds = %16
%21 = load i8*, i8** %11
%22 = load i64, i64* %10
%23 = call i32 @int_basic_op(i8* %21, i64 %22)
br label %54
24: ; preds = %16
%25 = load i8*, i8** %12
%26 = call i64 @strcmp(i8* %25, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%27 = icmp eq i64 %26, 0
br i1 %27, label %28, label %32
28: ; preds = %24
%29 = load i8*, i8** %11
%30 = load i64, i64* %10
%31 = call i32 @float_basic_op(i8* %29, i64 %30)
br label %53
32: ; preds = %24
%33 = load i8*, i8** %12
%34 = call i64 @strcmp(i8* %33, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%35 = icmp eq i64 %34, 0
br i1 %35, label %36, label %40
36: ; preds = %32
%37 = load i8*, i8** %11
%38 = load i64, i64* %10
%39 = call i32 @long_basic_op(i8* %37, i64 %38)
br label %52
40: ; preds = %32
%41 = load i8*, i8** %12
%42 = call i64 @strcmp(i8* %41, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%43 = icmp eq i64 %42, 0
br i1 %43, label %44, label %48
44: ; preds = %40
%45 = load i8*, i8** %11
%46 = load i64, i64* %10
%47 = call i32 @double_basic_op(i8* %45, i64 %46)
br label %51
48: ; preds = %40
%49 = load i32, i32* @stderr
%50 = call i32 @fprintf(i32 %49, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.5, i64 0, i64 0))
br label %51
51: ; preds = %48, %44
br label %52
52: ; preds = %51, %36
br label %53
53: ; preds = %52, %28
br label %54
54: ; preds = %53, %20
br label %440
55: ; preds = %6
%56 = load i8*, i8** %7
%57 = call i64 @strcmp(i8* %56, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%58 = icmp eq i64 %57, 0
br i1 %58, label %59, label %136
59: ; preds = %55
%60 = load i8*, i8** %11
%61 = call i64 @strcmp(i8* %60, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%62 = icmp eq i64 %61, 0
br i1 %62, label %63, label %66
63: ; preds = %59
%64 = load i32, i32* %8
%65 = call i32 @mem_calloc(i32 %64)
br label %135
66: ; preds = %59
%67 = load i8*, i8** %11
%68 = call i64 @strcmp(i8* %67, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0))
%69 = icmp eq i64 %68, 0
br i1 %69, label %70, label %73
70: ; preds = %66
%71 = load i64, i64* %10
%72 = call i32 @mem_read_ram(i64 %71)
br label %134
73: ; preds = %66
%74 = load i8*, i8** %11
%75 = call i64 @strcmp(i8* %74, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
%76 = icmp eq i64 %75, 0
br i1 %76, label %77, label %80
77: ; preds = %73
%78 = load i32, i32* %8
%79 = call i32 @mem_write_contig(i32 %78)
br label %133
80: ; preds = %73
%81 = load i8*, i8** %11
%82 = call i64 @strcmp(i8* %81, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0))
%83 = icmp eq i64 %82, 0
br i1 %83, label %84, label %88
84: ; preds = %80
%85 = load i32, i32* %8
%86 = load i32, i32* %9
%87 = call i32 @mem_write_strided(i32 %85, i32 %86)
br label %132
88: ; preds = %80
%89 = load i8*, i8** %11
%90 = call i64 @strcmp(i8* %89, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0))
%91 = icmp eq i64 %90, 0
br i1 %91, label %92, label %95
92: ; preds = %88
%93 = load i32, i32* %8
%94 = call i32 @mem_write_random(i32 %93)
br label %131
95: ; preds = %88
%96 = load i8*, i8** %11
%97 = call i64 @strcmp(i8* %96, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%98 = icmp eq i64 %97, 0
br i1 %98, label %99, label %102
99: ; preds = %95
%100 = load i32, i32* %8
%101 = call i32 @mem_read_contig(i32 %100)
br label %130
102: ; preds = %95
%103 = load i8*, i8** %11
%104 = call i64 @strcmp(i8* %103, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0))
%105 = icmp eq i64 %104, 0
br i1 %105, label %106, label %109
106: ; preds = %102
%107 = load i32, i32* %8
%108 = call i32 @read_lat(i32 %107)
br label %129
109: ; preds = %102
%110 = load i8*, i8** %11
%111 = call i64 @strcmp(i8* %110, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0))
%112 = icmp eq i64 %111, 0
br i1 %112, label %113, label %117
113: ; preds = %109
%114 = load i32, i32* %8
%115 = load i32, i32* %9
%116 = call i32 @mem_read_strided(i32 %114, i32 %115)
br label %128
117: ; preds = %109
%118 = load i8*, i8** %11
%119 = call i64 @strcmp(i8* %118, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
%120 = icmp eq i64 %119, 0
br i1 %120, label %121, label %124
121: ; preds = %117
%122 = load i32, i32* %8
%123 = call i32 @mem_read_random(i32 %122)
br label %127
124: ; preds = %117
%125 = load i32, i32* @stderr
%126 = call i32 @fprintf(i32 %125, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %127
127: ; preds = %124, %121
br label %128
128: ; preds = %127, %113
br label %129
129: ; preds = %128, %106
br label %130
130: ; preds = %129, %99
br label %131
131: ; preds = %130, %92
br label %132
132: ; preds = %131, %84
br label %133
133: ; preds = %132, %77
br label %134
134: ; preds = %133, %70
br label %135
135: ; preds = %134, %63
br label %439
136: ; preds = %55
%137 = load i8*, i8** %7
%138 = call i64 @strcmp(i8* %137, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0))
%139 = icmp eq i64 %138, 0
br i1 %139, label %140, label %159
140: ; preds = %136
%141 = load i8*, i8** %11
%142 = call i64 @strcmp(i8* %141, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0))
%143 = icmp eq i64 %142, 0
br i1 %143, label %144, label %147
144: ; preds = %140
%145 = load i32, i32* %8
%146 = call i32 @function_calls(i32 %145)
br label %158
147: ; preds = %140
%148 = load i8*, i8** %11
%149 = call i64 @strcmp(i8* %148, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0))
%150 = icmp eq i64 %149, 0
br i1 %150, label %151, label %154
151: ; preds = %147
%152 = load i32, i32* %8
%153 = call i32 @function_calls_recursive(i32 %152)
br label %157
154: ; preds = %147
%155 = load i32, i32* @stderr
%156 = call i32 @fprintf(i32 %155, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %157
157: ; preds = %154, %151
br label %158
158: ; preds = %157, %144
br label %438
159: ; preds = %136
%160 = load i8*, i8** %7
%161 = call i64 @strcmp(i8* %160, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i64 0, i64 0))
%162 = icmp eq i64 %161, 0
br i1 %162, label %163, label %222
163: ; preds = %159
%164 = load i8*, i8** %11
%165 = call i64 @strcmp(i8* %164, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.21, i64 0, i64 0))
%166 = icmp eq i64 %165, 0
br i1 %166, label %167, label %170
167: ; preds = %163
%168 = load i32, i32* %8
%169 = call i32 @mk_rm_dir(i32 %168)
br label %221
170: ; preds = %163
%171 = load i8*, i8** %11
%172 = call i64 @strcmp(i8* %171, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%173 = icmp eq i64 %172, 0
br i1 %173, label %174, label %177
174: ; preds = %170
%175 = load i32, i32* %8
%176 = call i32 @file_write(i32 %175)
br label %220
177: ; preds = %170
%178 = load i8*, i8** %11
%179 = call i64 @strcmp(i8* %178, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.23, i64 0, i64 0))
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %184
181: ; preds = %177
%182 = load i32, i32* %8
%183 = call i32 @file_read(i32 %182)
br label %219
184: ; preds = %177
%185 = load i8*, i8** %11
%186 = call i64 @strcmp(i8* %185, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.24, i64 0, i64 0))
%187 = icmp eq i64 %186, 0
br i1 %187, label %188, label %191
188: ; preds = %184
%189 = load i32, i32* %8
%190 = call i32 @file_write_random(i32 %189)
br label %218
191: ; preds = %184
%192 = load i8*, i8** %11
%193 = call i64 @strcmp(i8* %192, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.25, i64 0, i64 0))
%194 = icmp eq i64 %193, 0
br i1 %194, label %195, label %198
195: ; preds = %191
%196 = load i32, i32* %8
%197 = call i32 @file_read_random(i32 %196)
br label %217
198: ; preds = %191
%199 = load i8*, i8** %11
%200 = call i64 @strcmp(i8* %199, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.26, i64 0, i64 0))
%201 = icmp eq i64 %200, 0
br i1 %201, label %202, label %205
202: ; preds = %198
%203 = load i32, i32* %8
%204 = call i32 @file_read_direct(i32 %203)
br label %216
205: ; preds = %198
%206 = load i8*, i8** %11
%207 = call i64 @strcmp(i8* %206, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.27, i64 0, i64 0))
%208 = icmp eq i64 %207, 0
br i1 %208, label %209, label %212
209: ; preds = %205
%210 = load i32, i32* %8
%211 = call i32 @file_read_random_direct(i32 %210)
br label %215
212: ; preds = %205
%213 = load i32, i32* @stderr
%214 = call i32 @fprintf(i32 %213, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %215
215: ; preds = %212, %209
br label %216
216: ; preds = %215, %202
br label %217
217: ; preds = %216, %195
br label %218
218: ; preds = %217, %188
br label %219
219: ; preds = %218, %181
br label %220
220: ; preds = %219, %174
br label %221
221: ; preds = %220, %167
br label %437
222: ; preds = %159
%223 = load i8*, i8** %7
%224 = call i64 @strcmp(i8* %223, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%225 = icmp eq i64 %224, 0
br i1 %225, label %226, label %231
226: ; preds = %222
%227 = load i8*, i8** %11
%228 = load i64, i64* %10
%229 = load i32, i32* %8
%230 = call i32 @ipcmain(i8* %227, i64 %228, i32 %229)
br label %436
231: ; preds = %222
%232 = load i8*, i8** %7
%233 = call i64 @strcmp(i8* %232, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%234 = icmp eq i64 %233, 0
br i1 %234, label %235, label %239
235: ; preds = %231
%236 = load i8*, i8** %11
%237 = load i64, i64* %10
%238 = call i32 @netmain(i8* %236, i64 %237)
br label %435
239: ; preds = %231
%240 = load i8*, i8** %7
%241 = call i64 @strcmp(i8* %240, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0))
%242 = icmp eq i64 %241, 0
br i1 %242, label %243, label %318
243: ; preds = %239
%244 = load i8*, i8** %11
%245 = call i64 @strcmp(i8* %244, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i64 0, i64 0))
%246 = icmp eq i64 %245, 0
br i1 %246, label %247, label %250
247: ; preds = %243
%248 = load i64, i64* %10
%249 = call i32 @all_true(i64 %248)
br label %317
250: ; preds = %243
%251 = load i8*, i8** %11
%252 = call i64 @strcmp(i8* %251, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.32, i64 0, i64 0))
%253 = icmp eq i64 %252, 0
br i1 %253, label %254, label %257
254: ; preds = %250
%255 = load i64, i64* %10
%256 = call i32 @all_false(i64 %255)
br label %316
257: ; preds = %250
%258 = load i8*, i8** %11
%259 = call i64 @strcmp(i8* %258, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.33, i64 0, i64 0))
%260 = icmp eq i64 %259, 0
br i1 %260, label %261, label %264
261: ; preds = %257
%262 = load i64, i64* %10
%263 = call i32 @true_false(i64 %262)
br label %315
264: ; preds = %257
%265 = load i8*, i8** %11
%266 = call i64 @strcmp(i8* %265, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.34, i64 0, i64 0))
%267 = icmp eq i64 %266, 0
br i1 %267, label %268, label %271
268: ; preds = %264
%269 = load i64, i64* %10
%270 = call i32 @t2_f2(i64 %269)
br label %314
271: ; preds = %264
%272 = load i8*, i8** %11
%273 = call i64 @strcmp(i8* %272, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0))
%274 = icmp eq i64 %273, 0
br i1 %274, label %275, label %278
275: ; preds = %271
%276 = load i64, i64* %10
%277 = call i32 @t2_f2(i64 %276)
br label %313
278: ; preds = %271
%279 = load i8*, i8** %11
%280 = call i64 @strcmp(i8* %279, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.36, i64 0, i64 0))
%281 = icmp eq i64 %280, 0
br i1 %281, label %282, label %285
282: ; preds = %278
%283 = load i64, i64* %10
%284 = call i32 @t2_f2(i64 %283)
br label %312
285: ; preds = %278
%286 = load i8*, i8** %11
%287 = call i64 @strcmp(i8* %286, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.37, i64 0, i64 0))
%288 = icmp eq i64 %287, 0
br i1 %288, label %289, label %292
289: ; preds = %285
%290 = load i64, i64* %10
%291 = call i32 @t_f_random(i64 %290)
br label %311
292: ; preds = %285
%293 = load i8*, i8** %11
%294 = call i64 @strcmp(i8* %293, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%295 = icmp eq i64 %294, 0
br i1 %295, label %296, label %299
296: ; preds = %292
%297 = load i64, i64* %10
%298 = call i32 @switch_jump(i64 %297)
br label %310
299: ; preds = %292
%300 = load i8*, i8** %11
%301 = call i64 @strcmp(i8* %300, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%302 = icmp eq i64 %301, 0
br i1 %302, label %303, label %306
303: ; preds = %299
%304 = load i64, i64* %10
%305 = call i32 @goto_jump(i64 %304)
br label %309
306: ; preds = %299
%307 = load i32, i32* @stderr
%308 = call i32 @fprintf(i32 %307, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %309
309: ; preds = %306, %303
br label %310
310: ; preds = %309, %296
br label %311
311: ; preds = %310, %289
br label %312
312: ; preds = %311, %282
br label %313
313: ; preds = %312, %275
br label %314
314: ; preds = %313, %268
br label %315
315: ; preds = %314, %261
br label %316
316: ; preds = %315, %254
br label %317
317: ; preds = %316, %247
br label %434
318: ; preds = %239
%319 = load i8*, i8** %7
%320 = call i64 @strcmp(i8* %319, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.40, i64 0, i64 0))
%321 = icmp eq i64 %320, 0
br i1 %321, label %322, label %370
322: ; preds = %318
%323 = load i64, i64* %10
%324 = load i64, i64* @ULONG_MAX
%325 = icmp eq i64 %323, %324
br i1 %325, label %326, label %327
326: ; preds = %322
store i64 1000, i64* %10
br label %327
327: ; preds = %326, %322
%328 = load i8*, i8** %11
%329 = call i64 @strcmp(i8* %328, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.40, i64 0, i64 0))
%330 = icmp eq i64 %329, 0
br i1 %330, label %335, label %331
331: ; preds = %327
%332 = load i8*, i8** %11
%333 = call i64 @strcmp(i8* %332, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.41, i64 0, i64 0))
%334 = icmp eq i64 %333, 0
br i1 %334, label %335, label %339
335: ; preds = %331, %327
%336 = load i32, i32* %8
%337 = load i64, i64* %10
%338 = call i32 @sleep_sleep(i32 %336, i64 %337)
br label %369
339: ; preds = %331
%340 = load i8*, i8** %11
%341 = call i64 @strcmp(i8* %340, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%342 = icmp eq i64 %341, 0
br i1 %342, label %343, label %347
343: ; preds = %339
%344 = load i32, i32* %8
%345 = load i64, i64* %10
%346 = call i32 @sleep_nop(i32 %344, i64 %345)
br label %368
347: ; preds = %339
%348 = load i8*, i8** %11
%349 = call i64 @strcmp(i8* %348, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0))
%350 = icmp eq i64 %349, 0
br i1 %350, label %351, label %355
351: ; preds = %347
%352 = load i32, i32* %8
%353 = load i64, i64* %10
%354 = call i32 @sleep_usleep(i32 %352, i64 %353)
br label %367
355: ; preds = %347
%356 = load i8*, i8** %11
%357 = call i64 @strcmp(i8* %356, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.44, i64 0, i64 0))
%358 = icmp eq i64 %357, 0
br i1 %358, label %359, label %363
359: ; preds = %355
%360 = load i32, i32* %8
%361 = load i64, i64* %10
%362 = call i32 @sleep_nanosleep(i32 %360, i64 %361)
br label %366
363: ; preds = %355
%364 = load i32, i32* @stderr
%365 = call i32 @fprintf(i32 %364, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.45, i64 0, i64 0))
br label %366
366: ; preds = %363, %359
br label %367
367: ; preds = %366, %351
br label %368
368: ; preds = %367, %343
br label %369
369: ; preds = %368, %335
br label %433
370: ; preds = %318
%371 = load i8*, i8** %7
%372 = call i64 @strcmp(i8* %371, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0))
%373 = icmp eq i64 %372, 0
br i1 %373, label %374, label %430
374: ; preds = %370
%375 = load i64, i64* %10
%376 = load i64, i64* @ULONG_MAX
%377 = icmp eq i64 %375, %376
br i1 %377, label %378, label %379
378: ; preds = %374
store i64 1000, i64* %10
br label %379
379: ; preds = %378, %374
%380 = load i8*, i8** %11
%381 = call i64 @strcmp(i8* %380, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.47, i64 0, i64 0))
%382 = icmp eq i64 %381, 0
br i1 %382, label %383, label %386
383: ; preds = %379
%384 = load i64, i64* %10
%385 = call i32 @process_fork_create(i64 %384)
br label %429
386: ; preds = %379
%387 = load i8*, i8** %11
%388 = call i64 @strcmp(i8* %387, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.48, i64 0, i64 0))
%389 = icmp eq i64 %388, 0
br i1 %389, label %390, label %393
390: ; preds = %386
%391 = load i64, i64* %10
%392 = call i32 @process_fork_destroy(i64 %391)
br label %428
393: ; preds = %386
%394 = load i8*, i8** %11
%395 = call i64 @strcmp(i8* %394, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.49, i64 0, i64 0))
%396 = icmp eq i64 %395, 0
br i1 %396, label %397, label %400
397: ; preds = %393
%398 = load i64, i64* %10
%399 = call i32 @process_vfork_create(i64 %398)
br label %427
400: ; preds = %393
%401 = load i8*, i8** %11
%402 = call i64 @strcmp(i8* %401, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.50, i64 0, i64 0))
%403 = icmp eq i64 %402, 0
br i1 %403, label %404, label %407
404: ; preds = %400
%405 = load i64, i64* %10
%406 = call i32 @process_vfork_destroy(i64 %405)
br label %426
407: ; preds = %400
%408 = load i8*, i8** %11
%409 = call i64 @strcmp(i8* %408, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.51, i64 0, i64 0))
%410 = icmp eq i64 %409, 0
br i1 %410, label %411, label %414
411: ; preds = %407
%412 = load i64, i64* %10
%413 = call i32 @process_pthread_create(i64 %412)
br label %425
414: ; preds = %407
%415 = load i8*, i8** %11
%416 = call i64 @strcmp(i8* %415, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.52, i64 0, i64 0))
%417 = icmp eq i64 %416, 0
br i1 %417, label %418, label %421
418: ; preds = %414
%419 = load i64, i64* %10
%420 = call i32 @process_pthread_destroy(i64 %419)
br label %424
421: ; preds = %414
%422 = load i32, i32* @stderr
%423 = call i32 @fprintf(i32 %422, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.53, i64 0, i64 0))
br label %424
424: ; preds = %421, %418
br label %425
425: ; preds = %424, %411
br label %426
426: ; preds = %425, %404
br label %427
427: ; preds = %426, %397
br label %428
428: ; preds = %427, %390
br label %429
429: ; preds = %428, %383
br label %432
430: ; preds = %370
%431 = call i32 @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.54, i64 0, i64 0))
br label %432
432: ; preds = %430, %429
br label %433
433: ; preds = %432, %369
br label %434
434: ; preds = %433, %317
br label %435
435: ; preds = %434, %235
br label %436
436: ; preds = %435, %226
br label %437
437: ; preds = %436, %221
br label %438
438: ; preds = %437, %158
br label %439
439: ; preds = %438, %135
br label %440
440: ; preds = %439, %54
ret void
}

LLVM IR (-O2):
@.str = [9 x i8] c"basic_op\00"
@.str.1 = [4 x i8] c"int\00"
@.str.2 = [6 x i8] c"float\00"
@.str.3 = [5 x i8] c"long\00"
@.str.4 = [7 x i8] c"double\00"
@stderr = global i32 0
@.str.5 = [49 x i8] c"ERROR: check you are using a valid data type...\0A\00"
@.str.6 = [7 x i8] c"memory\00"
@.str.7 = [7 x i8] c"calloc\00"
@.str.8 = [9 x i8] c"read_ram\00"
@.str.9 = [13 x i8] c"write_contig\00"
@.str.10 = [14 x i8] c"write_strided\00"
@.str.11 = [13 x i8] c"write_random\00"
@.str.12 = [12 x i8] c"read_contig\00"
@.str.13 = [9 x i8] c"read_lat\00"
@.str.14 = [13 x i8] c"read_strided\00"
@.str.15 = [12 x i8] c"read_random\00"
@.str.16 = [54 x i8] c"ERROR: check you are using a valid operation type...\0A\00"
@.str.17 = [9 x i8] c"function\00"
@.str.18 = [7 x i8] c"normal\00"
@.str.19 = [10 x i8] c"recursive\00"
@.str.20 = [3 x i8] c"io\00"
@.str.21 = [10 x i8] c"mk_rm_dir\00"
@.str.22 = [11 x i8] c"file_write\00"
@.str.23 = [10 x i8] c"file_read\00"
@.str.24 = [18 x i8] c"file_write_random\00"
@.str.25 = [17 x i8] c"file_read_random\00"
@.str.26 = [17 x i8] c"file_read_direct\00"
@.str.27 = [24 x i8] c"file_read_random_direct\00"
@.str.28 = [4 x i8] c"ipc\00"
@.str.29 = [4 x i8] c"net\00"
@.str.30 = [7 x i8] c"branch\00"
@.str.31 = [9 x i8] c"all_true\00"
@.str.32 = [10 x i8] c"all_false\00"
@.str.33 = [11 x i8] c"true_false\00"
@.str.34 = [6 x i8] c"t2_f2\00"
@.str.35 = [6 x i8] c"t4_f4\00"
@.str.36 = [6 x i8] c"t8_f8\00"
@.str.37 = [11 x i8] c"t_f_random\00"
@.str.38 = [7 x i8] c"switch\00"
@.str.39 = [5 x i8] c"goto\00"
@.str.40 = [6 x i8] c"sleep\00"
@ULONG_MAX = global i64 0
@.str.41 = [2 x i8] c"+\00"
@.str.42 = [4 x i8] c"nop\00"
@.str.43 = [7 x i8] c"usleep\00"
@.str.44 = [10 x i8] c"nanosleep\00"
@.str.45 = [55 x i8] c"ERROR: check you are requesting a valid sleep type...\0A\00"
@.str.46 = [8 x i8] c"process\00"
@.str.47 = [12 x i8] c"fork_create\00"
@.str.48 = [13 x i8] c"fork_destroy\00"
@.str.49 = [13 x i8] c"vfork_create\00"
@.str.50 = [14 x i8] c"vfork_destroy\00"
@.str.51 = [15 x i8] c"pthread_create\00"
@.str.52 = [16 x i8] c"pthread_destroy\00"
@.str.53 = [57 x i8] c"ERROR: check you are requesting a valid process type...\0A\00"
@str = [21 x i8] c"Not implemented yet.\00"
define void @bench_level0(i8* %0, i32 %1, i32 %2, i64 %3, i8* %4, i8* %5) {
%7 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%8 = icmp eq i64 %7, 0
br i1 %8, label %9, label %32
9: ; preds = %6
%10 = tail call i64 @strcmp(i8* %5, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0))
%11 = icmp eq i64 %10, 0
br i1 %11, label %12, label %14
12: ; preds = %9
%13 = tail call i32 @int_basic_op(i8* %4, i64 %3)
br label %274
14: ; preds = %9
%15 = tail call i64 @strcmp(i8* %5, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0))
%16 = icmp eq i64 %15, 0
br i1 %16, label %17, label %19
17: ; preds = %14
%18 = tail call i32 @float_basic_op(i8* %4, i64 %3)
br label %274
19: ; preds = %14
%20 = tail call i64 @strcmp(i8* %5, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0))
%21 = icmp eq i64 %20, 0
br i1 %21, label %22, label %24
22: ; preds = %19
%23 = tail call i32 @long_basic_op(i8* %4, i64 %3)
br label %274
24: ; preds = %19
%25 = tail call i64 @strcmp(i8* %5, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.4, i64 0, i64 0))
%26 = icmp eq i64 %25, 0
br i1 %26, label %27, label %29
27: ; preds = %24
%28 = tail call i32 @double_basic_op(i8* %4, i64 %3)
br label %274
29: ; preds = %24
%30 = load i32, i32* @stderr
%31 = tail call i32 @fprintf(i32 %30, i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.5, i64 0, i64 0))
br label %274
32: ; preds = %6
%33 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.6, i64 0, i64 0))
%34 = icmp eq i64 %33, 0
br i1 %34, label %35, label %83
35: ; preds = %32
%36 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.7, i64 0, i64 0))
%37 = icmp eq i64 %36, 0
br i1 %37, label %38, label %40
38: ; preds = %35
%39 = tail call i32 @mem_calloc(i32 %1)
br label %274
40: ; preds = %35
%41 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.8, i64 0, i64 0))
%42 = icmp eq i64 %41, 0
br i1 %42, label %43, label %45
43: ; preds = %40
%44 = tail call i32 @mem_read_ram(i64 %3)
br label %274
45: ; preds = %40
%46 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.9, i64 0, i64 0))
%47 = icmp eq i64 %46, 0
br i1 %47, label %48, label %50
48: ; preds = %45
%49 = tail call i32 @mem_write_contig(i32 %1)
br label %274
50: ; preds = %45
%51 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.10, i64 0, i64 0))
%52 = icmp eq i64 %51, 0
br i1 %52, label %53, label %55
53: ; preds = %50
%54 = tail call i32 @mem_write_strided(i32 %1, i32 %2)
br label %274
55: ; preds = %50
%56 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.11, i64 0, i64 0))
%57 = icmp eq i64 %56, 0
br i1 %57, label %58, label %60
58: ; preds = %55
%59 = tail call i32 @mem_write_random(i32 %1)
br label %274
60: ; preds = %55
%61 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.12, i64 0, i64 0))
%62 = icmp eq i64 %61, 0
br i1 %62, label %63, label %65
63: ; preds = %60
%64 = tail call i32 @mem_read_contig(i32 %1)
br label %274
65: ; preds = %60
%66 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.13, i64 0, i64 0))
%67 = icmp eq i64 %66, 0
br i1 %67, label %68, label %70
68: ; preds = %65
%69 = tail call i32 @read_lat(i32 %1)
br label %274
70: ; preds = %65
%71 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.14, i64 0, i64 0))
%72 = icmp eq i64 %71, 0
br i1 %72, label %73, label %75
73: ; preds = %70
%74 = tail call i32 @mem_read_strided(i32 %1, i32 %2)
br label %274
75: ; preds = %70
%76 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.15, i64 0, i64 0))
%77 = icmp eq i64 %76, 0
br i1 %77, label %78, label %80
78: ; preds = %75
%79 = tail call i32 @mem_read_random(i32 %1)
br label %274
80: ; preds = %75
%81 = load i32, i32* @stderr
%82 = tail call i32 @fprintf(i32 %81, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %274
83: ; preds = %32
%84 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.17, i64 0, i64 0))
%85 = icmp eq i64 %84, 0
br i1 %85, label %86, label %99
86: ; preds = %83
%87 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.18, i64 0, i64 0))
%88 = icmp eq i64 %87, 0
br i1 %88, label %89, label %91
89: ; preds = %86
%90 = tail call i32 @function_calls(i32 %1)
br label %274
91: ; preds = %86
%92 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.19, i64 0, i64 0))
%93 = icmp eq i64 %92, 0
br i1 %93, label %94, label %96
94: ; preds = %91
%95 = tail call i32 @function_calls_recursive(i32 %1)
br label %274
96: ; preds = %91
%97 = load i32, i32* @stderr
%98 = tail call i32 @fprintf(i32 %97, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %274
99: ; preds = %83
%100 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.20, i64 0, i64 0))
%101 = icmp eq i64 %100, 0
br i1 %101, label %102, label %140
102: ; preds = %99
%103 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.21, i64 0, i64 0))
%104 = icmp eq i64 %103, 0
br i1 %104, label %105, label %107
105: ; preds = %102
%106 = tail call i32 @mk_rm_dir(i32 %1)
br label %274
107: ; preds = %102
%108 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.22, i64 0, i64 0))
%109 = icmp eq i64 %108, 0
br i1 %109, label %110, label %112
110: ; preds = %107
%111 = tail call i32 @file_write(i32 %1)
br label %274
112: ; preds = %107
%113 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.23, i64 0, i64 0))
%114 = icmp eq i64 %113, 0
br i1 %114, label %115, label %117
115: ; preds = %112
%116 = tail call i32 @file_read(i32 %1)
br label %274
117: ; preds = %112
%118 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.24, i64 0, i64 0))
%119 = icmp eq i64 %118, 0
br i1 %119, label %120, label %122
120: ; preds = %117
%121 = tail call i32 @file_write_random(i32 %1)
br label %274
122: ; preds = %117
%123 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.25, i64 0, i64 0))
%124 = icmp eq i64 %123, 0
br i1 %124, label %125, label %127
125: ; preds = %122
%126 = tail call i32 @file_read_random(i32 %1)
br label %274
127: ; preds = %122
%128 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.26, i64 0, i64 0))
%129 = icmp eq i64 %128, 0
br i1 %129, label %130, label %132
130: ; preds = %127
%131 = tail call i32 @file_read_direct(i32 %1)
br label %274
132: ; preds = %127
%133 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.27, i64 0, i64 0))
%134 = icmp eq i64 %133, 0
br i1 %134, label %135, label %137
135: ; preds = %132
%136 = tail call i32 @file_read_random_direct(i32 %1)
br label %274
137: ; preds = %132
%138 = load i32, i32* @stderr
%139 = tail call i32 @fprintf(i32 %138, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %274
140: ; preds = %99
%141 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.28, i64 0, i64 0))
%142 = icmp eq i64 %141, 0
br i1 %142, label %143, label %145
143: ; preds = %140
%144 = tail call i32 @ipcmain(i8* %4, i64 %3, i32 %1)
br label %274
145: ; preds = %140
%146 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%147 = icmp eq i64 %146, 0
br i1 %147, label %148, label %150
148: ; preds = %145
%149 = tail call i32 @netmain(i8* %4, i64 %3)
br label %274
150: ; preds = %145
%151 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.30, i64 0, i64 0))
%152 = icmp eq i64 %151, 0
br i1 %152, label %153, label %201
153: ; preds = %150
%154 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.31, i64 0, i64 0))
%155 = icmp eq i64 %154, 0
br i1 %155, label %156, label %158
156: ; preds = %153
%157 = tail call i32 @all_true(i64 %3)
br label %274
158: ; preds = %153
%159 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.32, i64 0, i64 0))
%160 = icmp eq i64 %159, 0
br i1 %160, label %161, label %163
161: ; preds = %158
%162 = tail call i32 @all_false(i64 %3)
br label %274
163: ; preds = %158
%164 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.33, i64 0, i64 0))
%165 = icmp eq i64 %164, 0
br i1 %165, label %166, label %168
166: ; preds = %163
%167 = tail call i32 @true_false(i64 %3)
br label %274
168: ; preds = %163
%169 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.34, i64 0, i64 0))
%170 = icmp eq i64 %169, 0
br i1 %170, label %171, label %173
171: ; preds = %168
%172 = tail call i32 @t2_f2(i64 %3)
br label %274
173: ; preds = %168
%174 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0))
%175 = icmp eq i64 %174, 0
br i1 %175, label %176, label %178
176: ; preds = %173
%177 = tail call i32 @t2_f2(i64 %3)
br label %274
178: ; preds = %173
%179 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.36, i64 0, i64 0))
%180 = icmp eq i64 %179, 0
br i1 %180, label %181, label %183
181: ; preds = %178
%182 = tail call i32 @t2_f2(i64 %3)
br label %274
183: ; preds = %178
%184 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([11 x i8], [11 x i8]* @.str.37, i64 0, i64 0))
%185 = icmp eq i64 %184, 0
br i1 %185, label %186, label %188
186: ; preds = %183
%187 = tail call i32 @t_f_random(i64 %3)
br label %274
188: ; preds = %183
%189 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.38, i64 0, i64 0))
%190 = icmp eq i64 %189, 0
br i1 %190, label %191, label %193
191: ; preds = %188
%192 = tail call i32 @switch_jump(i64 %3)
br label %274
193: ; preds = %188
%194 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.39, i64 0, i64 0))
%195 = icmp eq i64 %194, 0
br i1 %195, label %196, label %198
196: ; preds = %193
%197 = tail call i32 @goto_jump(i64 %3)
br label %274
198: ; preds = %193
%199 = load i32, i32* @stderr
%200 = tail call i32 @fprintf(i32 %199, i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.16, i64 0, i64 0))
br label %274
201: ; preds = %150
%202 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.40, i64 0, i64 0))
%203 = icmp eq i64 %202, 0
br i1 %203, label %204, label %233
204: ; preds = %201
%205 = load i64, i64* @ULONG_MAX
%206 = icmp eq i64 %205, %3
%207 = select i1 %206, i64 1000, i64 %3
%208 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.40, i64 0, i64 0))
%209 = icmp eq i64 %208, 0
br i1 %209, label %213, label %210
210: ; preds = %204
%211 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.41, i64 0, i64 0))
%212 = icmp eq i64 %211, 0
br i1 %212, label %213, label %215
213: ; preds = %210, %204
%214 = tail call i32 @sleep_sleep(i32 %1, i64 %207)
br label %274
215: ; preds = %210
%216 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.42, i64 0, i64 0))
%217 = icmp eq i64 %216, 0
br i1 %217, label %218, label %220
218: ; preds = %215
%219 = tail call i32 @sleep_nop(i32 %1, i64 %207)
br label %274
220: ; preds = %215
%221 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.43, i64 0, i64 0))
%222 = icmp eq i64 %221, 0
br i1 %222, label %223, label %225
223: ; preds = %220
%224 = tail call i32 @sleep_usleep(i32 %1, i64 %207)
br label %274
225: ; preds = %220
%226 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.44, i64 0, i64 0))
%227 = icmp eq i64 %226, 0
br i1 %227, label %228, label %230
228: ; preds = %225
%229 = tail call i32 @sleep_nanosleep(i32 %1, i64 %207)
br label %274
230: ; preds = %225
%231 = load i32, i32* @stderr
%232 = tail call i32 @fprintf(i32 %231, i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.45, i64 0, i64 0))
br label %274
233: ; preds = %201
%234 = tail call i64 @strcmp(i8* %0, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.46, i64 0, i64 0))
%235 = icmp eq i64 %234, 0
br i1 %235, label %236, label %272
236: ; preds = %233
%237 = load i64, i64* @ULONG_MAX
%238 = icmp eq i64 %237, %3
%239 = select i1 %238, i64 1000, i64 %3
%240 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.47, i64 0, i64 0))
%241 = icmp eq i64 %240, 0
br i1 %241, label %242, label %244
242: ; preds = %236
%243 = tail call i32 @process_fork_create(i64 %239)
br label %274
244: ; preds = %236
%245 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.48, i64 0, i64 0))
%246 = icmp eq i64 %245, 0
br i1 %246, label %247, label %249
247: ; preds = %244
%248 = tail call i32 @process_fork_destroy(i64 %239)
br label %274
249: ; preds = %244
%250 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.49, i64 0, i64 0))
%251 = icmp eq i64 %250, 0
br i1 %251, label %252, label %254
252: ; preds = %249
%253 = tail call i32 @process_vfork_create(i64 %239)
br label %274
254: ; preds = %249
%255 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.50, i64 0, i64 0))
%256 = icmp eq i64 %255, 0
br i1 %256, label %257, label %259
257: ; preds = %254
%258 = tail call i32 @process_vfork_destroy(i64 %239)
br label %274
259: ; preds = %254
%260 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.51, i64 0, i64 0))
%261 = icmp eq i64 %260, 0
br i1 %261, label %262, label %264
262: ; preds = %259
%263 = tail call i32 @process_pthread_create(i64 %239)
br label %274
264: ; preds = %259
%265 = tail call i64 @strcmp(i8* %4, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.52, i64 0, i64 0))
%266 = icmp eq i64 %265, 0
br i1 %266, label %267, label %269
267: ; preds = %264
%268 = tail call i32 @process_pthread_destroy(i64 %239)
br label %274
269: ; preds = %264
%270 = load i32, i32* @stderr
%271 = tail call i32 @fprintf(i32 %270, i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.53, i64 0, i64 0))
br label %274
272: ; preds = %233
%273 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str, i64 0, i64 0))
br label %274
274: ; preds = %43, %53, %63, %73, %80, %78, %68, %58, %48, %38, %110, %120, %130, %137, %135, %125, %115, %105, %148, %218, %228, %230, %223, %213, %242, %252, %262, %269, %267, %257, %247, %272, %156, %166, %176, %186, %196, %198, %191, %181, %171, %161, %143, %89, %96, %94, %12, %22, %29, %27, %17
ret void
}