#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 usage(void) {
  printf(
      "Usage:\n"
      "  metapixel --version\n"
      "      print out version number\n"
      "  metapixel --help\n"
      "      print this help text\n"
      "  metapixel [option ...] --prepare <inimage> <outimage> <tablefile>\n"
      "      calculate and output tables for <file>\n"
      "  metapixel [option ...] --metapixel <in> <out>\n"
      "      transform <in> to <out>\n"
      "  metapixel [option ...] --batch <batchfile>\n"
      "      perform all the tasks in <batchfile>\n"
      "Options:\n"
      "  -l, --library=DIR            add the library in DIR\n"
      "  -x, --antimosaic=PIC         use PIC as an antimosaic\n"
      "  -w, --width=WIDTH            set width for small images\n"
      "  -h, --height=HEIGHT          set height for small images\n"
      "  -y, --y-weight=WEIGHT        assign relative weight for the "
      "Y-channel\n"
      "  -i, --i-weight=WEIGHT        assign relative weight for the "
      "I-channel\n"
      "  -q, --q-weight=WEIGHT        assign relative weight for the "
      "Q-channel\n"
      "  -s  --scale=SCALE            scale input image by specified factor\n"
      "  -m, --metric=METRIC          choose metric (subpixel or wavelet)\n"
      "  -e, --search=SEARCH          choose search method (local or global)\n"
      "  -c, --collage                collage mode\n"
      "  -d, --distance=DIST          minimum distance between two instances "
      "of\n"
      "                               the same constituent image\n"
      "  -a, --cheat=PERC             cheat with specified percentage\n"
      "  -f, --forbid-reconstruction=DIST\n"
      "                               forbid placing antimosaic images on "
      "their\n"
      "                               original locations or locations around "
      "it\n"
      "  --out=FILE                   write protocol to file\n"
      "  --in=FILE                    read protocol from file and use it\n"
      "\n"
      "Report bugs and suggestions to schani@complang.tuwien.ac.at\n");
}


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

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

LLVM IR (-O0):
@.str = [1644 x i8] c"Usage:\0A metapixel --version\0A print out version number\0A metapixel --help\0A print this help text\0A metapixel [option ...] --prepare <inimage> <outimage> <tablefile>\0A calculate and output tables for <file>\0A metapixel [option ...] --metapixel <in> <out>\0A transform <in> to <out>\0A metapixel [option ...] --batch <batchfile>\0A perform all the tasks in <batchfile>\0AOptions:\0A -l, --library=DIR add the library in DIR\0A -x, --antimosaic=PIC use PIC as an antimosaic\0A -w, --width=WIDTH set width for small images\0A -h, --height=HEIGHT set height for small images\0A -y, --y-weight=WEIGHT assign relative weight for the Y-channel\0A -i, --i-weight=WEIGHT assign relative weight for the I-channel\0A -q, --q-weight=WEIGHT assign relative weight for the Q-channel\0A -s --scale=SCALE scale input image by specified factor\0A -m, --metric=METRIC choose metric (subpixel or wavelet)\0A -e, --search=SEARCH choose search method (local or global)\0A -c, --collage collage mode\0A -d, --distance=DIST minimum distance between two instances of\0A the same constituent image\0A -a, --cheat=PERC cheat with specified percentage\0A -f, --forbid-reconstruction=DIST\0A forbid placing antimosaic images on their\0A original locations or locations around it\0A --out=FILE write protocol to file\0A --in=FILE read protocol from file and use it\0A\0AReport bugs and suggestions to schani@complang.tuwien.ac.at\0A\00"
define void @usage() {
%1 = call i32 @printf(i8* getelementptr inbounds ([1644 x i8], [1644 x i8]* @.str, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [1643 x i8] c"Usage:\0A metapixel --version\0A print out version number\0A metapixel --help\0A print this help text\0A metapixel [option ...] --prepare <inimage> <outimage> <tablefile>\0A calculate and output tables for <file>\0A metapixel [option ...] --metapixel <in> <out>\0A transform <in> to <out>\0A metapixel [option ...] --batch <batchfile>\0A perform all the tasks in <batchfile>\0AOptions:\0A -l, --library=DIR add the library in DIR\0A -x, --antimosaic=PIC use PIC as an antimosaic\0A -w, --width=WIDTH set width for small images\0A -h, --height=HEIGHT set height for small images\0A -y, --y-weight=WEIGHT assign relative weight for the Y-channel\0A -i, --i-weight=WEIGHT assign relative weight for the I-channel\0A -q, --q-weight=WEIGHT assign relative weight for the Q-channel\0A -s --scale=SCALE scale input image by specified factor\0A -m, --metric=METRIC choose metric (subpixel or wavelet)\0A -e, --search=SEARCH choose search method (local or global)\0A -c, --collage collage mode\0A -d, --distance=DIST minimum distance between two instances of\0A the same constituent image\0A -a, --cheat=PERC cheat with specified percentage\0A -f, --forbid-reconstruction=DIST\0A forbid placing antimosaic images on their\0A original locations or locations around it\0A --out=FILE write protocol to file\0A --in=FILE read protocol from file and use it\0A\0AReport bugs and suggestions to schani@complang.tuwien.ac.at\00"
define void @usage() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([1643 x i8], [1643 x i8]* @str, i64 0, i64 0))
ret void
}