#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*/ puts(char *);
void usage(void) {
  puts("bitcalc - Perform bit calculations on the shell command line\n"
       "Usage:\n"
       "bitcalc [options] <script>...\n"
       "\n"
       "Performs bit calculations on the expression provided as script. The "
       "result will\n"
       "printed to stdout. If an error occurs the error message is printed to "
       "stderr\n"
       "and a non-zero return code is given.\n"
       "\n"
       "The script contains a list of tokens, where a token is either a "
       "constant or a\n"
       "binary operator. Constants can be of two types, lists or masks. A list "
       "starts\n"
       "with hash character '#', and then a comma separate list of ranges. A "
       "mask is\n"
       "simply a hexadecimal value, optionally prefixed with 0x.\n"
       "The following binary operators are supported, the script syntax and "
       "corresponding\n"
       "C syntax:\n"
       "  bitwise and:    1 2 and      1 & 2\n"
       "  bitwise xor:    1 2 xor      1 ^ 2\n"
       "\n"
       "Options:\n"
       "-V, version           Show version information and exit.\n"
       "-h, help              Print this help text and exit.\n"
       "-v, verbose           Produce informational message to stderr. Can be "
       "given"
       "                      multiple times for more verbosity.\n"
       "-f, --file=<script>   Execute file <script>, '-' means stdin.\n"
       "-F, --format=<format> Set output format. One of 'mask', 'list', \n"
       "                      and 'u32list'.\n"
       "                      Default: 'mask'\n"
       "\n"
       "Example:\n"
       "   bitcalc '#1-2,4-5 #2-4 xor'\n"
       "   echo '#1-2,4-5 #2-4 xor' | bitcalc --file=-\n");
}


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

x86 assembly (clang, -O2):
<usage>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1293 x i8] c"bitcalc - Perform bit calculations on the shell command line\0AUsage:\0Abitcalc [options] <script>...\0A\0APerforms bit calculations on the expression provided as script. The result will\0Aprinted to stdout. If an error occurs the error message is printed to stderr\0Aand a non-zero return code is given.\0A\0AThe script contains a list of tokens, where a token is either a constant or a\0Abinary operator. Constants can be of two types, lists or masks. A list starts\0Awith hash character '#', and then a comma separate list of ranges. A mask is\0Asimply a hexadecimal value, optionally prefixed with 0x.\0AThe following binary operators are supported, the script syntax and corresponding\0AC syntax:\0A bitwise and: 1 2 and 1 & 2\0A bitwise xor: 1 2 xor 1 ^ 2\0A\0AOptions:\0A-V, version Show version information and exit.\0A-h, help Print this help text and exit.\0A-v, verbose Produce informational message to stderr. Can be given multiple times for more verbosity.\0A-f, --file=<script> Execute file <script>, '-' means stdin.\0A-F, --format=<format> Set output format. One of 'mask', 'list', \0A and 'u32list'.\0A Default: 'mask'\0A\0AExample:\0A bitcalc '-2,4-5-4 xor'\0A echo '-2,4-5-4 xor' | bitcalc --file=-\0A\00"
define void @usage() {
%1 = call i32 @puts(i8* getelementptr inbounds ([1293 x i8], [1293 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1293 x i8] c"bitcalc - Perform bit calculations on the shell command line\0AUsage:\0Abitcalc [options] <script>...\0A\0APerforms bit calculations on the expression provided as script. The result will\0Aprinted to stdout. If an error occurs the error message is printed to stderr\0Aand a non-zero return code is given.\0A\0AThe script contains a list of tokens, where a token is either a constant or a\0Abinary operator. Constants can be of two types, lists or masks. A list starts\0Awith hash character '#', and then a comma separate list of ranges. A mask is\0Asimply a hexadecimal value, optionally prefixed with 0x.\0AThe following binary operators are supported, the script syntax and corresponding\0AC syntax:\0A bitwise and: 1 2 and 1 & 2\0A bitwise xor: 1 2 xor 1 ^ 2\0A\0AOptions:\0A-V, version Show version information and exit.\0A-h, help Print this help text and exit.\0A-v, verbose Produce informational message to stderr. Can be given multiple times for more verbosity.\0A-f, --file=<script> Execute file <script>, '-' means stdin.\0A-F, --format=<format> Set output format. One of 'mask', 'list', \0A and 'u32list'.\0A Default: 'mask'\0A\0AExample:\0A bitcalc '-2,4-5-4 xor'\0A echo '-2,4-5-4 xor' | bitcalc --file=-\0A\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1293 x i8], [1293 x i8]* @.str, i64 0, i64 0))
ret void
}