#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 *, char const *, char const *, char const *);
void help_info(const char *appname) {
  printf("\n"
         "*******************************************************\n"
         "*******    Test Application for 1588 driver    ********\n"
         "*******************************************************\n"
         "*    This test set and get value to 1588 timer        *\n"
         "*                                                     *\n"
         "*                                                     *\n"
         "*    Options : %s <command> <devid> <value>           *\n"
         "*                                                     *\n"
         "*    <command> - 1588 driver ioctl command            *\n"
         "*    <devid> - FEC device number in [0, 1]            *\n"
         "*    <value> - setting actual value                   *\n"
         "*    Syntax: Set FEC1 timer value                     *\n"
         "*            %s -st 1 <hh:mm:ss>                      *\n"
         "*            Get FEC0 timer value                     *\n"
         "*            %s -gt 0                                 *\n"
         "*******************************************************\n"
         "\n",
         appname, appname, appname);
}


x86 assembly (clang, -O0):
<help_info>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
mov    -0x8(%rbp),%rsi
mov    -0x8(%rbp),%rdx
mov    -0x8(%rbp),%rcx
lea    0xed1(%rip),%rdi
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<help_info>:
mov    %rdi,%rcx
lea    0xee6(%rip),%rdi
mov    %rcx,%rsi
mov    %rcx,%rdx
jmp    1030 <printf@plt>

LLVM IR (-O0):
@.str = [899 x i8] c"\0A*******************************************************\0A******* Test Application for 1588 driver ********\0A*******************************************************\0A* This test set and get value to 1588 timer *\0A* *\0A* *\0A* Options : %s <command> <devid> <value> *\0A* *\0A* <command> - 1588 driver ioctl command *\0A* <devid> - FEC device number in [0, 1] *\0A* <value> - setting actual value *\0A* Syntax: Set FEC1 timer value *\0A* %s -st 1 <hh:mm:ss> *\0A* Get FEC0 timer value *\0A* %s -gt 0 *\0A*******************************************************\0A\0A\00"
define void @help_info(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = load i8*, i8** %2
%5 = load i8*, i8** %2
%6 = call i32 @printf(i8* getelementptr inbounds ([899 x i8], [899 x i8]* @.str, i64 0, i64 0), i8* %3, i8* %4, i8* %5)
ret void
}

LLVM IR (-O2):
@.str = [899 x i8] c"\0A*******************************************************\0A******* Test Application for 1588 driver ********\0A*******************************************************\0A* This test set and get value to 1588 timer *\0A* *\0A* *\0A* Options : %s <command> <devid> <value> *\0A* *\0A* <command> - 1588 driver ioctl command *\0A* <devid> - FEC device number in [0, 1] *\0A* <value> - setting actual value *\0A* Syntax: Set FEC1 timer value *\0A* %s -st 1 <hh:mm:ss> *\0A* Get FEC0 timer value *\0A* %s -gt 0 *\0A*******************************************************\0A\0A\00"
define void @help_info(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([899 x i8], [899 x i8]* @.str, i64 0, i64 0), i8* %0, i8* %0, i8* %0)
ret void
}