#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() {
  printf("NVQM test suite\n\n"
         "Please select a test via:\n"
         "  $ ./test <testname> [params...]\n\n"
         "Margin of Error Tests:\n\n"
         "  Test Name     Tested Function   Correct Function\n"
         "  ---------     ----------------  ----------------\n"
         "  err_acos  ->  xint_acos(i)      num_acos(i)\n"
         "  err_asin  ->  xint_asin(i)      num_asin(i)\n"
         "  err_atan  ->  xint_atan2(i, 1)  num_atan2(i, 1)\n"
         "  err_atan2 ->  xint_atan2(i, j)  num_atan2(i, j)\n"
         "  err_cos   ->  xint_cos(i)       num_cos(i)\n"
         "  err_exp   ->  xint_exp(i)       num_exp(i)\n"
         "  err_log   ->  xint_log(i)       num_log(i)\n"
         "  err_pow   ->  xint_pow(i, j)    num_pow(i, j)\n"
         "  err_sin   ->  xint_sin(i)       num_sin(i)\n"
         "  err_sqrt  ->  xint_sqrt(i)      num_sqrt(i)\n"
         "  err_tan   ->  xint_tan(i)       num_tan(i)\n");
}


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

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

LLVM IR (-O0):
@.str = [716 x i8] c"NVQM test suite\0A\0APlease select a test via:\0A $ ./test <testname> [params...]\0A\0AMargin of Error Tests:\0A\0A Test Name Tested Function Correct Function\0A --------- ---------------- ----------------\0A err_acos -> xint_acos(i) num_acos(i)\0A err_asin -> xint_asin(i) num_asin(i)\0A err_atan -> xint_atan2(i, 1) num_atan2(i, 1)\0A err_atan2 -> xint_atan2(i, j) num_atan2(i, j)\0A err_cos -> xint_cos(i) num_cos(i)\0A err_exp -> xint_exp(i) num_exp(i)\0A err_log -> xint_log(i) num_log(i)\0A err_pow -> xint_pow(i, j) num_pow(i, j)\0A err_sin -> xint_sin(i) num_sin(i)\0A err_sqrt -> xint_sqrt(i) num_sqrt(i)\0A err_tan -> xint_tan(i) num_tan(i)\0A\00"
define void @print_help() {
%1 = call i32 @printf(i8* getelementptr inbounds ([716 x i8], [716 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [715 x i8] c"NVQM test suite\0A\0APlease select a test via:\0A $ ./test <testname> [params...]\0A\0AMargin of Error Tests:\0A\0A Test Name Tested Function Correct Function\0A --------- ---------------- ----------------\0A err_acos -> xint_acos(i) num_acos(i)\0A err_asin -> xint_asin(i) num_asin(i)\0A err_atan -> xint_atan2(i, 1) num_atan2(i, 1)\0A err_atan2 -> xint_atan2(i, j) num_atan2(i, j)\0A err_cos -> xint_cos(i) num_cos(i)\0A err_exp -> xint_exp(i) num_exp(i)\0A err_log -> xint_log(i) num_log(i)\0A err_pow -> xint_pow(i, j) num_pow(i, j)\0A err_sin -> xint_sin(i) num_sin(i)\0A err_sqrt -> xint_sqrt(i) num_sqrt(i)\0A err_tan -> xint_tan(i) num_tan(i)\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([715 x i8], [715 x i8]* @str, i64 0, i64 0))
ret void
}