#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 help_options(void) {
  printf("Options:\n");
  printf("Options must be entered in the form '[set] <option> [=] <value>', "
         "with [set] and\n[=] being optional.\n");
  printf("  verbose [n]          set Edax verbosity (default 1).\n");
  printf("  noise [n]            start displaying Edax search result from this "
         "depth\n  (default 5).\n");
  printf("  witdh [n]            display edax search results using <width> "
         "characters\n  (default 80).\n");
  printf("  hash-table-size [n]  set hashtable size (default 18 bits).\n");
  printf("  n-tasks [n]          control the number of parallel threads used "
         "in searching\n  (default 1).\n");
  printf("  l|level [n]          search using limited depth (default 21).\n");
  printf("  t|game-time <time>   search using limited time per game.\n");
  printf("  move-time <time>     search using limited time per move.\n");
  printf("  ponder [on/off]      set pondering on/off.\n");
  printf("  book-file [file]     use [file] as default book file (default "
         "data/book.dat).\n");
  printf("  book-usage [on/off]  use or do not use the opening book.\n");
  printf("  book-randomness [n]  play various but worse moves from the opening "
         "book.\n");
  printf("  auto-start [on/off]  automatically start a new game.\n");
  printf(
      "  auto-swap [on/off]   automatically swap players between each game.\n");
  printf("  auto-store [on/off]  automatically store each game into the "
         "opening book.\n");
}


x86 assembly (clang, -O0):
<help_options>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
call   1030 <printf@plt>
lea    0xee3(%rip),%rdi
call   1030 <printf@plt>
lea    0xf3d(%rip),%rdi
call   1030 <printf@plt>
lea    0xf69(%rip),%rdi
call   1030 <printf@plt>
lea    0xfb8(%rip),%rdi
call   1030 <printf@plt>
lea    0x1009(%rip),%rdi
call   1030 <printf@plt>
lea    0x103b(%rip),%rdi
call   1030 <printf@plt>
lea    0x108f(%rip),%rdi
call   1030 <printf@plt>
lea    0x10c4(%rip),%rdi
call   1030 <printf@plt>
lea    0x10f4(%rip),%rdi
call   1030 <printf@plt>
lea    0x1124(%rip),%rdi
call   1030 <printf@plt>
lea    0x1146(%rip),%rdi
call   1030 <printf@plt>
lea    0x118b(%rip),%rdi
call   1030 <printf@plt>
lea    0x11bb(%rip),%rdi
call   1030 <printf@plt>
lea    0x11fb(%rip),%rdi
call   1030 <printf@plt>
lea    0x1227(%rip),%rdi
call   1030 <printf@plt>
lea    0x1261(%rip),%rdi
call   1030 <printf@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<help_options>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xee5(%rip),%rdi
call   1030 <puts@plt>
lea    0xf3e(%rip),%rdi
call   1030 <puts@plt>
lea    0xf69(%rip),%rdi
call   1030 <puts@plt>
lea    0xfb7(%rip),%rdi
call   1030 <puts@plt>
lea    0x1007(%rip),%rdi
call   1030 <puts@plt>
lea    0x1038(%rip),%rdi
call   1030 <puts@plt>
lea    0x108b(%rip),%rdi
call   1030 <puts@plt>
lea    0x10bf(%rip),%rdi
call   1030 <puts@plt>
lea    0x10ee(%rip),%rdi
call   1030 <puts@plt>
lea    0x111d(%rip),%rdi
call   1030 <puts@plt>
lea    0x113e(%rip),%rdi
call   1030 <puts@plt>
lea    0x1182(%rip),%rdi
call   1030 <puts@plt>
lea    0x11b1(%rip),%rdi
call   1030 <puts@plt>
lea    0x11f0(%rip),%rdi
call   1030 <puts@plt>
lea    0x121b(%rip),%rdi
call   1030 <puts@plt>
lea    0x1254(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [10 x i8] c"Options:\0A\00"
@.str.1 = [102 x i8] c"Options must be entered in the form '[set] <option> [=] <value>', with [set] and\0A[=] being optional.\0A\00"
@.str.2 = [56 x i8] c" verbose [n] set Edax verbosity (default 1).\0A\00"
@.str.3 = [91 x i8] c" noise [n] start displaying Edax search result from this depth\0A (default 5).\0A\00"
@.str.4 = [93 x i8] c" witdh [n] display edax search results using <width> characters\0A (default 80).\0A\00"
@.str.5 = [62 x i8] c" hash-table-size [n] set hashtable size (default 18 bits).\0A\00"
@.str.6 = [96 x i8] c" n-tasks [n] control the number of parallel threads used in searching\0A (default 1).\0A\00"
@.str.7 = [65 x i8] c" l|level [n] search using limited depth (default 21).\0A\00"
@.str.8 = [60 x i8] c" t|game-time <time> search using limited time per game.\0A\00"
@.str.9 = [60 x i8] c" move-time <time> search using limited time per move.\0A\00"
@.str.10 = [46 x i8] c" ponder [on/off] set pondering on/off.\0A\00"
@.str.11 = [81 x i8] c" book-file [file] use [file] as default book file (default data/book.dat).\0A\00"
@.str.12 = [60 x i8] c" book-usage [on/off] use or do not use the opening book.\0A\00"
@.str.13 = [76 x i8] c" book-randomness [n] play various but worse moves from the opening book.\0A\00"
@.str.14 = [56 x i8] c" auto-start [on/off] automatically start a new game.\0A\00"
@.str.15 = [70 x i8] c" auto-swap [on/off] automatically swap players between each game.\0A\00"
@.str.16 = [77 x i8] c" auto-store [on/off] automatically store each game into the opening book.\0A\00"
define void @help_options() {
%1 = call i32 @printf(i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([102 x i8], [102 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.2, i64 0, i64 0))
%4 = call i32 @printf(i8* getelementptr inbounds ([91 x i8], [91 x i8]* @.str.3, i64 0, i64 0))
%5 = call i32 @printf(i8* getelementptr inbounds ([93 x i8], [93 x i8]* @.str.4, i64 0, i64 0))
%6 = call i32 @printf(i8* getelementptr inbounds ([62 x i8], [62 x i8]* @.str.5, i64 0, i64 0))
%7 = call i32 @printf(i8* getelementptr inbounds ([96 x i8], [96 x i8]* @.str.6, i64 0, i64 0))
%8 = call i32 @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.7, i64 0, i64 0))
%9 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.8, i64 0, i64 0))
%10 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.9, i64 0, i64 0))
%11 = call i32 @printf(i8* getelementptr inbounds ([46 x i8], [46 x i8]* @.str.10, i64 0, i64 0))
%12 = call i32 @printf(i8* getelementptr inbounds ([81 x i8], [81 x i8]* @.str.11, i64 0, i64 0))
%13 = call i32 @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.12, i64 0, i64 0))
%14 = call i32 @printf(i8* getelementptr inbounds ([76 x i8], [76 x i8]* @.str.13, i64 0, i64 0))
%15 = call i32 @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.14, i64 0, i64 0))
%16 = call i32 @printf(i8* getelementptr inbounds ([70 x i8], [70 x i8]* @.str.15, i64 0, i64 0))
%17 = call i32 @printf(i8* getelementptr inbounds ([77 x i8], [77 x i8]* @.str.16, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [9 x i8] c"Options:\00"
@str.17 = [101 x i8] c"Options must be entered in the form '[set] <option> [=] <value>', with [set] and\0A[=] being optional.\00"
@str.18 = [55 x i8] c" verbose [n] set Edax verbosity (default 1).\00"
@str.19 = [90 x i8] c" noise [n] start displaying Edax search result from this depth\0A (default 5).\00"
@str.20 = [92 x i8] c" witdh [n] display edax search results using <width> characters\0A (default 80).\00"
@str.21 = [61 x i8] c" hash-table-size [n] set hashtable size (default 18 bits).\00"
@str.22 = [95 x i8] c" n-tasks [n] control the number of parallel threads used in searching\0A (default 1).\00"
@str.23 = [64 x i8] c" l|level [n] search using limited depth (default 21).\00"
@str.24 = [59 x i8] c" t|game-time <time> search using limited time per game.\00"
@str.25 = [59 x i8] c" move-time <time> search using limited time per move.\00"
@str.26 = [45 x i8] c" ponder [on/off] set pondering on/off.\00"
@str.27 = [80 x i8] c" book-file [file] use [file] as default book file (default data/book.dat).\00"
@str.28 = [59 x i8] c" book-usage [on/off] use or do not use the opening book.\00"
@str.29 = [75 x i8] c" book-randomness [n] play various but worse moves from the opening book.\00"
@str.30 = [55 x i8] c" auto-start [on/off] automatically start a new game.\00"
@str.31 = [69 x i8] c" auto-swap [on/off] automatically swap players between each game.\00"
@str.32 = [76 x i8] c" auto-store [on/off] automatically store each game into the opening book.\00"
define void @help_options() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([9 x i8], [9 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([101 x i8], [101 x i8]* @str.17, i64 0, i64 0))
%3 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.18, i64 0, i64 0))
%4 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([90 x i8], [90 x i8]* @str.19, i64 0, i64 0))
%5 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([92 x i8], [92 x i8]* @str.20, i64 0, i64 0))
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([61 x i8], [61 x i8]* @str.21, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([95 x i8], [95 x i8]* @str.22, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.23, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.24, i64 0, i64 0))
%10 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.25, i64 0, i64 0))
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([45 x i8], [45 x i8]* @str.26, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([80 x i8], [80 x i8]* @str.27, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.28, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([75 x i8], [75 x i8]* @str.29, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.30, i64 0, i64 0))
%16 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([69 x i8], [69 x i8]* @str.31, i64 0, i64 0))
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([76 x i8], [76 x i8]* @str.32, i64 0, i64 0))
ret void
}