#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*/ fprintf(int /*<<< orphan*/, char *, ...);
int /*<<< orphan*/ stderr;
void usage(char *prog) {
  fprintf(stderr,
          "Usage: %s [OPTIONS] group1,list group2,list all_sites > output\n",
          prog);
  fprintf(
      stderr,
      "\nThis program parses two comma separated lists of BED files containing "
      "putative\ninsert sites and looks for sites unique to a single group "
      "(whether it be in a\nsingle sample or multiple samples). The all_sites "
      "BED file contains all sites\ndescribed be all samples (this is used "
      "mainly for efficiency).\n\nN.B., there should be no spaces after commas "
      "in the lists (e.g.,\n\"sample1.bed, sample2.bed\" would be incorrect, "
      "but \"sample1.bed,sample2.bed\"\nwould work correctly). Note also that "
      "all BED files must be lexographically\nsorted.\n\nOptions\n\n-L STR,STR "
      "   A comma-separated list of group labels (e.g.,\n              "
      "\"Control,Treatment\"). If this is not specified, the output will\n     "
      "         use \"Group1\" and \"Group2\".\n");
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    0x2ebd(%rip),%rax
mov    (%rax),%edi
mov    -0x8(%rbp),%rdx
lea    0xed0(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
mov    0x2ea2(%rip),%rax
mov    (%rax),%edi
lea    0xef9(%rip),%rsi
mov    $0x0,%al
call   1030 <fprintf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rbx
mov    %rdi,%rdx
mov    0x2ec5(%rip),%rbx
mov    (%rbx),%edi
lea    0xedc(%rip),%rsi
xor    %eax,%eax
call   1030 <fprintf@plt>
mov    (%rbx),%edi
lea    0xf0c(%rip),%rsi
xor    %eax,%eax
pop    %rbx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [64 x i8] c"Usage: %s [OPTIONS] group1,list group2,list all_sites > output\0A\00"
@.str.1 = [716 x i8] c"\0AThis program parses two comma separated lists of BED files containing putative\0Ainsert sites and looks for sites unique to a single group (whether it be in a\0Asingle sample or multiple samples). The all_sites BED file contains all sites\0Adescribed be all samples (this is used mainly for efficiency).\0A\0AN.B., there should be no spaces after commas in the lists (e.g.,\0A\22sample1.bed, sample2.bed\22 would be incorrect, but \22sample1.bed,sample2.bed\22\0Awould work correctly). Note also that all BED files must be lexographically\0Asorted.\0A\0AOptions\0A\0A-L STR,STR A comma-separated list of group labels (e.g.,\0A \22Control,Treatment\22). If this is not specified, the output will\0A use \22Group1\22 and \22Group2\22.\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i32, i32* @stderr
%4 = load i8*, i8** %2
%5 = call i32 (i32, i8*, ...) @fprintf(i32 %3, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = load i32, i32* @stderr
%7 = call i32 (i32, i8*, ...) @fprintf(i32 %6, i8* getelementptr inbounds ([716 x i8], [716 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [64 x i8] c"Usage: %s [OPTIONS] group1,list group2,list all_sites > output\0A\00"
@.str.1 = [716 x i8] c"\0AThis program parses two comma separated lists of BED files containing putative\0Ainsert sites and looks for sites unique to a single group (whether it be in a\0Asingle sample or multiple samples). The all_sites BED file contains all sites\0Adescribed be all samples (this is used mainly for efficiency).\0A\0AN.B., there should be no spaces after commas in the lists (e.g.,\0A\22sample1.bed, sample2.bed\22 would be incorrect, but \22sample1.bed,sample2.bed\22\0Awould work correctly). Note also that all BED files must be lexographically\0Asorted.\0A\0AOptions\0A\0A-L STR,STR A comma-separated list of group labels (e.g.,\0A \22Control,Treatment\22). If this is not specified, the output will\0A use \22Group1\22 and \22Group2\22.\0A\00"
define void @usage(i8* %0) {
%2 = load i32, i32* @stderr
%3 = tail call i32 (i32, i8*, ...) @fprintf(i32 %2, i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str, i64 0, i64 0), i8* %0)
%4 = load i32, i32* @stderr
%5 = tail call i32 (i32, i8*, ...) @fprintf(i32 %4, i8* getelementptr inbounds ([716 x i8], [716 x i8]* @.str.1, i64 0, i64 0))
ret void
}