#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*/ printf(char *, ...);
void printusage(char *program) {
  printf("Usage : %s <options> -1 fastqfile1 [-2 fastqfile2]  "
         "patternfile(.pt)\n\n",
         program);
  printf("\tInput arguments (required)\n");
  printf(
      "\t  patternfile : a binary file containing sequences flanking "
      "representative snv sites, along with markers indicating the snv index "
      "and whether the sequence represents reference or alternative allele.\n");
  printf("\t  -1, --fastq1 <fastq_file_1> : fastq file for SE data or first "
         "fastq file for a PE data. File can be gzipped (auto-detect).\n\n");
  printf("\tOptions\n");
  printf("\t  -2, --fastq2 <fastq_file_2> : second fastq file for a PE data. "
         "File can be gzipped (auto-detect)\n");
  printf("\t  -s, --ss <subsampling_rate> : subsampling rate (default 1.0)\n");
  printf("\t  -d, --depth <desired_depth> : as an alternative to a "
         "user-defined subsampling rate, let the program compute the "
         "subsampling rate given a user-defined desired_depth and the data.\n");
  printf("\t  -R, --reference_length <reference_length> : The reference length "
         "(default : 3E9) to be used for computing subsampling rate. If the "
         "data is NOT WGS from human, and if you're using the -d option, it is "
         "highly recommended to specify the reference length. For instance, if "
         "your data is human RNA-seq, the total reference length could be "
         "about 3%% of the human genome, which can be set as 1E8.\n");
  printf("\t  -L, --pattern_length <pattern_length> : The length of the "
         "flanking sequences being used to identify SNV sites. Default is "
         "21bp. It is recommended not to change this value, unless you have "
         "created your own pattern file with a different pattern length.\n");
  printf("\t  -p, --maxthread <number_of_threads> : number of threads to use "
         "(default : 1 )\n\n");
}


x86 assembly (clang, -O0):
<printusage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf12(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf21(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfdc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x104e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x104a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10a1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10d4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x117c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12f7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13e8(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<printusage>:
push   %rax
mov    %rdi,%rsi
lea    0xed5(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x1097(%rip),%rdi
call   1030 <puts@plt>
lea    0x10a7(%rip),%rdi
call   1030 <puts@plt>
lea    0x1163(%rip),%rdi
call   1030 <puts@plt>
lea    0x11d6(%rip),%rdi
call   1030 <puts@plt>
lea    0x11d3(%rip),%rdi
call   1030 <puts@plt>
lea    0x122b(%rip),%rdi
call   1030 <puts@plt>
lea    0x125f(%rip),%rdi
call   1030 <puts@plt>
lea    0xeba(%rip),%rdi
xor    %eax,%eax
call   1040 <printf@plt>
lea    0x12fa(%rip),%rdi
call   1030 <puts@plt>
lea    0x13ec(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [71 x i8] c"Usage : %s <options> -1 fastqfile1 [-2 fastqfile2] patternfile(.pt)\0A\0A\00"
@.str.1 = [29 x i8] c"\09Input arguments (required)\0A\00"
@.str.2 = [201 x i8] c"\09 patternfile : a binary file containing sequences flanking representative snv sites, along with markers indicating the snv index and whether the sequence represents reference or alternative allele.\0A\00"
@.str.3 = [128 x i8] c"\09 -1, --fastq1 <fastq_file_1> : fastq file for SE data or first fastq file for a PE data. File can be gzipped (auto-detect).\0A\0A\00"
@.str.4 = [10 x i8] c"\09Options\0A\00"
@.str.5 = [101 x i8] c"\09 -2, --fastq2 <fastq_file_2> : second fastq file for a PE data. File can be gzipped (auto-detect)\0A\00"
@.str.6 = [65 x i8] c"\09 -s, --ss <subsampling_rate> : subsampling rate (default 1.0)\0A\00"
@.str.7 = [182 x i8] c"\09 -d, --depth <desired_depth> : as an alternative to a user-defined subsampling rate, let the program compute the subsampling rate given a user-defined desired_depth and the data.\0A\00"
@.str.8 = [393 x i8] c"\09 -R, --reference_length <reference_length> : The reference length (default : 3E9) to be used for computing subsampling rate. If the data is NOT WGS from human, and if you're using the -d option, it is highly recommended to specify the reference length. For instance, if your data is human RNA-seq, the total reference length could be about 3%% of the human genome, which can be set as 1E8.\0A\00"
@.str.9 = [255 x i8] c"\09 -L, --pattern_length <pattern_length> : The length of the flanking sequences being used to identify SNV sites. Default is 21bp. It is recommended not to change this value, unless you have created your own pattern file with a different pattern length.\0A\00"
@.str.10 = [83 x i8] c"\09 -p, --maxthread <number_of_threads> : number of threads to use (default : 1 )\0A\0A\00"
define void @printusage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([71 x i8], [71 x i8]* @.str, i64 0, i64 0), i8* %3)
%5 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.1, i64 0, i64 0))
%6 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([201 x i8], [201 x i8]* @.str.2, i64 0, i64 0))
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.3, i64 0, i64 0))
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.4, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([101 x i8], [101 x i8]* @.str.5, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.6, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([182 x i8], [182 x i8]* @.str.7, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([393 x i8], [393 x i8]* @.str.8, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([255 x i8], [255 x i8]* @.str.9, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([83 x i8], [83 x i8]* @.str.10, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [71 x i8] c"Usage : %s <options> -1 fastqfile1 [-2 fastqfile2] patternfile(.pt)\0A\0A\00"
@.str.8 = [393 x i8] c"\09 -R, --reference_length <reference_length> : The reference length (default : 3E9) to be used for computing subsampling rate. If the data is NOT WGS from human, and if you're using the -d option, it is highly recommended to specify the reference length. For instance, if your data is human RNA-seq, the total reference length could be about 3%% of the human genome, which can be set as 1E8.\0A\00"
@str = [28 x i8] c"\09Input arguments (required)\00"
@str.11 = [200 x i8] c"\09 patternfile : a binary file containing sequences flanking representative snv sites, along with markers indicating the snv index and whether the sequence represents reference or alternative allele.\00"
@str.12 = [127 x i8] c"\09 -1, --fastq1 <fastq_file_1> : fastq file for SE data or first fastq file for a PE data. File can be gzipped (auto-detect).\0A\00"
@str.13 = [9 x i8] c"\09Options\00"
@str.14 = [100 x i8] c"\09 -2, --fastq2 <fastq_file_2> : second fastq file for a PE data. File can be gzipped (auto-detect)\00"
@str.15 = [64 x i8] c"\09 -s, --ss <subsampling_rate> : subsampling rate (default 1.0)\00"
@str.16 = [181 x i8] c"\09 -d, --depth <desired_depth> : as an alternative to a user-defined subsampling rate, let the program compute the subsampling rate given a user-defined desired_depth and the data.\00"
@str.17 = [254 x i8] c"\09 -L, --pattern_length <pattern_length> : The length of the flanking sequences being used to identify SNV sites. Default is 21bp. It is recommended not to change this value, unless you have created your own pattern file with a different pattern length.\00"
@str.18 = [82 x i8] c"\09 -p, --maxthread <number_of_threads> : number of threads to use (default : 1 )\0A\00"
define void @printusage(i8* %0) {
%2 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([71 x i8], [71 x i8]* @.str, i64 0, i64 0), i8* %0)
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([200 x i8], [200 x i8]* @str.11, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([127 x i8], [127 x i8]* @str.12, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @str.13, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([100 x i8], [100 x i8]* @str.14, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.15, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([181 x i8], [181 x i8]* @str.16, i64 0, i64 0))
%10 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([393 x i8], [393 x i8]* @.str.8, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([254 x i8], [254 x i8]* @str.17, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([82 x i8], [82 x i8]* @str.18, i64 0, i64 0))
ret void
}