#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);
int /*<<< orphan*/ fprintf(int /*<<< orphan*/, char *);
int /*<<< orphan*/ stderr;
void usage() {
  fprintf(
      stderr,
      "Usage: "
      "qpi_stress [options]"
      "\n\t-h, --help\n\t\tprint this help"
      "\n\t-n, --number=n\n\t\t start n processes, default number of cpu "
      "cores\n"
      "\t-t, --timeout=n\n\t\t time to run(minute), default 0-run util CTRL+C "
      "pressed\n"
      "\t-d, --data=n\n\t\t  data to fill memory, 0 for random, default 0xaa\n"
      "\t-s, --size=n\n\t\t size of share memory(MB), default 4\n"
      "\t-p, --delay=n\n\t\t result display delay(seconds), default 10\n"
      "\t-o, --output=file\n\t\t write result to file, default screen\n"
      "Example:\n\t"
      "qpi_stress -n4 -s10 -t10 -d 0x55"
      "\n   start 4 processes, run 10 minutes, per process requst 10 MB "
      "memory, use 0x55 to fill\n");
  exit(-1);
}


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>
mov    $0xffffffff,%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>
mov    $0xffffffff,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@stderr = global i32 0
@.str = [569 x i8] c"Usage: qpi_stress [options]\0A\09-h, --help\0A\09\09print this help\0A\09-n, --number=n\0A\09\09 start n processes, default number of cpu cores\0A\09-t, --timeout=n\0A\09\09 time to run(minute), default 0-run util CTRL+C pressed\0A\09-d, --data=n\0A\09\09 data to fill memory, 0 for random, default 0xaa\0A\09-s, --size=n\0A\09\09 size of share memory(MB), default 4\0A\09-p, --delay=n\0A\09\09 result display delay(seconds), default 10\0A\09-o, --output=file\0A\09\09 write result to file, default screen\0AExample:\0A\09qpi_stress -n4 -s10 -t10 -d 0x55\0A start 4 processes, run 10 minutes, per process requst 10 MB memory, use 0x55 to fill\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([569 x i8], [569 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @exit(i32 -1)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [569 x i8] c"Usage: qpi_stress [options]\0A\09-h, --help\0A\09\09print this help\0A\09-n, --number=n\0A\09\09 start n processes, default number of cpu cores\0A\09-t, --timeout=n\0A\09\09 time to run(minute), default 0-run util CTRL+C pressed\0A\09-d, --data=n\0A\09\09 data to fill memory, 0 for random, default 0xaa\0A\09-s, --size=n\0A\09\09 size of share memory(MB), default 4\0A\09-p, --delay=n\0A\09\09 result display delay(seconds), default 10\0A\09-o, --output=file\0A\09\09 write result to file, default screen\0AExample:\0A\09qpi_stress -n4 -s10 -t10 -d 0x55\0A start 4 processes, run 10 minutes, per process requst 10 MB memory, use 0x55 to fill\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([569 x i8], [569 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @exit(i32 -1)
unreachable
}