#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(
      "gf256_table_gen [-cCbBdhoaApP] [-l min] [-u max]\n"
      "                [-f formatstring] [-o file] -r reducer value {values} \n"
      "\n"
      " -c/-C turn C-header on/off (default: on)\n"
      " -b/-B turn braces on/off (defaul: on)\n"
      " -d/-h/-8 print values in decimal/hexadecimal/octal (default: "
      "hexadecimal)\n"
      " -a/-a  turn alignment on/off (default: on)\n"
      " -p/-P  turn base prefix on/off (default: on)\n"
      " -r reducer reducer is the reduction polynomial represented as numeric "
      "value\n"
      " -l min starting value for multiplication table (default: 0)\n"
      " -u max upper limit value for multiplication table (default: 255)\n"
      " -f formatstring string for formating the output of a singel "
      "multiplicxation\n"
      " -o file outputfile\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 = [669 x i8] c"gf256_table_gen [-cCbBdhoaApP] [-l min] [-u max]\0A [-f formatstring] [-o file] -r reducer value {values} \0A\0A -c/-C turn C-header on/off (default: on)\0A -b/-B turn braces on/off (defaul: on)\0A -d/-h/-8 print values in decimal/hexadecimal/octal (default: hexadecimal)\0A -a/-a turn alignment on/off (default: on)\0A -p/-P turn base prefix on/off (default: on)\0A -r reducer reducer is the reduction polynomial represented as numeric value\0A -l min starting value for multiplication table (default: 0)\0A -u max upper limit value for multiplication table (default: 255)\0A -f formatstring string for formating the output of a singel multiplicxation\0A -o file outputfile\0A\00"
define void @print_help() {
%1 = call i32 @puts(i8* getelementptr inbounds ([669 x i8], [669 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str = [669 x i8] c"gf256_table_gen [-cCbBdhoaApP] [-l min] [-u max]\0A [-f formatstring] [-o file] -r reducer value {values} \0A\0A -c/-C turn C-header on/off (default: on)\0A -b/-B turn braces on/off (defaul: on)\0A -d/-h/-8 print values in decimal/hexadecimal/octal (default: hexadecimal)\0A -a/-a turn alignment on/off (default: on)\0A -p/-P turn base prefix on/off (default: on)\0A -r reducer reducer is the reduction polynomial represented as numeric value\0A -l min starting value for multiplication table (default: 0)\0A -u max upper limit value for multiplication table (default: 255)\0A -f formatstring string for formating the output of a singel multiplicxation\0A -o file outputfile\0A\00"
define void @print_help() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([669 x i8], [669 x i8]* @.str, i64 0, i64 0))
ret void
}