#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 *);
void print_help_lfmm() {
  printf("\nHELP: ./LFMM options \n\n"
         "mandatory:\n"
         "        -x genotype_file        -- genotype file (in .lfmm format)\n"
         "        -v variable_file        -- variable file (in .env format)\n"
         "        -K K                    -- K number of latent factors\n"
         "optional:\n"
         "        -d d                    -- d, the dth covariables         "
         "(default: all separately)\n"
         "        -a                      -- all covariables at the same time\n"
         "        -o output_file          -- base of the output files with "
         "z-scores (default: genotype_file)\n"
         "        -m                      -- missing data                   "
         "(default: no)\n"
         "        -p p                    -- number of processes (CPU)      "
         "(default: 1)\n"
         "        -i Niter                -- number of iterations in the GS "
         "(default: 1000)\n"
         "        -b burn                 -- burnin parameter in the GS     "
         "(default: 500)\n"
         "        -s seed                 -- seed random init               "
         "(default: random)\n"
         "        -C dic_file             -- DIC file                       "
         "(default: genotype_file.dic)\n"
         "        -h                      -- help\n\n");
}


x86 assembly (clang, -O0):
<print_help_lfmm>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<print_help_lfmm>:
lea    0xee9(%rip),%rdi
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [1043 x i8] c"\0AHELP: ./LFMM\C2\A0options \0A\0Amandatory:\0A -x genotype_file -- genotype file (in .lfmm format)\0A -v variable_file -- variable file (in .env format)\0A -K K -- K number of latent factors\0Aoptional:\0A -d d -- d, the dth covariables (default: all separately)\0A -a -- all covariables at the same time\0A -o output_file -- base of the output files with z-scores (default: genotype_file)\0A -m -- missing data (default: no)\0A -p p -- number of processes (CPU) (default: 1)\0A -i Niter -- number of iterations in the GS (default: 1000)\0A -b burn -- burnin parameter in the GS (default: 500)\0A -s seed -- seed random init (default: random)\0A -C dic_file -- DIC file (default: genotype_file.dic)\0A -h -- help\0A\0A\00"
define void @print_help_lfmm() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1043 x i8], [1043 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1042 x i8] c"\0AHELP: ./LFMM\C2\A0options \0A\0Amandatory:\0A -x genotype_file -- genotype file (in .lfmm format)\0A -v variable_file -- variable file (in .env format)\0A -K K -- K number of latent factors\0Aoptional:\0A -d d -- d, the dth covariables (default: all separately)\0A -a -- all covariables at the same time\0A -o output_file -- base of the output files with z-scores (default: genotype_file)\0A -m -- missing data (default: no)\0A -p p -- number of processes (CPU) (default: 1)\0A -i Niter -- number of iterations in the GS (default: 1000)\0A -b burn -- burnin parameter in the GS (default: 500)\0A -s seed -- seed random init (default: random)\0A -C dic_file -- DIC file (default: genotype_file.dic)\0A -h -- help\0A\00"
define void @print_help_lfmm() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1042 x i8], [1042 x i8]* @str, i64 0, i64 0))
ret void
}