#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 /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *);
void usage() {
  printf("Tool:    ga_calc_dist\n\nSummary: report the distance of two "
         "peaks(mode:two) or inter-summit distance(mode:isd)\n\nUsage:   "
         "ga_calc_dist [options] -1 <file1> -2 <file2> -mode two\n  or:    "
         "ga_calc_dist [options] -1 <file1> -mode isd\n\nOptions:\n         "
         "-v: output version information and exit.\n         -h, --help: "
         "display this help and exit.\n         --header: the header of file1 "
         "is preserved (default: off).\n         --col_chr1 <int>: column "
         "number for chromosome of file1 (default:0).\n         --col_chr2 "
         "<int>: column number for chromosome of file2 (default:0).\n         "
         "--col_smt1 <int>: column number for peak summit position of file1 "
         "(default:3).\n         --col_smt2 <int>: column number for peak "
         "summit position of file2 (default:3).\n");
  exit(0);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xed8(%rip),%rdi
call   1030 <puts@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [738 x i8] c"Tool: ga_calc_dist\0A\0ASummary: report the distance of two peaks(mode:two) or inter-summit distance(mode:isd)\0A\0AUsage: ga_calc_dist [options] -1 <file1> -2 <file2> -mode two\0A or: ga_calc_dist [options] -1 <file1> -mode isd\0A\0AOptions:\0A -v: output version information and exit.\0A -h, --help: display this help and exit.\0A --header: the header of file1 is preserved (default: off).\0A --col_chr1 <int>: column number for chromosome of file1 (default:0).\0A --col_chr2 <int>: column number for chromosome of file2 (default:0).\0A --col_smt1 <int>: column number for peak summit position of file1 (default:3).\0A --col_smt2 <int>: column number for peak summit position of file2 (default:3).\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([738 x i8], [738 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@str = [737 x i8] c"Tool: ga_calc_dist\0A\0ASummary: report the distance of two peaks(mode:two) or inter-summit distance(mode:isd)\0A\0AUsage: ga_calc_dist [options] -1 <file1> -2 <file2> -mode two\0A or: ga_calc_dist [options] -1 <file1> -mode isd\0A\0AOptions:\0A -v: output version information and exit.\0A -h, --help: display this help and exit.\0A --header: the header of file1 is preserved (default: off).\0A --col_chr1 <int>: column number for chromosome of file1 (default:0).\0A --col_chr2 <int>: column number for chromosome of file2 (default:0).\0A --col_smt1 <int>: column number for peak summit position of file1 (default:3).\0A --col_smt2 <int>: column number for peak summit position of file2 (default:3).\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([737 x i8], [737 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @exit(i32 0)
unreachable
}