#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 const *);
void usage(const char *prog) {
  printf("Usage: %s [OPTIONS]\n"
         "  -h, --help\n"
         "  -v, --verbose\n"
         "  -C, --card=CARDNO|RED  Note: RED is for Card Redundant mode\n"
         "  -A, --accelerator-type=GENWQE|CAPI CAPI is only available "
         "for System p\n"
         "  -q, --quiet            quiece output\n"
         "  -V, --version\n"
         "  -H, --hardware-version\n"
         "  -c, --count=COUNT\n"
         "  -X, --cpu=CPU          only run on this CPU number\n"
         "  -D, --debug            create extended debug data on failure\n"
         "  -e, --exit-on-err      exit program when seeing an error\n"
         "  -f, --flood\n"
         "  -l, --preload=1..N     N <= 64\n"
         "  -i, --interval=INTERVAL_USEC\n"
         "  -s, --string=TESTSTRING\n"
         "  -p, --polling          use DDCB polling mode.\n"
         "  -q, --quiet            only summary output\n"
         "\n"
         "This utility sends echo DDCBs either to the service layer\n"
         "or other chip units. It can be used to check the cards\n"
         "health and/or to produce stress on the card to verify its\n"
         "correct function.\n\n",
         prog);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xed9(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
mov    %rdi,%rsi
lea    0xee6(%rip),%rdi
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [848 x i8] c"Usage: %s [OPTIONS]\0A -h, --help\0A -v, --verbose\0A -C, --card=CARDNO|RED Note: RED is for Card Redundant mode\0A -A, --accelerator-type=GENWQE|CAPI CAPI is only available for System p\0A -q, --quiet quiece output\0A -V, --version\0A -H, --hardware-version\0A -c, --count=COUNT\0A -X, --cpu=CPU only run on this CPU number\0A -D, --debug create extended debug data on failure\0A -e, --exit-on-err exit program when seeing an error\0A -f, --flood\0A -l, --preload=1..N N <= 64\0A -i, --interval=INTERVAL_USEC\0A -s, --string=TESTSTRING\0A -p, --polling use DDCB polling mode.\0A -q, --quiet only summary output\0A\0AThis utility sends echo DDCBs either to the service layer\0Aor other chip units. It can be used to check the cards\0Ahealth and/or to produce stress on the card to verify its\0Acorrect function.\0A\0A\00"
define void @usage(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([848 x i8], [848 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [848 x i8] c"Usage: %s [OPTIONS]\0A -h, --help\0A -v, --verbose\0A -C, --card=CARDNO|RED Note: RED is for Card Redundant mode\0A -A, --accelerator-type=GENWQE|CAPI CAPI is only available for System p\0A -q, --quiet quiece output\0A -V, --version\0A -H, --hardware-version\0A -c, --count=COUNT\0A -X, --cpu=CPU only run on this CPU number\0A -D, --debug create extended debug data on failure\0A -e, --exit-on-err exit program when seeing an error\0A -f, --flood\0A -l, --preload=1..N N <= 64\0A -i, --interval=INTERVAL_USEC\0A -s, --string=TESTSTRING\0A -p, --polling use DDCB polling mode.\0A -q, --quiet only summary output\0A\0AThis utility sends echo DDCBs either to the service layer\0Aor other chip units. It can be used to check the cards\0Ahealth and/or to produce stress on the card to verify its\0Acorrect function.\0A\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([848 x i8], [848 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}