#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 *, char const *);
void usage(const char *pname) {
  printf(
      "Usage: %s [OPTION] <filename.observations>\n"
      "\n"
      " -a\tNUM\tLevel of impurity in the cancer sample (alpha).\n"
      " -e\tNUM\tProbability of a split presence when a deletion is there.\n"
      " -E\tNUM\tProbability of a splits presence when an insertion is there.\n"
      " -y\tNUM\tProbability of a splits absence when an indel is there.\n"
      " -m\tNUM\tMean of insert sizes when the indel is absent (both "
      "samples).\n"
      " -s\tNUM\tSTD of insert sizes when the indel is absent (both samples).\n"
      " -m\tNUM\tMean of insert sizes when the indel is absent (both "
      "samples).\n"
      " -r\tNUM\tError rate for the insert size model (for both samples).\n"
      " -f\tNUM\tMean of insert sizes when the indel is absent (healthy "
      "sample).\n"
      " -g\tNUM\tSTD of insert sizes when the indel is absent (healthy "
      "sample).\n"
      " -q\tNUM\tError rate for the insert size model (healthy sample).\n"
      " -F\tNUM\tMean of insert sizes when the indel is absent (cancer "
      "sample).\n"
      " -G\tNUM\tSTD of insert sizes when the indel is absent (cancer "
      "sample).\n"
      " -Q\tNUM\tError rate for the insert size model (cancer sample).\n"
      " -l\tNUM\tLength of indel to be considered.\n"
      " -P\tNUM\tPrecision used for maximization.\n"
      " -M\tNUM\tMax. number of iterations used for maximization.\n"
      " -N\tNUM\tNumber of panels used for integration (trapezoidal rule).\n"
      " -B\t\tOnly split read evidence.\n"
      " -d\t\tOnly deletions.\n"
      " -i\t\tOnly insertions.\n"
      " -I\t\tOnly insert size evidence.\n"
      " -u\t\tAlignment uncertainty is neglected.\n"
      " -v\t\tVerbose.\n"
      " -h\t\tPrint this help.\n\n",
      pname);
  exit(0);
}


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

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

LLVM IR (-O0):
@.str = [1373 x i8] c"Usage: %s [OPTION] <filename.observations>\0A\0A -a\09NUM\09Level of impurity in the cancer sample (alpha).\0A -e\09NUM\09Probability of a split presence when a deletion is there.\0A -E\09NUM\09Probability of a splits presence when an insertion is there.\0A -y\09NUM\09Probability of a splits absence when an indel is there.\0A -m\09NUM\09Mean of insert sizes when the indel is absent (both samples).\0A -s\09NUM\09STD of insert sizes when the indel is absent (both samples).\0A -m\09NUM\09Mean of insert sizes when the indel is absent (both samples).\0A -r\09NUM\09Error rate for the insert size model (for both samples).\0A -f\09NUM\09Mean of insert sizes when the indel is absent (healthy sample).\0A -g\09NUM\09STD of insert sizes when the indel is absent (healthy sample).\0A -q\09NUM\09Error rate for the insert size model (healthy sample).\0A -F\09NUM\09Mean of insert sizes when the indel is absent (cancer sample).\0A -G\09NUM\09STD of insert sizes when the indel is absent (cancer sample).\0A -Q\09NUM\09Error rate for the insert size model (cancer sample).\0A -l\09NUM\09Length of indel to be considered.\0A -P\09NUM\09Precision used for maximization.\0A -M\09NUM\09Max. number of iterations used for maximization.\0A -N\09NUM\09Number of panels used for integration (trapezoidal rule).\0A -B\09\09Only split read evidence.\0A -d\09\09Only deletions.\0A -i\09\09Only insertions.\0A -I\09\09Only insert size evidence.\0A -u\09\09Alignment uncertainty is neglected.\0A -v\09\09Verbose.\0A -h\09\09Print this help.\0A\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([1373 x i8], [1373 x i8]* @.str, i64 0, i64 0), i8* %3)
%5 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@.str = [1373 x i8] c"Usage: %s [OPTION] <filename.observations>\0A\0A -a\09NUM\09Level of impurity in the cancer sample (alpha).\0A -e\09NUM\09Probability of a split presence when a deletion is there.\0A -E\09NUM\09Probability of a splits presence when an insertion is there.\0A -y\09NUM\09Probability of a splits absence when an indel is there.\0A -m\09NUM\09Mean of insert sizes when the indel is absent (both samples).\0A -s\09NUM\09STD of insert sizes when the indel is absent (both samples).\0A -m\09NUM\09Mean of insert sizes when the indel is absent (both samples).\0A -r\09NUM\09Error rate for the insert size model (for both samples).\0A -f\09NUM\09Mean of insert sizes when the indel is absent (healthy sample).\0A -g\09NUM\09STD of insert sizes when the indel is absent (healthy sample).\0A -q\09NUM\09Error rate for the insert size model (healthy sample).\0A -F\09NUM\09Mean of insert sizes when the indel is absent (cancer sample).\0A -G\09NUM\09STD of insert sizes when the indel is absent (cancer sample).\0A -Q\09NUM\09Error rate for the insert size model (cancer sample).\0A -l\09NUM\09Length of indel to be considered.\0A -P\09NUM\09Precision used for maximization.\0A -M\09NUM\09Max. number of iterations used for maximization.\0A -N\09NUM\09Number of panels used for integration (trapezoidal rule).\0A -B\09\09Only split read evidence.\0A -d\09\09Only deletions.\0A -i\09\09Only insertions.\0A -I\09\09Only insert size evidence.\0A -u\09\09Alignment uncertainty is neglected.\0A -v\09\09Verbose.\0A -h\09\09Print this help.\0A\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([1373 x i8], [1373 x i8]* @.str, i64 0, i64 0), i8* %0)
%3 = tail call i32 @exit(i32 0)
unreachable
}