#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 usage(char *name) {
  printf(
      "Syntax: %s [options]\n\n"
      "where option could be one of following:\n\n"
      "\t--cpu-affinity-get                     get the CPU affinity\n"
      "\t--cpu-affinity-set <mask>              set the CPU affinity to "
      "<mask>\n"
      "\t--cpu-get                              get the CPU information "
      "(total/online)\n"
      "\t--cpu-get-speed                        get (measure) the CPU speed\n"
      "\t--cpu-get-dhrystone                    get the CPU Dhrystone in "
      "DMIPS\n"
      "\t--cpu-get-whetstone                    get the CPU Whetstone in MIPS\n"
      "\t--cpu-get-linpack <size>               get the CPU Linpack score for "
      "specified array size (e.g. 200)\n"
      "\t--cpu-all <linpack-size>               perform all CPU-related tests "
      "and also get memory size\n"
      "\t--memory-get                           get the physical memory size\n"
      "\t--precision <precision>                set precision value for "
      "floating point values (default value: 2)\n"
      "\t--temp-dir <dir>                       set the temporary directory to "
      "<dir>\n"
      "\t--disk-get-benchmark <size>            get the benchmark statistics "
      "for disk I/O for test data of <size> (supports k, M, G suffixes)\n"
      "\t--net-benchmark-server :<port>         create the server on local "
      "<port> for network I/O benchmarking\n"
      "\t--net-benchmark-client <host> <size>   connect to host[:port] defined "
      "by <host> to perform I/O benchmarking for <size> (k, M, G suffixed)\n"
      "\t--format <format>                      output results in <format> "
      "(can be plain, xml or csv)\n\n",
      name);
}


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 = [1403 x i8] c"Syntax: %s [options]\0A\0Awhere option could be one of following:\0A\0A\09--cpu-affinity-get get the CPU affinity\0A\09--cpu-affinity-set <mask> set the CPU affinity to <mask>\0A\09--cpu-get get the CPU information (total/online)\0A\09--cpu-get-speed get (measure) the CPU speed\0A\09--cpu-get-dhrystone get the CPU Dhrystone in DMIPS\0A\09--cpu-get-whetstone get the CPU Whetstone in MIPS\0A\09--cpu-get-linpack <size> get the CPU Linpack score for specified array size (e.g. 200)\0A\09--cpu-all <linpack-size> perform all CPU-related tests and also get memory size\0A\09--memory-get get the physical memory size\0A\09--precision <precision> set precision value for floating point values (default value: 2)\0A\09--temp-dir <dir> set the temporary directory to <dir>\0A\09--disk-get-benchmark <size> get the benchmark statistics for disk I/O for test data of <size> (supports k, M, G suffixes)\0A\09--net-benchmark-server :<port> create the server on local <port> for network I/O benchmarking\0A\09--net-benchmark-client <host> <size> connect to host[:port] defined by <host> to perform I/O benchmarking for <size> (k, M, G suffixed)\0A\09--format <format> output results in <format> (can be plain, xml or csv)\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 ([1403 x i8], [1403 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [1403 x i8] c"Syntax: %s [options]\0A\0Awhere option could be one of following:\0A\0A\09--cpu-affinity-get get the CPU affinity\0A\09--cpu-affinity-set <mask> set the CPU affinity to <mask>\0A\09--cpu-get get the CPU information (total/online)\0A\09--cpu-get-speed get (measure) the CPU speed\0A\09--cpu-get-dhrystone get the CPU Dhrystone in DMIPS\0A\09--cpu-get-whetstone get the CPU Whetstone in MIPS\0A\09--cpu-get-linpack <size> get the CPU Linpack score for specified array size (e.g. 200)\0A\09--cpu-all <linpack-size> perform all CPU-related tests and also get memory size\0A\09--memory-get get the physical memory size\0A\09--precision <precision> set precision value for floating point values (default value: 2)\0A\09--temp-dir <dir> set the temporary directory to <dir>\0A\09--disk-get-benchmark <size> get the benchmark statistics for disk I/O for test data of <size> (supports k, M, G suffixes)\0A\09--net-benchmark-server :<port> create the server on local <port> for network I/O benchmarking\0A\09--net-benchmark-client <host> <size> connect to host[:port] defined by <host> to perform I/O benchmarking for <size> (k, M, G suffixed)\0A\09--format <format> output results in <format> (can be plain, xml or csv)\0A\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([1403 x i8], [1403 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}