#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 printMainMenu() {
  printf("\n\n===================< PGM Image Processor "
         ">=====================\n===============< ICP Class 11-02, TEAM 01, "
         "2012 >==============\n===========< TEAM Members: Star, CK, Harvey, "
         "John >============\n\n");
  printf(
      "\n\n===============================MAIN "
      "MENU=================================\nAvailable options below:\n'r': "
      "READ, STORE and DISP:   Read P2 PGM Image, Store, & Dispaly Data\n'c': "
      "CREATE, STORE:          Create a New Image, & store (Manual "
      "Input)\n'w': WRITE IMAGE FILE:       Write (Output) the Stored Image, "
      "if any\n'v': CHAR-VIEW IMAGE:        Character-View the Stored Image\n");
  printf("'m': IDMARK IMAGE:           Create ID Marking to Image\n'e': IMAGE "
         "EFFECT ADDED:     Create and ADD Effect to Image\n'q': QUIT:         "
         "          Quit "
         "Porgram\n============================================================"
         "=============\n\nPlease enter your option character, followed by an "
         "<Enter> key:");
}


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

x86 assembly (clang, -O2):
<printMainMenu>:
push   %rax
lea    0x1001(%rip),%rdi
call   1030 <puts@plt>
lea    0x10b8(%rip),%rdi
call   1030 <puts@plt>
lea    0xec0(%rip),%rdi
pop    %rax
jmp    1040 <printf@plt>

LLVM IR (-O0):
@.str = [196 x i8] c"\0A\0A===================< PGM Image Processor >=====================\0A===============< ICP Class 11-02, TEAM 01, 2012 >==============\0A===========< TEAM Members: Star, CK, Harvey, John >============\0A\0A\00"
@.str.1 = [374 x i8] c"\0A\0A===============================MAIN MENU=================================\0AAvailable options below:\0A'r': READ, STORE and DISP: Read P2 PGM Image, Store, & Dispaly Data\0A'c': CREATE, STORE: Create a New Image, & store (Manual Input)\0A'w': WRITE IMAGE FILE: Write (Output) the Stored Image, if any\0A'v': CHAR-VIEW IMAGE: Character-View the Stored Image\0A\00"
@.str.2 = [297 x i8] c"'m': IDMARK IMAGE: Create ID Marking to Image\0A'e': IMAGE EFFECT ADDED: Create and ADD Effect to Image\0A'q': QUIT: Quit Porgram\0A=========================================================================\0A\0APlease enter your option character, followed by an <Enter> key:\00"
define void @printMainMenu() {
%1 = call i32 @printf(i8* getelementptr inbounds ([196 x i8], [196 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([374 x i8], [374 x i8]* @.str.1, i64 0, i64 0))
%3 = call i32 @printf(i8* getelementptr inbounds ([297 x i8], [297 x i8]* @.str.2, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@.str.2 = [297 x i8] c"'m': IDMARK IMAGE: Create ID Marking to Image\0A'e': IMAGE EFFECT ADDED: Create and ADD Effect to Image\0A'q': QUIT: Quit Porgram\0A=========================================================================\0A\0APlease enter your option character, followed by an <Enter> key:\00"
@str = [195 x i8] c"\0A\0A===================< PGM Image Processor >=====================\0A===============< ICP Class 11-02, TEAM 01, 2012 >==============\0A===========< TEAM Members: Star, CK, Harvey, John >============\0A\00"
@str.3 = [373 x i8] c"\0A\0A===============================MAIN MENU=================================\0AAvailable options below:\0A'r': READ, STORE and DISP: Read P2 PGM Image, Store, & Dispaly Data\0A'c': CREATE, STORE: Create a New Image, & store (Manual Input)\0A'w': WRITE IMAGE FILE: Write (Output) the Stored Image, if any\0A'v': CHAR-VIEW IMAGE: Character-View the Stored Image\00"
define void @printMainMenu() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([195 x i8], [195 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([373 x i8], [373 x i8]* @str.3, i64 0, i64 0))
%3 = tail call i32 @printf(i8* dereferenceable(1) getelementptr inbounds ([297 x i8], [297 x i8]* @.str.2, i64 0, i64 0))
ret void
}