#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 *, int);
void usage(char *name) {
  printf(
      "Usage: %s [OPTIONS]...\n"
      "\n"
      "Mandatory arguments to long options are mandatory for short options "
      "too.\n"
      "  -h, --help	print usage information\n"
      "  -V, --version	print version\n"
      "  -i, --input=FILE	input filename, uses stdin if option is "
      "missing\n"
      "  -o, --output=FILE output filename, uses stdout if option is missing\n"
      "  -v, --verbose	verbose mode, multiple v's to increase verbosity\n"
      "  --crcoff		do not check and correct crc in output File\n"
      "  --reverse		takes as input a binaray file and creates a "
      "CSV output file\n"
      "\n"
      "This utility converts a comma separated VPD file (CSV file) for the "
      "GenWQE Card\n"
      "to a binary file which can be used for flash programming for VPD data.\n"
      "The CVS input file format (0x%x) is fix. Only the data can be "
      "changed.\n",
      name, 0x102);
}


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
mov    $0x102,%edx
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

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

LLVM IR (-O0):
@.str = [719 x i8] c"Usage: %s [OPTIONS]...\0A\0AMandatory arguments to long options are mandatory for short options too.\0A -h, --help\09print usage information\0A -V, --version\09print version\0A -i, --input=FILE\09input filename, uses stdin if option is missing\0A -o, --output=FILE output filename, uses stdout if option is missing\0A -v, --verbose\09verbose mode, multiple v's to increase verbosity\0A --crcoff\09\09do not check and correct crc in output File\0A --reverse\09\09takes as input a binaray file and creates a CSV output file\0A\0AThis utility converts a comma separated VPD file (CSV file) for the GenWQE Card\0Ato a binary file which can be used for flash programming for VPD data.\0AThe CVS input file format (0x%x) is fix. Only the data can be changed.\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 ([719 x i8], [719 x i8]* @.str, i64 0, i64 0), i8* %3, i32 258)
ret void
}

LLVM IR (-O2):
@.str = [719 x i8] c"Usage: %s [OPTIONS]...\0A\0AMandatory arguments to long options are mandatory for short options too.\0A -h, --help\09print usage information\0A -V, --version\09print version\0A -i, --input=FILE\09input filename, uses stdin if option is missing\0A -o, --output=FILE output filename, uses stdout if option is missing\0A -v, --verbose\09verbose mode, multiple v's to increase verbosity\0A --crcoff\09\09do not check and correct crc in output File\0A --reverse\09\09takes as input a binaray file and creates a CSV output file\0A\0AThis utility converts a comma separated VPD file (CSV file) for the GenWQE Card\0Ato a binary file which can be used for flash programming for VPD data.\0AThe CVS input file format (0x%x) is fix. Only the data can be changed.\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([719 x i8], [719 x i8]* @.str, i64 0, i64 0), i8* %0, i32 258)
ret void
}