#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 showHelp() {
  printf("\nProgram sa spusta v podobe ./proj1 X [N] [-d]\n"
         "\nArgumenty programu:\n"
         "\nX reprezentuje hledany znak v pocitanych slovech. Specialni znak : "
         "navic symbolizuje libovolne cislo 0-9, znak ^ symbolizuje libovolne "
         "velke pismeno A-Z a znak . symbolizuje libovolny znak.\n"
         "\nVolitelny argument N predstavuje cislo vyjadrujici pozici "
         "hledaneho znaku v pocitanych slovech. Platne pocitane slovo musi mit "
         "hledany znak prave na dane pozici. Cislo N je kladne - prvni znak ve "
         "slove ma pozici 1.\n"
         "\n- N moze byt aj cislo 0, vtedy hlada na akekolvej pozicii, ak "
         "nieje argument N specifikovany automaticky sa pocita s 0\n"
         "\n- N nemoze nadobudat vacsie hodnoty ako INT_MAX, ak bude zadane "
         "vacsie cislo tak sa implicitne nastavi 0\n"
         "\nVolitelny argument -d zapina tzv. ladici (debug) rezim programu. V "
         "ladicim rezimu program na vystup prubezne vypisuje kazde nactene "
         "slovo, jedno slovo na radek. Maximalna dlzka slova je 80znakov.\n\n");
}


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

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

LLVM IR (-O0):
@.str = [900 x i8] c"\0AProgram sa spusta v podobe ./proj1 X [N] [-d]\0A\0AArgumenty programu:\0A\0AX reprezentuje hledany znak v pocitanych slovech. Specialni znak : navic symbolizuje libovolne cislo 0-9, znak ^ symbolizuje libovolne velke pismeno A-Z a znak . symbolizuje libovolny znak.\0A\0AVolitelny argument N predstavuje cislo vyjadrujici pozici hledaneho znaku v pocitanych slovech. Platne pocitane slovo musi mit hledany znak prave na dane pozici. Cislo N je kladne - prvni znak ve slove ma pozici 1.\0A\0A- N moze byt aj cislo 0, vtedy hlada na akekolvej pozicii, ak nieje argument N specifikovany automaticky sa pocita s 0\0A\0A- N nemoze nadobudat vacsie hodnoty ako INT_MAX, ak bude zadane vacsie cislo tak sa implicitne nastavi 0\0A\0AVolitelny argument -d zapina tzv. ladici (debug) rezim programu. V ladicim rezimu program na vystup prubezne vypisuje kazde nactene slovo, jedno slovo na radek. Maximalna dlzka slova je 80znakov.\0A\0A\00"
define void @showHelp() {
%1 = call i32 @printf(i8* getelementptr inbounds ([900 x i8], [900 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [899 x i8] c"\0AProgram sa spusta v podobe ./proj1 X [N] [-d]\0A\0AArgumenty programu:\0A\0AX reprezentuje hledany znak v pocitanych slovech. Specialni znak : navic symbolizuje libovolne cislo 0-9, znak ^ symbolizuje libovolne velke pismeno A-Z a znak . symbolizuje libovolny znak.\0A\0AVolitelny argument N predstavuje cislo vyjadrujici pozici hledaneho znaku v pocitanych slovech. Platne pocitane slovo musi mit hledany znak prave na dane pozici. Cislo N je kladne - prvni znak ve slove ma pozici 1.\0A\0A- N moze byt aj cislo 0, vtedy hlada na akekolvej pozicii, ak nieje argument N specifikovany automaticky sa pocita s 0\0A\0A- N nemoze nadobudat vacsie hodnoty ako INT_MAX, ak bude zadane vacsie cislo tak sa implicitne nastavi 0\0A\0AVolitelny argument -d zapina tzv. ladici (debug) rezim programu. V ladicim rezimu program na vystup prubezne vypisuje kazde nactene slovo, jedno slovo na radek. Maximalna dlzka slova je 80znakov.\0A\00"
define void @showHelp() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([899 x i8], [899 x i8]* @str, i64 0, i64 0))
ret void
}