#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 model (ex: -m "
                  "13:20:1:0/0),        \n"
                  "      -m <c>:<d>:<i>:<m/e>  reference model (ex: -m "
                  "18:500:1:5/50),      \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 model (ex: -m 13:20:1:0/0), \0A -m <c>:<d>:<i>:<m/e> reference model (ex: -m 18:500:1:5/50), \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 model (ex: -m 13:20:1:0/0), \0A -m <c>:<d>:<i>:<m/e> reference model (ex: -m 18:500:1:5/50), \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
}