#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*/ puts(char *);
void print_help(void) {
  puts("usage: alidval [options] <string(s)>\n"
       "\n"
       "    <string(s)> is one or more strings, for each of which an "
       "\"alphabetical\n"
       "    id value\" will be produced independently.\n"
       "        The algorithm is limited in precision to the first 11 "
       "characters\n"
       "    of a string. It is case-insensitive. Further, it only recognizes "
       "English\n"
       "    alphabet ASCII characters as being letters. By default, all other "
       "char-\n"
       "    acters are treated as being identical, and jointly given priority "
       "before\n"
       "    'A'.\n"
       "        The output id value ranges from 0.0 to 1.0 by default.\n"
       "\n"
       "    Options:\n"
       "        -A  Make strings that begin with an alphabetical character "
       "fill up\n"
       "            the whole output id range; other leading characters are "
       "made\n"
       "            equal to 'A' or 'Z', depending on which priority they "
       "would\n"
       "            ordinarily take.\n"
       "        -r  Map the output id value onto a specified range. The range "
       "is\n"
       "            specified in the format: <number>,<number>\n"
       "                The numbers are the lower and upper bound, "
       "respectively; if\n"
       "            omitted, the default for the number is used. If the lower "
       "bound\n"
       "            exceeds the upper, the numbering order is reversed.\n");
}


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

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

LLVM IR (-O0):
@.str = [1142 x i8] c"usage: alidval [options] <string(s)>\0A\0A <string(s)> is one or more strings, for each of which an \22alphabetical\0A id value\22 will be produced independently.\0A The algorithm is limited in precision to the first 11 characters\0A of a string. It is case-insensitive. Further, it only recognizes English\0A alphabet ASCII characters as being letters. By default, all other char-\0A acters are treated as being identical, and jointly given priority before\0A 'A'.\0A The output id value ranges from 0.0 to 1.0 by default.\0A\0A Options:\0A -A Make strings that begin with an alphabetical character fill up\0A the whole output id range; other leading characters are made\0A equal to 'A' or 'Z', depending on which priority they would\0A ordinarily take.\0A -r Map the output id value onto a specified range. The range is\0A specified in the format: <number>,<number>\0A The numbers are the lower and upper bound, respectively; if\0A omitted, the default for the number is used. If the lower bound\0A exceeds the upper, the numbering order is reversed.\0A\00"
define void @print_help() {
%1 = call i32 @puts(i8* getelementptr inbounds ([1142 x i8], [1142 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [1142 x i8] c"usage: alidval [options] <string(s)>\0A\0A <string(s)> is one or more strings, for each of which an \22alphabetical\0A id value\22 will be produced independently.\0A The algorithm is limited in precision to the first 11 characters\0A of a string. It is case-insensitive. Further, it only recognizes English\0A alphabet ASCII characters as being letters. By default, all other char-\0A acters are treated as being identical, and jointly given priority before\0A 'A'.\0A The output id value ranges from 0.0 to 1.0 by default.\0A\0A Options:\0A -A Make strings that begin with an alphabetical character fill up\0A the whole output id range; other leading characters are made\0A equal to 'A' or 'Z', depending on which priority they would\0A ordinarily take.\0A -r Map the output id value onto a specified range. The range is\0A specified in the format: <number>,<number>\0A The numbers are the lower and upper bound, respectively; if\0A omitted, the default for the number is used. If the lower bound\0A exceeds the upper, the numbering order is reversed.\0A\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1142 x i8], [1142 x i8]* @.str, i64 0, i64 0))
ret void
}