#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 *);
int /*<<< orphan*/ stderr;
void ModelsExplanation(void) {
  fprintf(stderr, "                                                            "
                  "             \n"
                  "  -m <c>:<d>:<i>:<m/e>  reference context model (ex:-m "
                  "13:100:0:0/0),    \n"
                  "  -m <c>:<d>:<i>:<m/e>  reference context model (ex:-m "
                  "20:1000:1:1/10),  \n"
                  "  ...                                                       "
                  "             \n"
                  "                        templates use <c> for context-order "
                  "size, <d> for\n"
                  "                        alpha (1/<d>), <i> (0 or 1) to set "
                  "the usage of  \n"
                  "                        inverted repeats (set 1 to use) and "
                  "<m> to the   \n"
                  "                        maximum allowed mutation on the "
                  "context without  \n"
                  "                        being discarded (usefull in deep "
                  "contexts), under\n"
                  "                        the estimator <e>.                  "
                  "             \n"
                  "                                                            "
                  "             \n");
}


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

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

LLVM IR (-O0):
@stderr = global i32 0
@.str = [815 x i8] c" \0A -m <c>:<d>:<i>:<m/e> reference context model (ex:-m 13:100:0:0/0), \0A -m <c>:<d>:<i>:<m/e> reference context model (ex:-m 20:1000:1:1/10), \0A ... \0A templates use <c> for context-order size, <d> for\0A alpha (1/<d>), <i> (0 or 1) to set the usage of \0A inverted repeats (set 1 to use) and <m> to the \0A maximum allowed mutation on the context without \0A being discarded (usefull in deep contexts), under\0A the estimator <e>. \0A \0A\00"
define void @ModelsExplanation() {
%1 = load i32, i32* @stderr
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([815 x i8], [815 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stderr = global i32 0
@.str = [815 x i8] c" \0A -m <c>:<d>:<i>:<m/e> reference context model (ex:-m 13:100:0:0/0), \0A -m <c>:<d>:<i>:<m/e> reference context model (ex:-m 20:1000:1:1/10), \0A ... \0A templates use <c> for context-order size, <d> for\0A alpha (1/<d>), <i> (0 or 1) to set the usage of \0A inverted repeats (set 1 to use) and <m> to the \0A maximum allowed mutation on the context without \0A being discarded (usefull in deep contexts), under\0A the estimator <e>. \0A \0A\00"
define void @ModelsExplanation() {
%1 = load i32, i32* @stderr
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([815 x i8], [815 x i8]* @.str, i64 0, i64 0))
ret void
}