#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 const *, ...);
void printusage(char **argv) {
  {
    printf((char const *__restrict)"Usage: \n");
    printf((char const *__restrict)"  %s modelfile [options] \n", *(argv + 0));
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Model file formats supported:\n");
    printf((char const *__restrict)"  filename.dat -- The model files "
                                   "originated with this package.\n");
    printf((char const *__restrict)"  filaname.ac  -- AC3D model files.\n");
    printf((char const *__restrict)"  filename.nff -- The NFF scene format "
                                   "used by Eric Haines\' SPD.\n");
    printf((char const *__restrict)"\n");
    printf((char const
                *__restrict)"Valid options:  (** denotes default behaviour)\n");
    printf((char const
                *__restrict)"----------------------------------------------\n");
    printf((char const *__restrict)"Message Options:\n");
    printf((char const *__restrict)" +V verbose messages on \n");
    printf((char const *__restrict)" -V verbose messages off **\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Speed Tuning Options:\n");
    printf((
        char const
            *__restrict)" -numthreads xxx   (** default is auto-determined)\n");
    printf((char const *__restrict)" -nobounding\n");
    printf(
        (char const
             *__restrict)" -boundthresh xxx  (** default threshold is 16)\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Shading Options:\n");
    printf((char const *__restrict)"  -fullshade    best quality rendering "
                                   "(and slowest) **\n");
    printf((char const *__restrict)"  -mediumshade  good quality rendering, "
                                   "but no shadows\n");
    printf((char const *__restrict)"  -lowshade     low quality rendering, "
                                   "preview (and fast)\n");
    printf((char const *__restrict)"  -lowestshade  worst quality rendering, "
                                   "preview (and fastest)\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Lighting Options:\n");
    printf((char const *__restrict)"  -rescale_lights xxx rescale light "
                                   "intensity values by\n");
    printf((char const *__restrict)"                      specified factor "
                                   "(performed before other\n");
    printf((char const *__restrict)"                      lighting overrides "
                                   "take effect)\n");
    printf((char const *__restrict)"  -auto_skylight xxx  force use of ambient "
                                   "occlusion lighting,\n");
    printf((char const *__restrict)"                      auto-rescaling "
                                   "direct light sources to  \n");
    printf((char const *__restrict)"                      compensate for "
                                   "ambient occlusion factor.\n");
    printf((char const *__restrict)"                      (use value 0.7 as a "
                                   "good starting point)\n");
    printf((char const *__restrict)"  -add_skylight xxx   force use of ambient "
                                   "occlusion lighting,\n");
    printf((char const *__restrict)"                      manually-rescaling "
                                   "direct light sources to\n");
    printf((char const *__restrict)"                      compensate for "
                                   "ambient occlusion factor.\n");
    printf((char const *__restrict)"  -skylight_samples xxx number of sample "
                                   "rays to shoot.\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Specular Highlight Shading Options:\n");
    printf((char const
                *__restrict)"  -shade_phong       Phong specular highlights\n");
    printf((char const *__restrict)"  -shade_blinn       Blinn\'s specular "
                                   "highlights**\n");
    printf((char const *__restrict)"  -shade_blinn_fast  fast approximation to "
                                   "Blinn\'s highlights\n");
    printf(
        (char const
             *__restrict)"  -shade_nullphong   disable specular highlights\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Transparency Shading Options:\n");
    printf((char const
                *__restrict)"  -trans_orig        Original implementation**\n");
    printf((char const *__restrict)"  -trans_vmd         Opacity post-multiply "
                                   "used by VMD\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Fog Shading Options:\n");
    printf(
        (char const
             *__restrict)"  -fog_radial        Radial fog implementation**\n");
    printf((char const *__restrict)"  -fog_vmd           Planar OpenGL-like "
                                   "fog used by VMD\n");
    printf((char const *__restrict)"\n");
    printf(
        (char const *__restrict)"Surface Normal/Winding Order Fixup Mode:\n");
    printf((char const *__restrict)"  -normalfixup [off | flip | guess]  "
                                   "(**off is default)\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Antialiasing Options:\n");
    printf((char const *__restrict)"  -aasamples xxx  (maximum supersamples "
                                   "taken per pixel)\n");
    printf((char const *__restrict)"                  (** default is 0, or "
                                   "scene file determined)\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Output Options:\n");
    printf((char const *__restrict)"  -res Xres Yres  override scene-defined "
                                   "output image size\n");
    printf((char const *__restrict)"  -o outfile.tga  set output file name\n");
    printf((char const *__restrict)"  -clamp          clamp pixel values to [0 "
                                   "to 1) (** default)\n");
    printf((char const *__restrict)"  -normalize      normalize pixel values "
                                   "to [0 to 1)\n");
    printf((
        char const
            *__restrict)"  -gamma val      normalize apply gamma correction\n");
    printf((char const *__restrict)"  -format BMP     24-bit Windows BMP  "
                                   "(uncompressed)\n");
    printf((char const *__restrict)"  -format JPEG    XXX Not compiled into "
                                   "this binary XXX\n");
    printf((char const *__restrict)"  -format PNG     XXX Not compiled into "
                                   "this binary XXX\n");
    printf((char const *__restrict)"  -format PPM     24-bit PPM          "
                                   "(uncompressed)\n");
    printf((char const *__restrict)"  -format PPM48   48-bit PPM          "
                                   "(uncompressed)\n");
    printf((char const *__restrict)"  -format PSD48   48-bit PSD          "
                                   "(uncompressed)\n");
    printf((char const *__restrict)"  -format RGB     24-bit SGI RGB      "
                                   "(uncompressed)\n");
    printf((char const *__restrict)"  -format TARGA   24-bit Targa        "
                                   "(uncompressed) **\n");
    printf((char const *__restrict)"\n");
    printf((char const *__restrict)"Animation Related Options:\n");
    printf((char const *__restrict)" -camfile filename.cam  Animate using file "
                                   "of camera positions.\n");
    printf((char const *__restrict)" -nosave                Disable writing of "
                                   "output frames to disk\n");
    printf((char const *__restrict)"                        (only used for "
                                   "doing real-time rendering)\n");
    printf((char const *__restrict)"\n");
    return;
  }
}


x86 assembly (clang, -O0):
<printusage>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %rdi,-0x8(%rbp)
lea    0xedd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
mov    -0x8(%rbp),%rax
mov    (%rax),%rsi
lea    0xed1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1305(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xed0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xee1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf14(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf2b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12bf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf51(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf73(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf95(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf99(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfa5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x126b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfa6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfaf(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfd5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfd5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1225(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14d9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xfdc(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1007(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1031(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x105e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11d1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1082(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1087(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10b2(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10e4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x110d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x113f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1171(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11a3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x11d5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1207(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1139(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x122d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x111b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x124a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1261(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1283(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12a9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12da(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x10c7(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x12f0(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1301(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1323(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x108f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x133f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1347(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x136b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1057(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1388(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13a4(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x102d(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13c1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13ca(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x13f6(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xff5(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1419(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x141c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x144a(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1464(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1495(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14bd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x14e3(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x150b(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1536(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1561(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1589(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15b1(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x15d9(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1601(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xf23(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x161e(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x162c(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x165f(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0x1693(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
lea    0xedd(%rip),%rdi
mov    $0x0,%al
call   1030 <printf@plt>
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<printusage>:
push   %rbx
mov    %rdi,%rbx
lea    0xee0(%rip),%rdi
call   1040 <puts@plt>
mov    (%rbx),%rsi
lea    0xeb6(%rip),%rdi
xor    %eax,%eax
call   1050 <printf@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xec1(%rip),%rdi
call   1040 <puts@plt>
lea    0xed3(%rip),%rdi
call   1040 <puts@plt>
lea    0xf07(%rip),%rdi
call   1040 <puts@plt>
lea    0xf1f(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xf4a(%rip),%rdi
call   1040 <puts@plt>
lea    0xf6d(%rip),%rdi
call   1040 <puts@plt>
lea    0xf90(%rip),%rdi
call   1040 <puts@plt>
lea    0xf95(%rip),%rdi
call   1040 <puts@plt>
lea    0xfa2(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0xfa8(%rip),%rdi
call   1040 <puts@plt>
lea    0xfb2(%rip),%rdi
call   1040 <puts@plt>
lea    0xfd9(%rip),%rdi
call   1040 <puts@plt>
lea    0xfda(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x14cc(%rip),%rdi
call   1040 <puts@plt>
lea    0xfe8(%rip),%rdi
call   1040 <puts@plt>
lea    0x1014(%rip),%rdi
call   1040 <puts@plt>
lea    0x103f(%rip),%rdi
call   1040 <puts@plt>
lea    0x106d(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1096(%rip),%rdi
call   1040 <puts@plt>
lea    0x109c(%rip),%rdi
call   1040 <puts@plt>
lea    0x10c8(%rip),%rdi
call   1040 <puts@plt>
lea    0x10fb(%rip),%rdi
call   1040 <puts@plt>
lea    0x1125(%rip),%rdi
call   1040 <puts@plt>
lea    0x1158(%rip),%rdi
call   1040 <puts@plt>
lea    0x124a(%rip),%rbx
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x117c(%rip),%rdi
call   1040 <puts@plt>
lea    0x11af(%rip),%rdi
call   1040 <puts@plt>
lea    0x11e2(%rip),%rdi
call   1040 <puts@plt>
mov    %rbx,%rdi
call   1040 <puts@plt>
lea    0x124e(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1270(%rip),%rdi
call   1040 <puts@plt>
lea    0x1288(%rip),%rdi
call   1040 <puts@plt>
lea    0x12ab(%rip),%rdi
call   1040 <puts@plt>
lea    0x12d2(%rip),%rdi
call   1040 <puts@plt>
lea    0x1304(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x131f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1331(%rip),%rdi
call   1040 <puts@plt>
lea    0x1354(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1375(%rip),%rdi
call   1040 <puts@plt>
lea    0x137e(%rip),%rdi
call   1040 <puts@plt>
lea    0x13a3(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x13c5(%rip),%rdi
call   1040 <puts@plt>
lea    0x13e2(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1404(%rip),%rdi
call   1040 <puts@plt>
lea    0x140e(%rip),%rdi
call   1040 <puts@plt>
lea    0x143b(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x1463(%rip),%rdi
call   1040 <puts@plt>
lea    0x1467(%rip),%rdi
call   1040 <puts@plt>
lea    0x1496(%rip),%rdi
call   1040 <puts@plt>
lea    0x14b1(%rip),%rdi
call   1040 <puts@plt>
lea    0x14e3(%rip),%rdi
call   1040 <puts@plt>
lea    0x150c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1533(%rip),%rdi
call   1040 <puts@plt>
lea    0x155c(%rip),%rdi
call   1040 <puts@plt>
lea    0x1588(%rip),%rdi
call   1040 <puts@plt>
lea    0x15b4(%rip),%rdi
call   1040 <puts@plt>
lea    0x15dd(%rip),%rdi
call   1040 <puts@plt>
lea    0x1606(%rip),%rdi
call   1040 <puts@plt>
lea    0x162f(%rip),%rdi
call   1040 <puts@plt>
lea    0x1658(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
call   1030 <putchar@plt>
lea    0x167a(%rip),%rdi
call   1040 <puts@plt>
lea    0x1689(%rip),%rdi
call   1040 <puts@plt>
lea    0x16bd(%rip),%rdi
call   1040 <puts@plt>
lea    0x16f2(%rip),%rdi
call   1040 <puts@plt>
mov    $0xa,%edi
pop    %rbx
jmp    1030 <putchar@plt>

LLVM IR (-O0):
@.str = [9 x i8] c"Usage: \0A\00"
@.str.1 = [27 x i8] c" %s modelfile [options] \0A\00"
@.str.2 = [2 x i8] c"\0A\00"
@.str.3 = [31 x i8] c"Model file formats supported:\0A\00"
@.str.4 = [65 x i8] c" filename.dat -- The model files originated with this package.\0A\00"
@.str.5 = [37 x i8] c" filaname.ac -- AC3D model files.\0A\00"
@.str.6 = [66 x i8] c" filename.nff -- The NFF scene format used by Eric Haines' SPD.\0A\00"
@.str.7 = [48 x i8] c"Valid options: (** denotes default behaviour)\0A\00"
@.str.8 = [48 x i8] c"----------------------------------------------\0A\00"
@.str.9 = [18 x i8] c"Message Options:\0A\00"
@.str.10 = [26 x i8] c" +V verbose messages on \0A\00"
@.str.11 = [29 x i8] c" -V verbose messages off **\0A\00"
@.str.12 = [23 x i8] c"Speed Tuning Options:\0A\00"
@.str.13 = [52 x i8] c" -numthreads xxx (** default is auto-determined)\0A\00"
@.str.14 = [14 x i8] c" -nobounding\0A\00"
@.str.15 = [49 x i8] c" -boundthresh xxx (** default threshold is 16)\0A\00"
@.str.16 = [18 x i8] c"Shading Options:\0A\00"
@.str.17 = [57 x i8] c" -fullshade best quality rendering (and slowest) **\0A\00"
@.str.18 = [56 x i8] c" -mediumshade good quality rendering, but no shadows\0A\00"
@.str.19 = [59 x i8] c" -lowshade low quality rendering, preview (and fast)\0A\00"
@.str.20 = [64 x i8] c" -lowestshade worst quality rendering, preview (and fastest)\0A\00"
@.str.21 = [19 x i8] c"Lighting Options:\0A\00"
@.str.22 = [57 x i8] c" -rescale_lights xxx rescale light intensity values by\0A\00"
@.str.23 = [64 x i8] c" specified factor (performed before other\0A\00"
@.str.24 = [55 x i8] c" lighting overrides take effect)\0A\00"
@.str.25 = [64 x i8] c" -auto_skylight xxx force use of ambient occlusion lighting,\0A\00"
@.str.26 = [64 x i8] c" auto-rescaling direct light sources to \0A\00"
@.str.27 = [64 x i8] c" compensate for ambient occlusion factor.\0A\00"
@.str.28 = [64 x i8] c" (use value 0.7 as a good starting point)\0A\00"
@.str.29 = [64 x i8] c" -add_skylight xxx force use of ambient occlusion lighting,\0A\00"
@.str.30 = [66 x i8] c" manually-rescaling direct light sources to\0A\00"
@.str.31 = [57 x i8] c" -skylight_samples xxx number of sample rays to shoot.\0A\00"
@.str.32 = [37 x i8] c"Specular Highlight Shading Options:\0A\00"
@.str.33 = [48 x i8] c" -shade_phong Phong specular highlights\0A\00"
@.str.34 = [52 x i8] c" -shade_blinn Blinn's specular highlights**\0A\00"
@.str.35 = [63 x i8] c" -shade_blinn_fast fast approximation to Blinn's highlights\0A\00"
@.str.36 = [50 x i8] c" -shade_nullphong disable specular highlights\0A\00"
@.str.37 = [31 x i8] c"Transparency Shading Options:\0A\00"
@.str.38 = [48 x i8] c" -trans_orig Original implementation**\0A\00"
@.str.39 = [56 x i8] c" -trans_vmd Opacity post-multiply used by VMD\0A\00"
@.str.40 = [22 x i8] c"Fog Shading Options:\0A\00"
@.str.41 = [50 x i8] c" -fog_radial Radial fog implementation**\0A\00"
@.str.42 = [57 x i8] c" -fog_vmd Planar OpenGL-like fog used by VMD\0A\00"
@.str.43 = [42 x i8] c"Surface Normal/Winding Order Fixup Mode:\0A\00"
@.str.44 = [57 x i8] c" -normalfixup [off | flip | guess] (**off is default)\0A\00"
@.str.45 = [23 x i8] c"Antialiasing Options:\0A\00"
@.str.46 = [58 x i8] c" -aasamples xxx (maximum supersamples taken per pixel)\0A\00"
@.str.47 = [63 x i8] c" (** default is 0, or scene file determined)\0A\00"
@.str.48 = [17 x i8] c"Output Options:\0A\00"
@.str.49 = [60 x i8] c" -res Xres Yres override scene-defined output image size\0A\00"
@.str.50 = [40 x i8] c" -o outfile.tga set output file name\0A\00"
@.str.51 = [63 x i8] c" -clamp clamp pixel values to [0 to 1) (** default)\0A\00"
@.str.52 = [54 x i8] c" -normalize normalize pixel values to [0 to 1)\0A\00"
@.str.53 = [52 x i8] c" -gamma val normalize apply gamma correction\0A\00"
@.str.54 = [54 x i8] c" -format BMP 24-bit Windows BMP (uncompressed)\0A\00"
@.str.55 = [57 x i8] c" -format JPEG XXX Not compiled into this binary XXX\0A\00"
@.str.56 = [57 x i8] c" -format PNG XXX Not compiled into this binary XXX\0A\00"
@.str.57 = [54 x i8] c" -format PPM 24-bit PPM (uncompressed)\0A\00"
@.str.58 = [54 x i8] c" -format PPM48 48-bit PPM (uncompressed)\0A\00"
@.str.59 = [54 x i8] c" -format PSD48 48-bit PSD (uncompressed)\0A\00"
@.str.60 = [54 x i8] c" -format RGB 24-bit SGI RGB (uncompressed)\0A\00"
@.str.61 = [57 x i8] c" -format TARGA 24-bit Targa (uncompressed) **\0A\00"
@.str.62 = [28 x i8] c"Animation Related Options:\0A\00"
@.str.63 = [65 x i8] c" -camfile filename.cam Animate using file of camera positions.\0A\00"
@.str.64 = [66 x i8] c" -nosave Disable writing of output frames to disk\0A\00"
@.str.65 = [67 x i8] c" (only used for doing real-time rendering)\0A\00"
define void @printusage(i8** %0) {
%2 = alloca i8**
store i8** %0, i8*** %2
%3 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str, i64 0, i64 0))
%4 = load i8**, i8*** %2
%5 = getelementptr inbounds i8*, i8** %4, i64 0
%6 = load i8*, i8** %5
%7 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0), i8* %6)
%8 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.3, i64 0, i64 0))
%10 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.4, i64 0, i64 0))
%11 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.5, i64 0, i64 0))
%12 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.6, i64 0, i64 0))
%13 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%14 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.7, i64 0, i64 0))
%15 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.8, i64 0, i64 0))
%16 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.9, i64 0, i64 0))
%17 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.10, i64 0, i64 0))
%18 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.11, i64 0, i64 0))
%19 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%20 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.12, i64 0, i64 0))
%21 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.13, i64 0, i64 0))
%22 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.14, i64 0, i64 0))
%23 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([49 x i8], [49 x i8]* @.str.15, i64 0, i64 0))
%24 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%25 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.16, i64 0, i64 0))
%26 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.17, i64 0, i64 0))
%27 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.18, i64 0, i64 0))
%28 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([59 x i8], [59 x i8]* @.str.19, i64 0, i64 0))
%29 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.20, i64 0, i64 0))
%30 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%31 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.21, i64 0, i64 0))
%32 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.22, i64 0, i64 0))
%33 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.23, i64 0, i64 0))
%34 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([55 x i8], [55 x i8]* @.str.24, i64 0, i64 0))
%35 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.25, i64 0, i64 0))
%36 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.26, i64 0, i64 0))
%37 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.27, i64 0, i64 0))
%38 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.28, i64 0, i64 0))
%39 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.29, i64 0, i64 0))
%40 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.30, i64 0, i64 0))
%41 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([64 x i8], [64 x i8]* @.str.27, i64 0, i64 0))
%42 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.31, i64 0, i64 0))
%43 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%44 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([37 x i8], [37 x i8]* @.str.32, i64 0, i64 0))
%45 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.33, i64 0, i64 0))
%46 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.34, i64 0, i64 0))
%47 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.35, i64 0, i64 0))
%48 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.36, i64 0, i64 0))
%49 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%50 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.37, i64 0, i64 0))
%51 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([48 x i8], [48 x i8]* @.str.38, i64 0, i64 0))
%52 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([56 x i8], [56 x i8]* @.str.39, i64 0, i64 0))
%53 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%54 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.40, i64 0, i64 0))
%55 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([50 x i8], [50 x i8]* @.str.41, i64 0, i64 0))
%56 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.42, i64 0, i64 0))
%57 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%58 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([42 x i8], [42 x i8]* @.str.43, i64 0, i64 0))
%59 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.44, i64 0, i64 0))
%60 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%61 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([23 x i8], [23 x i8]* @.str.45, i64 0, i64 0))
%62 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([58 x i8], [58 x i8]* @.str.46, i64 0, i64 0))
%63 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.47, i64 0, i64 0))
%64 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%65 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.48, i64 0, i64 0))
%66 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @.str.49, i64 0, i64 0))
%67 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([40 x i8], [40 x i8]* @.str.50, i64 0, i64 0))
%68 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([63 x i8], [63 x i8]* @.str.51, i64 0, i64 0))
%69 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.52, i64 0, i64 0))
%70 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([52 x i8], [52 x i8]* @.str.53, i64 0, i64 0))
%71 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.54, i64 0, i64 0))
%72 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.55, i64 0, i64 0))
%73 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.56, i64 0, i64 0))
%74 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.57, i64 0, i64 0))
%75 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.58, i64 0, i64 0))
%76 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.59, i64 0, i64 0))
%77 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([54 x i8], [54 x i8]* @.str.60, i64 0, i64 0))
%78 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([57 x i8], [57 x i8]* @.str.61, i64 0, i64 0))
%79 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
%80 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([28 x i8], [28 x i8]* @.str.62, i64 0, i64 0))
%81 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([65 x i8], [65 x i8]* @.str.63, i64 0, i64 0))
%82 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([66 x i8], [66 x i8]* @.str.64, i64 0, i64 0))
%83 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([67 x i8], [67 x i8]* @.str.65, i64 0, i64 0))
%84 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str.1 = [27 x i8] c" %s modelfile [options] \0A\00"
@str = [8 x i8] c"Usage: \00"
@str.66 = [30 x i8] c"Model file formats supported:\00"
@str.67 = [64 x i8] c" filename.dat -- The model files originated with this package.\00"
@str.68 = [36 x i8] c" filaname.ac -- AC3D model files.\00"
@str.69 = [65 x i8] c" filename.nff -- The NFF scene format used by Eric Haines' SPD.\00"
@str.70 = [47 x i8] c"Valid options: (** denotes default behaviour)\00"
@str.71 = [47 x i8] c"----------------------------------------------\00"
@str.72 = [17 x i8] c"Message Options:\00"
@str.73 = [25 x i8] c" +V verbose messages on \00"
@str.74 = [28 x i8] c" -V verbose messages off **\00"
@str.75 = [22 x i8] c"Speed Tuning Options:\00"
@str.76 = [51 x i8] c" -numthreads xxx (** default is auto-determined)\00"
@str.77 = [13 x i8] c" -nobounding\00"
@str.78 = [48 x i8] c" -boundthresh xxx (** default threshold is 16)\00"
@str.79 = [17 x i8] c"Shading Options:\00"
@str.80 = [56 x i8] c" -fullshade best quality rendering (and slowest) **\00"
@str.81 = [55 x i8] c" -mediumshade good quality rendering, but no shadows\00"
@str.82 = [58 x i8] c" -lowshade low quality rendering, preview (and fast)\00"
@str.83 = [63 x i8] c" -lowestshade worst quality rendering, preview (and fastest)\00"
@str.84 = [18 x i8] c"Lighting Options:\00"
@str.85 = [56 x i8] c" -rescale_lights xxx rescale light intensity values by\00"
@str.86 = [63 x i8] c" specified factor (performed before other\00"
@str.87 = [54 x i8] c" lighting overrides take effect)\00"
@str.88 = [63 x i8] c" -auto_skylight xxx force use of ambient occlusion lighting,\00"
@str.89 = [63 x i8] c" auto-rescaling direct light sources to \00"
@str.91 = [63 x i8] c" (use value 0.7 as a good starting point)\00"
@str.92 = [63 x i8] c" -add_skylight xxx force use of ambient occlusion lighting,\00"
@str.93 = [65 x i8] c" manually-rescaling direct light sources to\00"
@str.94 = [63 x i8] c" compensate for ambient occlusion factor.\00"
@str.95 = [56 x i8] c" -skylight_samples xxx number of sample rays to shoot.\00"
@str.96 = [36 x i8] c"Specular Highlight Shading Options:\00"
@str.97 = [47 x i8] c" -shade_phong Phong specular highlights\00"
@str.98 = [51 x i8] c" -shade_blinn Blinn's specular highlights**\00"
@str.99 = [62 x i8] c" -shade_blinn_fast fast approximation to Blinn's highlights\00"
@str.100 = [49 x i8] c" -shade_nullphong disable specular highlights\00"
@str.101 = [30 x i8] c"Transparency Shading Options:\00"
@str.102 = [47 x i8] c" -trans_orig Original implementation**\00"
@str.103 = [55 x i8] c" -trans_vmd Opacity post-multiply used by VMD\00"
@str.104 = [21 x i8] c"Fog Shading Options:\00"
@str.105 = [49 x i8] c" -fog_radial Radial fog implementation**\00"
@str.106 = [56 x i8] c" -fog_vmd Planar OpenGL-like fog used by VMD\00"
@str.107 = [41 x i8] c"Surface Normal/Winding Order Fixup Mode:\00"
@str.108 = [56 x i8] c" -normalfixup [off | flip | guess] (**off is default)\00"
@str.109 = [22 x i8] c"Antialiasing Options:\00"
@str.110 = [57 x i8] c" -aasamples xxx (maximum supersamples taken per pixel)\00"
@str.111 = [62 x i8] c" (** default is 0, or scene file determined)\00"
@str.112 = [16 x i8] c"Output Options:\00"
@str.113 = [59 x i8] c" -res Xres Yres override scene-defined output image size\00"
@str.114 = [39 x i8] c" -o outfile.tga set output file name\00"
@str.115 = [62 x i8] c" -clamp clamp pixel values to [0 to 1) (** default)\00"
@str.116 = [53 x i8] c" -normalize normalize pixel values to [0 to 1)\00"
@str.117 = [51 x i8] c" -gamma val normalize apply gamma correction\00"
@str.118 = [53 x i8] c" -format BMP 24-bit Windows BMP (uncompressed)\00"
@str.119 = [56 x i8] c" -format JPEG XXX Not compiled into this binary XXX\00"
@str.120 = [56 x i8] c" -format PNG XXX Not compiled into this binary XXX\00"
@str.121 = [53 x i8] c" -format PPM 24-bit PPM (uncompressed)\00"
@str.122 = [53 x i8] c" -format PPM48 48-bit PPM (uncompressed)\00"
@str.123 = [53 x i8] c" -format PSD48 48-bit PSD (uncompressed)\00"
@str.124 = [53 x i8] c" -format RGB 24-bit SGI RGB (uncompressed)\00"
@str.125 = [56 x i8] c" -format TARGA 24-bit Targa (uncompressed) **\00"
@str.126 = [27 x i8] c"Animation Related Options:\00"
@str.127 = [64 x i8] c" -camfile filename.cam Animate using file of camera positions.\00"
@str.128 = [65 x i8] c" -nosave Disable writing of output frames to disk\00"
@str.129 = [66 x i8] c" (only used for doing real-time rendering)\00"
define void @printusage(i8** nocapture %0) {
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([8 x i8], [8 x i8]* @str, i64 0, i64 0))
%3 = load i8*, i8** %0
%4 = tail call i32 (i8*, ...) @printf(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @.str.1, i64 0, i64 0), i8* %3)
%5 = tail call i32 @putchar(i32 10)
%6 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @str.66, i64 0, i64 0))
%7 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.67, i64 0, i64 0))
%8 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.68, i64 0, i64 0))
%9 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.69, i64 0, i64 0))
%10 = tail call i32 @putchar(i32 10)
%11 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.70, i64 0, i64 0))
%12 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.71, i64 0, i64 0))
%13 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.72, i64 0, i64 0))
%14 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([25 x i8], [25 x i8]* @str.73, i64 0, i64 0))
%15 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([28 x i8], [28 x i8]* @str.74, i64 0, i64 0))
%16 = tail call i32 @putchar(i32 10)
%17 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str.75, i64 0, i64 0))
%18 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.76, i64 0, i64 0))
%19 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([13 x i8], [13 x i8]* @str.77, i64 0, i64 0))
%20 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([48 x i8], [48 x i8]* @str.78, i64 0, i64 0))
%21 = tail call i32 @putchar(i32 10)
%22 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([17 x i8], [17 x i8]* @str.79, i64 0, i64 0))
%23 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.80, i64 0, i64 0))
%24 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.81, i64 0, i64 0))
%25 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([58 x i8], [58 x i8]* @str.82, i64 0, i64 0))
%26 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.83, i64 0, i64 0))
%27 = tail call i32 @putchar(i32 10)
%28 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([18 x i8], [18 x i8]* @str.84, i64 0, i64 0))
%29 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.85, i64 0, i64 0))
%30 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.86, i64 0, i64 0))
%31 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([54 x i8], [54 x i8]* @str.87, i64 0, i64 0))
%32 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.88, i64 0, i64 0))
%33 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.89, i64 0, i64 0))
%34 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.94, i64 0, i64 0))
%35 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.91, i64 0, i64 0))
%36 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.92, i64 0, i64 0))
%37 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.93, i64 0, i64 0))
%38 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([63 x i8], [63 x i8]* @str.94, i64 0, i64 0))
%39 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.95, i64 0, i64 0))
%40 = tail call i32 @putchar(i32 10)
%41 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([36 x i8], [36 x i8]* @str.96, i64 0, i64 0))
%42 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.97, i64 0, i64 0))
%43 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.98, i64 0, i64 0))
%44 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.99, i64 0, i64 0))
%45 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.100, i64 0, i64 0))
%46 = tail call i32 @putchar(i32 10)
%47 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([30 x i8], [30 x i8]* @str.101, i64 0, i64 0))
%48 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([47 x i8], [47 x i8]* @str.102, i64 0, i64 0))
%49 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([55 x i8], [55 x i8]* @str.103, i64 0, i64 0))
%50 = tail call i32 @putchar(i32 10)
%51 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([21 x i8], [21 x i8]* @str.104, i64 0, i64 0))
%52 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([49 x i8], [49 x i8]* @str.105, i64 0, i64 0))
%53 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.106, i64 0, i64 0))
%54 = tail call i32 @putchar(i32 10)
%55 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([41 x i8], [41 x i8]* @str.107, i64 0, i64 0))
%56 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.108, i64 0, i64 0))
%57 = tail call i32 @putchar(i32 10)
%58 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([22 x i8], [22 x i8]* @str.109, i64 0, i64 0))
%59 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([57 x i8], [57 x i8]* @str.110, i64 0, i64 0))
%60 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.111, i64 0, i64 0))
%61 = tail call i32 @putchar(i32 10)
%62 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([16 x i8], [16 x i8]* @str.112, i64 0, i64 0))
%63 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([59 x i8], [59 x i8]* @str.113, i64 0, i64 0))
%64 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([39 x i8], [39 x i8]* @str.114, i64 0, i64 0))
%65 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([62 x i8], [62 x i8]* @str.115, i64 0, i64 0))
%66 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.116, i64 0, i64 0))
%67 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([51 x i8], [51 x i8]* @str.117, i64 0, i64 0))
%68 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.118, i64 0, i64 0))
%69 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.119, i64 0, i64 0))
%70 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.120, i64 0, i64 0))
%71 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.121, i64 0, i64 0))
%72 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.122, i64 0, i64 0))
%73 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.123, i64 0, i64 0))
%74 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([53 x i8], [53 x i8]* @str.124, i64 0, i64 0))
%75 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([56 x i8], [56 x i8]* @str.125, i64 0, i64 0))
%76 = tail call i32 @putchar(i32 10)
%77 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([27 x i8], [27 x i8]* @str.126, i64 0, i64 0))
%78 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([64 x i8], [64 x i8]* @str.127, i64 0, i64 0))
%79 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([65 x i8], [65 x i8]* @str.128, i64 0, i64 0))
%80 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([66 x i8], [66 x i8]* @str.129, i64 0, i64 0))
%81 = tail call i32 @putchar(i32 10)
ret void
}