#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 infousage(void) {
  printf(
      "\n"
      "Info file contents:\n"
      "Consists of text records of one of the following formats:\n"
      "* comment line\n"
      "FILE filename [baseaddr]\n"
      "OPTION option (like command line, without leading -)\n"
      "PREPEND [addr[-addr]] text to be prepended to the output\n"
      "PREPCOMM [addr[-addr]] comment text to be prepended to the output\n"
      "DATA from[-to]\n"
      "BIN[ARY] from[-to] (forced binary data)\n"
      "DEC[IMAL] from[-to] (forced decimal data)\n"
      "HEX[ADECIMAL] from[-to] (forced hex data)\n"
      "CHAR from[-to] (forced character data, only if no WORD area)\n"
      "WORD from[-to] (forced word data)\n"
      "CVEC[TOR] from[-to] (forced code vectors)\n"
      "DVEC[TOR] from[-to] (forced data vectors)\n"
      "CODE from[-to]\n"
      "CONST from[-to]\n"
      "UNUSED from[-to]\n"
      "RMB from-to\n"
      "LABEL addr name\n"
      "USED[LABEL] addr  (forces a label to \"Used\")\n"
      "UNLABEL addr[-addr]\n"
      "COMMENT addr[-addr] embedded comment line\n"
      "UNCOMMENT addr[-addr]\n"
      "LCOMMENT addr[-addr] appended line comment\n"
      "PREPLCOMM[ENT] addr[-addr] prepended line comment\n"
      "UNLCOMMENT addr[-addr]\n"
      "INSERT addr[-addr] embedded line\n"
      "INCLUDE filename\n"
      "SETDP [addr[-addr]] DP-content (without addr, last definition is used)\n"
      "REL[ATIVE] addr[-addr] bsaddr\n"
      "UNREL[ATIVE] addr[-addr]\n"
      "REMAP addr[-addr] offset\n"
      "PHASE addr[-addr] phase\n"
      "PATCH addr[-addr] data[...]\n"
      "PATCHW addr[-addr] data[...]\n"
      "END\n");
}


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

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

LLVM IR (-O0):
@.str = [1221 x i8] c"\0AInfo file contents:\0AConsists of text records of one of the following formats:\0A* comment line\0AFILE filename [baseaddr]\0AOPTION option (like command line, without leading -)\0APREPEND [addr[-addr]] text to be prepended to the output\0APREPCOMM [addr[-addr]] comment text to be prepended to the output\0ADATA from[-to]\0ABIN[ARY] from[-to] (forced binary data)\0ADEC[IMAL] from[-to] (forced decimal data)\0AHEX[ADECIMAL] from[-to] (forced hex data)\0ACHAR from[-to] (forced character data, only if no WORD area)\0AWORD from[-to] (forced word data)\0ACVEC[TOR] from[-to] (forced code vectors)\0ADVEC[TOR] from[-to] (forced data vectors)\0ACODE from[-to]\0ACONST from[-to]\0AUNUSED from[-to]\0ARMB from-to\0ALABEL addr name\0AUSED[LABEL] addr (forces a label to \22Used\22)\0AUNLABEL addr[-addr]\0ACOMMENT addr[-addr] embedded comment line\0AUNCOMMENT addr[-addr]\0ALCOMMENT addr[-addr] appended line comment\0APREPLCOMM[ENT] addr[-addr] prepended line comment\0AUNLCOMMENT addr[-addr]\0AINSERT addr[-addr] embedded line\0AINCLUDE filename\0ASETDP [addr[-addr]] DP-content (without addr, last definition is used)\0AREL[ATIVE] addr[-addr] bsaddr\0AUNREL[ATIVE] addr[-addr]\0AREMAP addr[-addr] offset\0APHASE addr[-addr] phase\0APATCH addr[-addr] data[...]\0APATCHW addr[-addr] data[...]\0AEND\0A\00"
define void @infousage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1221 x i8], [1221 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1220 x i8] c"\0AInfo file contents:\0AConsists of text records of one of the following formats:\0A* comment line\0AFILE filename [baseaddr]\0AOPTION option (like command line, without leading -)\0APREPEND [addr[-addr]] text to be prepended to the output\0APREPCOMM [addr[-addr]] comment text to be prepended to the output\0ADATA from[-to]\0ABIN[ARY] from[-to] (forced binary data)\0ADEC[IMAL] from[-to] (forced decimal data)\0AHEX[ADECIMAL] from[-to] (forced hex data)\0ACHAR from[-to] (forced character data, only if no WORD area)\0AWORD from[-to] (forced word data)\0ACVEC[TOR] from[-to] (forced code vectors)\0ADVEC[TOR] from[-to] (forced data vectors)\0ACODE from[-to]\0ACONST from[-to]\0AUNUSED from[-to]\0ARMB from-to\0ALABEL addr name\0AUSED[LABEL] addr (forces a label to \22Used\22)\0AUNLABEL addr[-addr]\0ACOMMENT addr[-addr] embedded comment line\0AUNCOMMENT addr[-addr]\0ALCOMMENT addr[-addr] appended line comment\0APREPLCOMM[ENT] addr[-addr] prepended line comment\0AUNLCOMMENT addr[-addr]\0AINSERT addr[-addr] embedded line\0AINCLUDE filename\0ASETDP [addr[-addr]] DP-content (without addr, last definition is used)\0AREL[ATIVE] addr[-addr] bsaddr\0AUNREL[ATIVE] addr[-addr]\0AREMAP addr[-addr] offset\0APHASE addr[-addr] phase\0APATCH addr[-addr] data[...]\0APATCHW addr[-addr] data[...]\0AEND\00"
define void @infousage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1220 x i8], [1220 x i8]* @str, i64 0, i64 0))
ret void
}