#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*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
int usage(void) {
  fprintf(
      stderr,
      "Usage: igzip_perf [options] <infile>\n"
      "  -h          help, print this message\n"
      "  The options -l, -f, -z may be used up to "
      "32"
      " times\n"
      "  -l <level>  isa-l stateless deflate level to test ("
      "0"
      "-"
      "3"
      ")\n"
      "  -f <level>  isa-l stateful deflate level to test ("
      "0"
      "-"
      "3"
      ")\n"
      "  -z <level>  zlib  deflate level to test\n"
      "  -d <time>   approx time in seconds for deflate (at least 0)\n"
      "  -i <time>   approx time in seconds for inflate (at least 0)\n"
      "  -s          performance test isa-l stateful inflate\n"
      "  -t          performance test isa-l stateless inflate\n"
      "  -u          performance test zlib inflate\n"
      "  -o <file>   output file to store compressed data (last one if "
      "multiple)\n"
      "  -b <size>   input buffer size, applies to stateful options "
      "(-f,-z,-s)\n"
      "  -y <type>   flush type: 0 (default: no flush), 1 (sync flush), 2 "
      "(full flush)\n"
      "  -w <size>   log base 2 size of history window, between 9 and 15\n");
  exit(0);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
mov    0x2eb5(%rip),%rax
mov    (%rax),%edi
lea    0xecc(%rip),%rsi
call   1030 <fprintf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [855 x i8] c"Usage: igzip_perf [options] <infile>\0A -h help, print this message\0A The options -l, -f, -z may be used up to 32 times\0A -l <level> isa-l stateless deflate level to test (0-3)\0A -f <level> isa-l stateful deflate level to test (0-3)\0A -z <level> zlib deflate level to test\0A -d <time> approx time in seconds for deflate (at least 0)\0A -i <time> approx time in seconds for inflate (at least 0)\0A -s performance test isa-l stateful inflate\0A -t performance test isa-l stateless inflate\0A -u performance test zlib inflate\0A -o <file> output file to store compressed data (last one if multiple)\0A -b <size> input buffer size, applies to stateful options (-f,-z,-s)\0A -y <type> flush type: 0 (default: no flush), 1 (sync flush), 2 (full flush)\0A -w <size> log base 2 size of history window, between 9 and 15\0A\00"
define i32 @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([855 x i8], [855 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [855 x i8] c"Usage: igzip_perf [options] <infile>\0A -h help, print this message\0A The options -l, -f, -z may be used up to 32 times\0A -l <level> isa-l stateless deflate level to test (0-3)\0A -f <level> isa-l stateful deflate level to test (0-3)\0A -z <level> zlib deflate level to test\0A -d <time> approx time in seconds for deflate (at least 0)\0A -i <time> approx time in seconds for inflate (at least 0)\0A -s performance test isa-l stateful inflate\0A -t performance test isa-l stateless inflate\0A -u performance test zlib inflate\0A -o <file> output file to store compressed data (last one if multiple)\0A -b <size> input buffer size, applies to stateful options (-f,-z,-s)\0A -y <type> flush type: 0 (default: no flush), 1 (sync flush), 2 (full flush)\0A -w <size> log base 2 size of history window, between 9 and 15\0A\00"
define i32 @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([855 x i8], [855 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @exit(i32 0)
unreachable
}