#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 print_header(void) {
  printf("Content-type: text/html; charset=utf-8\n\n");
  printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
         "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\"\n"
         "          \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"
         "<html xmlns=\"http://www.w3.org/1999/xhtml\""
         " xml:lang=\"en\">\n"
         "<head>\n"
         " <title>Product Catalog</title>\n"
         " <link rel=\"stylesheet\" type=\"text/css\""
         " href=\"style.css\"/>\n"
         " <meta name=\"Author\" content=\"Adam Hooper\"/>\n"
         "</head>\n"
         "<body>\n"
         " <h1>Potions Incorporated</h1>\n"
         " <p>Here is our product catalog. We are confident you will "
         "find something which satisfies.</p>\n"
         " <p>You may also return to <a href=\"index.html\">our front "
         "page</a>.</p>\n");
}


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

x86 assembly (clang, -O2):
<print_header>:
push   %rax
lea    0xee8(%rip),%rdi
call   1030 <puts@plt>
lea    0xf04(%rip),%rdi
pop    %rax
jmp    1030 <puts@plt>

LLVM IR (-O0):
@.str = [41 x i8] c"Content-type: text/html; charset=utf-8\0A\0A\00"
@.str.1 = [562 x i8] c"<?xml version=\221.0\22 encoding=\22utf-8\22?>\0A<!DOCTYPE html PUBLIC \22-//W3C//DTD XHTML 1.1//EN\22\0A \22http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\22>\0A<html xmlns=\22http://www.w3.org/1999/xhtml\22 xml:lang=\22en\22>\0A<head>\0A <title>Product Catalog</title>\0A <link rel=\22stylesheet\22 type=\22text/css\22 href=\22style.css\22/>\0A <meta name=\22Author\22 content=\22Adam Hooper\22/>\0A</head>\0A<body>\0A <h1>Potions Incorporated</h1>\0A <p>Here is our product catalog. We are confident you will find something which satisfies.</p>\0A <p>You may also return to <a href=\22index.html\22>our front page</a>.</p>\0A\00"
define void @print_header() {
%1 = call i32 @printf(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @.str, i64 0, i64 0))
%2 = call i32 @printf(i8* getelementptr inbounds ([562 x i8], [562 x i8]* @.str.1, i64 0, i64 0))
ret void
}

LLVM IR (-O2):
@str = [40 x i8] c"Content-type: text/html; charset=utf-8\0A\00"
@str.2 = [561 x i8] c"<?xml version=\221.0\22 encoding=\22utf-8\22?>\0A<!DOCTYPE html PUBLIC \22-//W3C//DTD XHTML 1.1//EN\22\0A \22http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\22>\0A<html xmlns=\22http://www.w3.org/1999/xhtml\22 xml:lang=\22en\22>\0A<head>\0A <title>Product Catalog</title>\0A <link rel=\22stylesheet\22 type=\22text/css\22 href=\22style.css\22/>\0A <meta name=\22Author\22 content=\22Adam Hooper\22/>\0A</head>\0A<body>\0A <h1>Potions Incorporated</h1>\0A <p>Here is our product catalog. We are confident you will find something which satisfies.</p>\0A <p>You may also return to <a href=\22index.html\22>our front page</a>.</p>\00"
define void @print_header() {
%1 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([40 x i8], [40 x i8]* @str, i64 0, i64 0))
%2 = tail call i32 @puts(i8* dereferenceable(1) getelementptr inbounds ([561 x i8], [561 x i8]* @str.2, i64 0, i64 0))
ret void
}