#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*/ exit(int /*<<< orphan*/);
int /*<<< orphan*/ printf(char *, char *);
void usage(char *name) {
  printf(
      "Usage: %s [OPTION]...\n\n  -m, --mounts		Show statistics on "
      "mounted NFS filesystems\n  -c, --client		Show NFS client "
      "statistics\n  -s, --server		Show NFS server statistics\n  "
      "-2			Show NFS version 2 statistics\n  -3	"
      "		Show NFS version 3 statistics\n  -4			Show "
      "NFS version 4 statistics\n  -o [facility]		Show "
      "statistics on particular facilities.\n     nfs		NFS protocol "
      "information\n     rpc		General RPC information\n     "
      "net		Network layer statistics\n     fh		"
      "	Usage information on the server's file handle cache\n     io	"
      "		Usage information on the server's io statistics\n     "
      "ra			Usage information on the server's read ahead "
      "cache\n     rc			Usage information on the server's "
      "request reply cache\n     all		Select all of the above\n  -v, "
      "--verbose, --all	Same as '-o all'\n  -r, --rpc		Show RPC "
      "statistics\n  -n, --nfs		Show NFS statistics\n  -Z[#], "
      "--sleep[=#]	Collects stats until interrupted.\n		"
      "	    Cumulative stats are then printed\n          		    If "
      "# is provided, stats will be output every\n			    # "
      "seconds.\n  -S, --since file	Shows difference between current stats "
      "and those in 'file'\n  -l, --list		Prints stats in list "
      "format\n  --version		Show program version\n  --help	"
      "	What you just did\n\n",
      name);
  exit(0);
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
lea    0xec9(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

x86 assembly (clang, -O2):
<usage>:
push   %rax
mov    %rdi,%rsi
lea    0xed5(%rip),%rdi
call   1030 <printf@plt>
xor    %edi,%edi
call   1040 <exit@plt>

LLVM IR (-O0):
@.str = [1186 x i8] c"Usage: %s [OPTION]...\0A\0A -m, --mounts\09\09Show statistics on mounted NFS filesystems\0A -c, --client\09\09Show NFS client statistics\0A -s, --server\09\09Show NFS server statistics\0A -2\09\09\09Show NFS version 2 statistics\0A -3\09\09\09Show NFS version 3 statistics\0A -4\09\09\09Show NFS version 4 statistics\0A -o [facility]\09\09Show statistics on particular facilities.\0A nfs\09\09NFS protocol information\0A rpc\09\09General RPC information\0A net\09\09Network layer statistics\0A fh\09\09\09Usage information on the server's file handle cache\0A io\09\09\09Usage information on the server's io statistics\0A ra\09\09\09Usage information on the server's read ahead cache\0A rc\09\09\09Usage information on the server's request reply cache\0A all\09\09Select all of the above\0A -v, --verbose, --all\09Same as '-o all'\0A -r, --rpc\09\09Show RPC statistics\0A -n, --nfs\09\09Show NFS statistics\0A -Z[#], --sleep[=#]\09Collects stats until interrupted.\0A\09\09\09 Cumulative stats are then printed\0A \09\09 If # is provided, stats will be output every\0A\09\09\09 # seconds.\0A -S, --since file\09Shows difference between current stats and those in 'file'\0A -l, --list\09\09Prints stats in list format\0A --version\09\09Show program version\0A --help\09\09What you just did\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 ([1186 x i8], [1186 x i8]* @.str, i64 0, i64 0), i8* %3)
%5 = call i32 @exit(i32 0)
unreachable
}

LLVM IR (-O2):
@.str = [1186 x i8] c"Usage: %s [OPTION]...\0A\0A -m, --mounts\09\09Show statistics on mounted NFS filesystems\0A -c, --client\09\09Show NFS client statistics\0A -s, --server\09\09Show NFS server statistics\0A -2\09\09\09Show NFS version 2 statistics\0A -3\09\09\09Show NFS version 3 statistics\0A -4\09\09\09Show NFS version 4 statistics\0A -o [facility]\09\09Show statistics on particular facilities.\0A nfs\09\09NFS protocol information\0A rpc\09\09General RPC information\0A net\09\09Network layer statistics\0A fh\09\09\09Usage information on the server's file handle cache\0A io\09\09\09Usage information on the server's io statistics\0A ra\09\09\09Usage information on the server's read ahead cache\0A rc\09\09\09Usage information on the server's request reply cache\0A all\09\09Select all of the above\0A -v, --verbose, --all\09Same as '-o all'\0A -r, --rpc\09\09Show RPC statistics\0A -n, --nfs\09\09Show NFS statistics\0A -Z[#], --sleep[=#]\09Collects stats until interrupted.\0A\09\09\09 Cumulative stats are then printed\0A \09\09 If # is provided, stats will be output every\0A\09\09\09 # seconds.\0A -S, --since file\09Shows difference between current stats and those in 'file'\0A -l, --list\09\09Prints stats in list format\0A --version\09\09Show program version\0A --help\09\09What you just did\0A\0A\00"
define void @usage(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([1186 x i8], [1186 x i8]* @.str, i64 0, i64 0), i8* %0)
%3 = tail call i32 @exit(i32 0)
unreachable
}