#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*/ fprintf(int /*<<< orphan*/, char *, char *);
int /*<<< orphan*/ stdout;
void cmd_help() {
  fprintf(
      stdout, "\n%s\n",
      "Commands: \n  base file            designate a dataset as the base set "
      "for ks test\n  basic [vars]         give basic statistics about the "
      "sample\n  cdf file             output a cumulative distribution of the "
      "sample\n  clear                clear the current sample\n  close        "
      "        close an open output file\n  dump file            output the "
      "sample\n  freqtab gran \\       output a frequency table with the given "
      "granularity\n    [histogram]\n  exit                 quit the program\n "
      " info                 information about the program\n  input f1 f2 ...  "
      "    input the given data files\n  ks-fit               perform K-S test "
      "between data and base data set\n  open file            send all output "
      "to the give file\n  perc x               report the x-th percentile of "
      "the sample\n  silent               turn off feedback from the program "
      "(except when\n                       directly requested)\n  transform "
      "func       transform data by applying the given function\n");
}


x86 assembly (clang, -O0):
<cmd_help>:
push   %rbp
mov    %rsp,%rbp
mov    0x2ec5(%rip),%rax
mov    (%rax),%edi
lea    0xedc(%rip),%rsi
lea    0xeda(%rip),%rdx
call   1030 <fprintf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<cmd_help>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
lea    0xede(%rip),%rdx
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [5 x i8] c"\0A%s\0A\00"
@.str.1 = [961 x i8] c"Commands: \0A base file designate a dataset as the base set for ks test\0A basic [vars] give basic statistics about the sample\0A cdf file output a cumulative distribution of the sample\0A clear clear the current sample\0A close close an open output file\0A dump file output the sample\0A freqtab gran \\ output a frequency table with the given granularity\0A [histogram]\0A exit quit the program\0A info information about the program\0A input f1 f2 ... input the given data files\0A ks-fit perform K-S test between data and base data set\0A open file send all output to the give file\0A perc x report the x-th percentile of the sample\0A silent turn off feedback from the program (except when\0A directly requested)\0A transform func transform data by applying the given function\0A\00"
define void @cmd_help() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([961 x i8], [961 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [5 x i8] c"\0A%s\0A\00"
@.str.1 = [961 x i8] c"Commands: \0A base file designate a dataset as the base set for ks test\0A basic [vars] give basic statistics about the sample\0A cdf file output a cumulative distribution of the sample\0A clear clear the current sample\0A close close an open output file\0A dump file output the sample\0A freqtab gran \\ output a frequency table with the given granularity\0A [histogram]\0A exit quit the program\0A info information about the program\0A input f1 f2 ... input the given data files\0A ks-fit perform K-S test between data and base data set\0A open file send all output to the give file\0A perc x report the x-th percentile of the sample\0A silent turn off feedback from the program (except when\0A directly requested)\0A transform func transform data by applying the given function\0A\00"
define void @cmd_help() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([961 x i8], [961 x i8]* @.str.1, i64 0, i64 0))
ret void
}