#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_SUCCESS;
int /*<<< orphan*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *, char const *);
int /*<<< orphan*/ stderr;
void printHelpDialog() {
  const char dialog[] =
      "Usage: lowQuality -i [INPUT_FILE.fq] -l [READ_LENGTH] -t "
      "[NUMBER_OF_TILES] -o [OUTPUT_FILE] \n"
      "Reads in a fq file (gz, bz2, z formats also accepted) and performs a "
      "set of \n"
      "quality tests. \n"
      "Output in binary format.\n"
      " -h prints help dialog.\n"
      " -i Input file [*fq|*fq.gz|*fq.bz2]. Required option.\n"
      " -l Read length. Length of the reads. Required option.\n"
      " -t Number of tiles. Default 96. \n"
      " -q Minimum quality allowed. Optional option. Default 27 .\n"
      " -o Output file. required option.\n"
      " -f If present, the file will be treated as a filtered file (output "
      "from filter_trim).\n";
  fprintf(stderr, "%s", dialog);
  exit(EXIT_SUCCESS);
}


x86 assembly (clang, -O0):
<printHelpDialog>:
push   %rbp
mov    %rsp,%rbp
sub    $0x230,%rsp
lea    -0x230(%rbp),%rdi
lea    0xeb7(%rip),%rsi
mov    $0x22f,%edx
call   1040 <memcpy@plt>
mov    0x2e86(%rip),%rax
mov    (%rax),%edi
lea    -0x230(%rbp),%rdx
lea    0x10c5(%rip),%rsi
call   1030 <fprintf@plt>
mov    0x2e62(%rip),%rax
mov    (%rax),%edi
call   1050 <exit@plt>

x86 assembly (clang, -O2):
<printHelpDialog>:
push   %rbx
sub    $0x230,%rsp
lea    0xec1(%rip),%rsi
mov    %rsp,%rbx
mov    $0x22f,%edx
mov    %rbx,%rdi
call   1040 <memcpy@plt>
mov    0x2e8a(%rip),%rax
mov    (%rax),%edi
lea    0x10d0(%rip),%rsi
mov    %rbx,%rdx
call   1030 <fprintf@plt>
mov    0x2e6a(%rip),%rax
mov    (%rax),%edi
call   1050 <exit@plt>

LLVM IR (-O0):
@__const.printHelpDialog.dialog = [559 x i8] c"Usage: lowQuality -i [INPUT_FILE.fq] -l [READ_LENGTH] -t [NUMBER_OF_TILES] -o [OUTPUT_FILE] \0AReads in a fq file (gz, bz2, z formats also accepted) and performs a set of \0Aquality tests. \0AOutput in binary format.\0A -h prints help dialog.\0A -i Input file [*fq|*fq.gz|*fq.bz2]. Required option.\0A -l Read length. Length of the reads. Required option.\0A -t Number of tiles. Default 96. \0A -q Minimum quality allowed. Optional option. Default 27 .\0A -o Output file. required option.\0A -f If present, the file will be treated as a filtered file (output from filter_trim).\0A\00"
@stderr = global i32 0
@.str = [3 x i8] c"%s\00"
@EXIT_SUCCESS = global i32 0
define void @printHelpDialog() {
%1 = alloca [559 x i8]
%2 = bitcast [559 x i8]* %1 to i8*
%3 = load i32, i32* @stderr
%4 = getelementptr inbounds [559 x i8], [559 x i8]* %1, i64 0, i64 0
%5 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %4)
%6 = load i32, i32* @EXIT_SUCCESS
%7 = call i32 @exit(i32 %6)
unreachable
}

LLVM IR (-O2):
@__const.printHelpDialog.dialog = [559 x i8] c"Usage: lowQuality -i [INPUT_FILE.fq] -l [READ_LENGTH] -t [NUMBER_OF_TILES] -o [OUTPUT_FILE] \0AReads in a fq file (gz, bz2, z formats also accepted) and performs a set of \0Aquality tests. \0AOutput in binary format.\0A -h prints help dialog.\0A -i Input file [*fq|*fq.gz|*fq.bz2]. Required option.\0A -l Read length. Length of the reads. Required option.\0A -t Number of tiles. Default 96. \0A -q Minimum quality allowed. Optional option. Default 27 .\0A -o Output file. required option.\0A -f If present, the file will be treated as a filtered file (output from filter_trim).\0A\00"
@stderr = global i32 0
@.str = [3 x i8] c"%s\00"
@EXIT_SUCCESS = global i32 0
define void @printHelpDialog() {
%1 = alloca [559 x i8]
%2 = getelementptr inbounds [559 x i8], [559 x i8]* %1, i64 0, i64 0
%3 = load i32, i32* @stderr
%4 = call i32 @fprintf(i32 %3, i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* %2)
%5 = load i32, i32* @EXIT_SUCCESS
%6 = call i32 @exit(i32 %5)
unreachable
}