#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 *, char *);
void help() {
  printf("%s",
         "Usage:\n\n"
         "  --help, --h              The message you're now reading\n"
         "  --listdevs, --l          List all joystick devices found\n"
         "  --showcal, --s [path]    Show current calibration for joystick "
         "device\n"
         "  --evdev, --e [path]      Set the joystick device to modify\n"
         "  --deadzone, --d [val]    Change deadzone for current joystick\n"
         "  --fuzz, --f [val]        Change fuzz for current joystick\n"
         "  --axis, --a [val]        The axis to modify for current joystick "
         "(by default, all axes)\n"
         "\n"
         "To see calibration information: \n"
         "  evdev-joystick [ --s /path/to/event/device/file ]\n"
         "\n"
         "To set the deadzone values:\n"
         "  evdev-joystick [ --e /path/to/event/device/file --d deadzone_value "
         "[ --a axis_index ] ]\n"
         "\n"
         "Example:\n"
         "\n"
         "I want to see the calibration values of my event managed joystick:\n"
         "  evdev-joystick --s /dev/input/event6\n"
         "\n"
         "Supported Absolute axes:\n"
         "  Absolute axis 0x00 (0) (X Axis) (min: 0, max: 16383, flatness: "
         "1023 (=6.24%), fuzz: 63)\n"
         "  Absolute axis 0x01 (1) (Y Axis) (min: 0, max: 255, flatness: 15 "
         "(=5.88%), fuzz: 0)\n"
         "  Absolute axis 0x02 (2) (Z Axis) (min: 0, max: 255, flatness: 15 "
         "(=5.88%), fuzz: 0)\n"
         "  Absolute axis 0x05 (5) (Z Rate Axis) (min: 0, max: 255, flatness: "
         "15 (=5.88%), fuzz: 0)\n"
         "  Absolute axis 0x10 (16) (Hat zero, x axis) (min: -1, max: 1, "
         "flatness: 0 (=0.00%), fuzz: 0)\n"
         "  Absolute axis 0x11 (17) (Hat zero, y axis) (min: -1, max: 1, "
         "flatness: 0 (=0.00%), fuzz: 0)\n"
         "\n"
         "I want to get rid of the deadzone on all axes on my joystick:\n"
         "  evdev-joystick --e /dev/input/event6 --d 0\n"
         "\n");
}


x86 assembly (clang, -O0):
<help>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0xee1(%rip),%rsi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<help>:
lea    0xee9(%rip),%rdi
lea    0xee5(%rip),%rsi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [3 x i8] c"%s\00"
@.str.1 = [1468 x i8] c"Usage:\0A\0A --help, --h The message you're now reading\0A --listdevs, --l List all joystick devices found\0A --showcal, --s [path] Show current calibration for joystick device\0A --evdev, --e [path] Set the joystick device to modify\0A --deadzone, --d [val] Change deadzone for current joystick\0A --fuzz, --f [val] Change fuzz for current joystick\0A --axis, --a [val] The axis to modify for current joystick (by default, all axes)\0A\0ATo see calibration information: \0A evdev-joystick [ --s /path/to/event/device/file ]\0A\0ATo set the deadzone values:\0A evdev-joystick [ --e /path/to/event/device/file --d deadzone_value [ --a axis_index ] ]\0A\0AExample:\0A\0AI want to see the calibration values of my event managed joystick:\0A evdev-joystick --s /dev/input/event6\0A\0ASupported Absolute axes:\0A Absolute axis 0x00 (0) (X Axis) (min: 0, max: 16383, flatness: 1023 (=6.24%), fuzz: 63)\0A Absolute axis 0x01 (1) (Y Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x02 (2) (Z Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x05 (5) (Z Rate Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x10 (16) (Hat zero, x axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)\0A Absolute axis 0x11 (17) (Hat zero, y axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)\0A\0AI want to get rid of the deadzone on all axes on my joystick:\0A evdev-joystick --e /dev/input/event6 --d 0\0A\0A\00"
define void @help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1468 x i8], [1468 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [3 x i8] c"%s\00"
@.str.1 = [1468 x i8] c"Usage:\0A\0A --help, --h The message you're now reading\0A --listdevs, --l List all joystick devices found\0A --showcal, --s [path] Show current calibration for joystick device\0A --evdev, --e [path] Set the joystick device to modify\0A --deadzone, --d [val] Change deadzone for current joystick\0A --fuzz, --f [val] Change fuzz for current joystick\0A --axis, --a [val] The axis to modify for current joystick (by default, all axes)\0A\0ATo see calibration information: \0A evdev-joystick [ --s /path/to/event/device/file ]\0A\0ATo set the deadzone values:\0A evdev-joystick [ --e /path/to/event/device/file --d deadzone_value [ --a axis_index ] ]\0A\0AExample:\0A\0AI want to see the calibration values of my event managed joystick:\0A evdev-joystick --s /dev/input/event6\0A\0ASupported Absolute axes:\0A Absolute axis 0x00 (0) (X Axis) (min: 0, max: 16383, flatness: 1023 (=6.24%), fuzz: 63)\0A Absolute axis 0x01 (1) (Y Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x02 (2) (Z Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x05 (5) (Z Rate Axis) (min: 0, max: 255, flatness: 15 (=5.88%), fuzz: 0)\0A Absolute axis 0x10 (16) (Hat zero, x axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)\0A Absolute axis 0x11 (17) (Hat zero, y axis) (min: -1, max: 1, flatness: 0 (=0.00%), fuzz: 0)\0A\0AI want to get rid of the deadzone on all axes on my joystick:\0A evdev-joystick --e /dev/input/event6 --d 0\0A\0A\00"
define void @help() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([1468 x i8], [1468 x i8]* @.str.1, i64 0, i64 0))
ret void
}