#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*/ stdout;
void test_unknown(void) {
  fprintf(stdout, "Usage: libc [OPTION] ...\n"
                  "Test c like library.\n\n"
                  "  help       display this help and exit\n"
                  "  arith      display testcases of arith\n"
                  "  stack      display testcases of stack\n"
                  "  atom       display testcases of atom\n"
                  "  except     display testcases of exception\n"
                  "  mem        display testcases of memory\n"
                  "  memchk     display testcases of mem_check\n"
                  "  arena      display testcases of arena\n"
                  "  list       display testcases of list\n"
                  "  slist      display testcases of slist\n"
                  "  table      display testcases of table\n"
                  "  set        display testcases of set\n"
                  "  array      display testcases of array\n"
                  "  seq        display testcases of sequence\n"
                  "  ring       display testcases of ring\n"
                  "  bit        display testcases of bit\n"
                  "  format     display testcases of format\n"
                  "  str        display testcases of string\n"
                  "  text       display testcases of text\n");
}


x86 assembly (clang, -O0):
<test_unknown>:
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):
<test_unknown>:
mov    0x2ec9(%rip),%rax
mov    (%rax),%edi
lea    0xee0(%rip),%rsi
jmp    1030 <fprintf@plt>

LLVM IR (-O0):
@stdout = global i32 0
@.str = [814 x i8] c"Usage: libc [OPTION] ...\0ATest c like library.\0A\0A help display this help and exit\0A arith display testcases of arith\0A stack display testcases of stack\0A atom display testcases of atom\0A except display testcases of exception\0A mem display testcases of memory\0A memchk display testcases of mem_check\0A arena display testcases of arena\0A list display testcases of list\0A slist display testcases of slist\0A table display testcases of table\0A set display testcases of set\0A array display testcases of array\0A seq display testcases of sequence\0A ring display testcases of ring\0A bit display testcases of bit\0A format display testcases of format\0A str display testcases of string\0A text display testcases of text\0A\00"
define void @test_unknown() {
%1 = load i32, i32* @stdout
%2 = call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([814 x i8], [814 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@stdout = global i32 0
@.str = [814 x i8] c"Usage: libc [OPTION] ...\0ATest c like library.\0A\0A help display this help and exit\0A arith display testcases of arith\0A stack display testcases of stack\0A atom display testcases of atom\0A except display testcases of exception\0A mem display testcases of memory\0A memchk display testcases of mem_check\0A arena display testcases of arena\0A list display testcases of list\0A slist display testcases of slist\0A table display testcases of table\0A set display testcases of set\0A array display testcases of array\0A seq display testcases of sequence\0A ring display testcases of ring\0A bit display testcases of bit\0A format display testcases of format\0A str display testcases of string\0A text display testcases of text\0A\00"
define void @test_unknown() {
%1 = load i32, i32* @stdout
%2 = tail call i32 @fprintf(i32 %1, i8* getelementptr inbounds ([814 x i8], [814 x i8]* @.str, i64 0, i64 0))
ret void
}