#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 *, int, int, char *);
int usage(void) {
  printf("Usage: rs232-gen [-h] [-o file] [-b baud] [-f freq] [-n name]\n"
         "                 <-d [+]cycle:hex,hex,hex...> <...>\n"
         "  -o  --output       Output file     (default=%s)\n"
         "  -b  --baud         Baud rate       (default=%u)\n"
         "  -f  --frequency    Pic frequency   (default=%u)\n"
         "  -n  --name         Stimulus name   (default=%s)\n"
         "  -d  --data         Data to be sent and when\n"
         "  -c  --char         Data restricted to printable characters\n"
         "  -h, --help         This help\n\n"
         "Examples:\n"
         "  rs232-gen -b 115200 -d 100:0xFF,0x00 -d +100:0xFF,0x01\n"
         "  rs232-gen -b 9600 -f 4000000 -c 100:Test\\ String\n\n",
         "rs232.out", 9600, 20000000, "rs232_stimulus");
  return 0;
}


x86 assembly (clang, -O0):
<usage>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0x111b(%rip),%rsi
mov    $0x2580,%edx
mov    $0x1312d00,%ecx
lea    0x1114(%rip),%r8
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rbp
ret

x86 assembly (clang, -O2):
<usage>:
push   %rax
lea    0xee8(%rip),%rdi
lea    0x111e(%rip),%rsi
lea    0x1121(%rip),%r8
mov    $0x2580,%edx
mov    $0x1312d00,%ecx
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [573 x i8] c"Usage: rs232-gen [-h] [-o file] [-b baud] [-f freq] [-n name]\0A <-d [+]cycle:hex,hex,hex...> <...>\0A -o --output Output file (default=%s)\0A -b --baud Baud rate (default=%u)\0A -f --frequency Pic frequency (default=%u)\0A -n --name Stimulus name (default=%s)\0A -d --data Data to be sent and when\0A -c --char Data restricted to printable characters\0A -h, --help This help\0A\0AExamples:\0A rs232-gen -b 115200 -d 100:0xFF,0x00 -d +100:0xFF,0x01\0A rs232-gen -b 9600 -f 4000000 -c 100:Test\\ String\0A\0A\00"
@.str.1 = [10 x i8] c"rs232.out\00"
@.str.2 = [15 x i8] c"rs232_stimulus\00"
define i32 @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([573 x i8], [573 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), i32 9600, i32 20000000, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0))
ret i32 0
}

LLVM IR (-O2):
@.str = [573 x i8] c"Usage: rs232-gen [-h] [-o file] [-b baud] [-f freq] [-n name]\0A <-d [+]cycle:hex,hex,hex...> <...>\0A -o --output Output file (default=%s)\0A -b --baud Baud rate (default=%u)\0A -f --frequency Pic frequency (default=%u)\0A -n --name Stimulus name (default=%s)\0A -d --data Data to be sent and when\0A -c --char Data restricted to printable characters\0A -h, --help This help\0A\0AExamples:\0A rs232-gen -b 115200 -d 100:0xFF,0x00 -d +100:0xFF,0x01\0A rs232-gen -b 9600 -f 4000000 -c 100:Test\\ String\0A\0A\00"
@.str.1 = [10 x i8] c"rs232.out\00"
@.str.2 = [15 x i8] c"rs232_stimulus\00"
define i32 @usage() {
%1 = tail call i32 @printf(i8* getelementptr inbounds ([573 x i8], [573 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1, i64 0, i64 0), i32 9600, i32 20000000, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.2, i64 0, i64 0))
ret i32 0
}