#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: chaodyn [OPTION]... [-i inputfile | --gen-ic=<ic-name>]\n"
          "\n"
          "where OPTION can be\n"
          "  -N N                 Use N particles.\n"
          "  -v                   Increase verbose output. This can be used "
          "repeatedly. (Default 1)\n"
          "  -q                   Decrease verbose output. This can be used "
          "repeatedly.\n"
          "  --seed=N             Initialize random number generator (srand48) "
          "with N.\n"
          "  --steps=N            Run simulation for N steps.\n"
          "  --reverse-at=WHEN    When N=WHEN reverse velocities.\n"
          "  --save-image=[EVERY] Save an image every EVERY frames.\n"
          "  --save-path-image    Create a single image that shows the "
          "particles at each\n"
          "                       time step. Use --save-image with a value for "
          "EVERY to\n"
          "                       control which time steps are plotted.\n"
          "  --start-step=N       Set the first simulation step to N.\n"
          "  --modify-mode=MODE   MODE can be one of [1,2,3]. When reversing,\n"
          "                       (1) Don't reverse the first particle.\n"
          "                       (2) Flip the least significant bit in the "
          "velocity\n"
          "                           for the first particle.\n"
          "                       (3) Remove the last particle\n"
          "  --tag=NAME           Prefix output files with NAME. Defaults to "
          "'chaodyn'.\n"
          "  --dump-sim           Write information about inputfile to the "
          "screen before\n"
          "                       continuing.\n"
          "\n"
          "Send bug reports, comments, and questions to Jonathan Coles "
          "<jonathan@physik.uzh.ch>\n"
          "\n");
  exit(2);
}


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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [1387 x i8] c"Usage: chaodyn [OPTION]... [-i inputfile | --gen-ic=<ic-name>]\0A\0Awhere OPTION can be\0A -N N Use N particles.\0A -v Increase verbose output. This can be used repeatedly. (Default 1)\0A -q Decrease verbose output. This can be used repeatedly.\0A --seed=N Initialize random number generator (srand48) with N.\0A --steps=N Run simulation for N steps.\0A --reverse-at=WHEN When N=WHEN reverse velocities.\0A --save-image=[EVERY] Save an image every EVERY frames.\0A --save-path-image Create a single image that shows the particles at each\0A time step. Use --save-image with a value for EVERY to\0A control which time steps are plotted.\0A --start-step=N Set the first simulation step to N.\0A --modify-mode=MODE MODE can be one of [1,2,3]. When reversing,\0A (1) Don't reverse the first particle.\0A (2) Flip the least significant bit in the velocity\0A for the first particle.\0A (3) Remove the last particle\0A --tag=NAME Prefix output files with NAME. Defaults to 'chaodyn'.\0A --dump-sim Write information about inputfile to the screen before\0A continuing.\0A\0ASend bug reports, comments, and questions to Jonathan Coles <jonathan@physik.uzh.ch>\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1387 x i8], [1387 x i8]* @.str, i64 0, i64 0))
%3 = call i32 @exit(i32 2)
unreachable
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [1387 x i8] c"Usage: chaodyn [OPTION]... [-i inputfile | --gen-ic=<ic-name>]\0A\0Awhere OPTION can be\0A -N N Use N particles.\0A -v Increase verbose output. This can be used repeatedly. (Default 1)\0A -q Decrease verbose output. This can be used repeatedly.\0A --seed=N Initialize random number generator (srand48) with N.\0A --steps=N Run simulation for N steps.\0A --reverse-at=WHEN When N=WHEN reverse velocities.\0A --save-image=[EVERY] Save an image every EVERY frames.\0A --save-path-image Create a single image that shows the particles at each\0A time step. Use --save-image with a value for EVERY to\0A control which time steps are plotted.\0A --start-step=N Set the first simulation step to N.\0A --modify-mode=MODE MODE can be one of [1,2,3]. When reversing,\0A (1) Don't reverse the first particle.\0A (2) Flip the least significant bit in the velocity\0A for the first particle.\0A (3) Remove the last particle\0A --tag=NAME Prefix output files with NAME. Defaults to 'chaodyn'.\0A --dump-sim Write information about inputfile to the screen before\0A continuing.\0A\0ASend bug reports, comments, and questions to Jonathan Coles <jonathan@physik.uzh.ch>\0A\0A\00"
define void @usage() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([1387 x i8], [1387 x i8]* @.str, i64 0, i64 0))
%3 = tail call i32 @exit(i32 2)
unreachable
}