#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 *);
void print_help(char *name) {
  printf(
      "Usage: %s [-ahtsfmbcru] FILE1 [FILE2] [FILEn]\n "
      "\t-h      Prints this usage message.  (help)\n"
      "\t-a[:]bits,channels,rate     Changes the format assumed by default \n"
      "\t                            for headerless data.  (adjust)\n"
      "\t-t      Prints the summed length of all the files processed.  "
      "(total)\n"
      "\t        (Ignored if with -s) \n"
      "\t-s      Enables script mode: One info type per file per line.   "
      "(script)\n"
      "\t        (Defaults to length in secs.) \n"
      "\t-f      With -s will return the format string as info, alone it will "
      "\n"
      "\t        add it to the main display.  (format)\n"
      "\t    -b  If -s and -f are enabled with this the info printed will be \n"
      "\t        the sample's bitwidth.  (bits)\n"
      "\t    -c  If -s and -f are enabled with this the info printed will be \n"
      "\t        the channel count.  (channel count)\n"
      "\t    -r  If -s and -f are enabled with this the info printed will be \n"
      "\t        the sampling rate.  (rate)\n"
      "\t-m      Will print human computable time as in main display but in \n"
      "\t        batch fashion.  (minutes)\n"
      "\t        (Only with -s)\n"
      "\t-u      This batchmode option returns the length of specified files \n"
      "\t        in samples. (Smallest Unit)\n"
      "\t        (This information is worthless if you don't know the sampling "
      "\n"
      "\t        rate of the file.) (Only with -s)\n"
      "(Note that out of context options will be ignored.)\n\n",
      name);
}


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

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

LLVM IR (-O0):
@.str = [1288 x i8] c"Usage: %s [-ahtsfmbcru] FILE1 [FILE2] [FILEn]\0A \09-h Prints this usage message. (help)\0A\09-a[:]bits,channels,rate Changes the format assumed by default \0A\09 for headerless data. (adjust)\0A\09-t Prints the summed length of all the files processed. (total)\0A\09 (Ignored if with -s) \0A\09-s Enables script mode: One info type per file per line. (script)\0A\09 (Defaults to length in secs.) \0A\09-f With -s will return the format string as info, alone it will \0A\09 add it to the main display. (format)\0A\09 -b If -s and -f are enabled with this the info printed will be \0A\09 the sample's bitwidth. (bits)\0A\09 -c If -s and -f are enabled with this the info printed will be \0A\09 the channel count. (channel count)\0A\09 -r If -s and -f are enabled with this the info printed will be \0A\09 the sampling rate. (rate)\0A\09-m Will print human computable time as in main display but in \0A\09 batch fashion. (minutes)\0A\09 (Only with -s)\0A\09-u This batchmode option returns the length of specified files \0A\09 in samples. (Smallest Unit)\0A\09 (This information is worthless if you don't know the sampling \0A\09 rate of the file.) (Only with -s)\0A(Note that out of context options will be ignored.)\0A\0A\00"
define void @print_help(i8* %0) {
%2 = alloca i8*
store i8* %0, i8** %2
%3 = load i8*, i8** %2
%4 = call i32 @printf(i8* getelementptr inbounds ([1288 x i8], [1288 x i8]* @.str, i64 0, i64 0), i8* %3)
ret void
}

LLVM IR (-O2):
@.str = [1288 x i8] c"Usage: %s [-ahtsfmbcru] FILE1 [FILE2] [FILEn]\0A \09-h Prints this usage message. (help)\0A\09-a[:]bits,channels,rate Changes the format assumed by default \0A\09 for headerless data. (adjust)\0A\09-t Prints the summed length of all the files processed. (total)\0A\09 (Ignored if with -s) \0A\09-s Enables script mode: One info type per file per line. (script)\0A\09 (Defaults to length in secs.) \0A\09-f With -s will return the format string as info, alone it will \0A\09 add it to the main display. (format)\0A\09 -b If -s and -f are enabled with this the info printed will be \0A\09 the sample's bitwidth. (bits)\0A\09 -c If -s and -f are enabled with this the info printed will be \0A\09 the channel count. (channel count)\0A\09 -r If -s and -f are enabled with this the info printed will be \0A\09 the sampling rate. (rate)\0A\09-m Will print human computable time as in main display but in \0A\09 batch fashion. (minutes)\0A\09 (Only with -s)\0A\09-u This batchmode option returns the length of specified files \0A\09 in samples. (Smallest Unit)\0A\09 (This information is worthless if you don't know the sampling \0A\09 rate of the file.) (Only with -s)\0A(Note that out of context options will be ignored.)\0A\0A\00"
define void @print_help(i8* %0) {
%2 = tail call i32 @printf(i8* getelementptr inbounds ([1288 x i8], [1288 x i8]* @.str, i64 0, i64 0), i8* %0)
ret void
}