int main(void) {
  unsigned char *vram = (unsigned char *)0xa0000;
  _puts("Hello!\n");
  _puts("Key or Mouse\n");
  __asm__("hlt");
  set_graphicmode();
  for (int i = 0; i < 0x10; i++) {
    for (int j = 0; j < 320 * 200; j++)
      vram[j] = i;
    __asm__("hlt");
  }
  for (int i = 0; i < 320 * 200; i++)
    vram[i] = i % 0x10;
  __asm__("hlt");
  for (int i = 0; i < 200; i++) {
    unsigned char c8 = i % 0x10;
    unsigned long c32 = (c8 << 24) + (c8 << 16) + (c8 << 8) + c8;
    for (int j = 0; j < 320 / 4; j++)
      ((unsigned long *)vram)[i * 80 + j] = c32;
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x40,%rsp
movl   $0x0,-0x4(%rbp)
mov    $0xa0000,%eax
mov    %rax,-0x10(%rbp)
lea    0xec1(%rip),%rdi
mov    $0x0,%al
call   1030 <_puts@plt>
lea    0xebb(%rip),%rdi
mov    $0x0,%al
call   1030 <_puts@plt>
hlt
mov    $0x0,%al
call   1040 <set_graphicmode@plt>
movl   $0x0,-0x14(%rbp)
cmpl   $0x10,-0x14(%rbp)
jge    11ae <main+0x8e>
movl   $0x0,-0x18(%rbp)
cmpl   $0xfa00,-0x18(%rbp)
jge    119f <main+0x7f>
mov    -0x14(%rbp),%eax
mov    %al,%dl
mov    -0x10(%rbp),%rax
movslq -0x18(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x18(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x18(%rbp)
jmp    1174 <main+0x54>
hlt
mov    -0x14(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x14(%rbp)
jmp    1163 <main+0x43>
movl   $0x0,-0x1c(%rbp)
cmpl   $0xfa00,-0x1c(%rbp)
jge    11e6 <main+0xc6>
mov    -0x1c(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
mov    -0x10(%rbp),%rax
movslq -0x1c(%rbp),%rcx
mov    %dl,(%rax,%rcx,1)
mov    -0x1c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x1c(%rbp)
jmp    11b5 <main+0x95>
hlt
movl   $0x0,-0x20(%rbp)
cmpl   $0xc8,-0x20(%rbp)
jge    1278 <main+0x158>
mov    -0x20(%rbp),%eax
mov    $0x10,%ecx
cltd
idiv   %ecx
mov    %dl,%al
mov    %al,-0x21(%rbp)
movzbl -0x21(%rbp),%eax
shl    $0x18,%eax
movzbl -0x21(%rbp),%ecx
shl    $0x10,%ecx
add    %ecx,%eax
movzbl -0x21(%rbp),%ecx
shl    $0x8,%ecx
add    %ecx,%eax
movzbl -0x21(%rbp),%ecx
add    %ecx,%eax
cltq
mov    %rax,-0x30(%rbp)
movl   $0x0,-0x34(%rbp)
cmpl   $0x50,-0x34(%rbp)
jge    1265 <main+0x145>
mov    -0x30(%rbp),%rdx
mov    -0x10(%rbp),%rax
imul   $0x50,-0x20(%rbp),%ecx
add    -0x34(%rbp),%ecx
movslq %ecx,%rcx
mov    %rdx,(%rax,%rcx,8)
mov    -0x34(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x34(%rbp)
jmp    1237 <main+0x117>
jmp    126a <main+0x14a>
mov    -0x20(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x20(%rbp)
jmp    11ee <main+0xce>
xor    %eax,%eax
add    $0x40,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbx
mov    $0xa0000,%ebx
lea    0xef3(%rip),%rdi
xor    %eax,%eax
call   1030 <_puts@plt>
lea    0xeed(%rip),%rdi
xor    %eax,%eax
call   1030 <_puts@plt>
hlt
xor    %eax,%eax
call   1050 <set_graphicmode@plt>
mov    $0xa0000,%edi
mov    $0xfa00,%edx
xor    %esi,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x1,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x2,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x3,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x4,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x5,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x6,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x7,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x8,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0x9,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xa,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xb,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xc,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xd,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xe,%esi
call   1040 <memset@plt>
hlt
mov    $0xa0000,%edi
mov    $0xfa00,%edx
mov    $0xf,%esi
call   1040 <memset@plt>
hlt
movdqa 0xd51(%rip),%xmm0
mov    $0x40,%eax
movdqa 0xd54(%rip),%xmm1
movdqa 0xd5c(%rip),%xmm2
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movdqa %xmm0,%xmm3
pand   %xmm1,%xmm3
movdqa %xmm3,-0x40(%rbx,%rax,1)
movdqa %xmm3,-0x30(%rbx,%rax,1)
movdqa %xmm3,-0x20(%rbx,%rax,1)
movdqa %xmm3,-0x10(%rbx,%rax,1)
movdqa %xmm3,(%rbx,%rax,1)
paddb  %xmm2,%xmm0
add    $0x50,%rax
cmp    $0xfa40,%rax
jne    12d0 <main+0x1a0>
hlt
mov    $0xa0270,%eax
xor    %ecx,%ecx
nopl   (%rax)
mov    %ecx,%edx
and    $0xf,%edx
imul   $0x1010101,%rdx,%rdx
movq   %rdx,%xmm0
pshufd $0x44,%xmm0,%xmm0
movdqa %xmm0,-0x270(%rax)
ff
movdqa %xmm0,-0x260(%rax)
ff
movdqa %xmm0,-0x250(%rax)
ff
movdqa %xmm0,-0x240(%rax)
ff
movdqa %xmm0,-0x230(%rax)
ff
movdqa %xmm0,-0x220(%rax)
ff
movdqa %xmm0,-0x210(%rax)
ff
movdqa %xmm0,-0x200(%rax)
ff
movdqa %xmm0,-0x1f0(%rax)
ff
movdqa %xmm0,-0x1e0(%rax)
ff
movdqa %xmm0,-0x1d0(%rax)
ff
movdqa %xmm0,-0x1c0(%rax)
ff
movdqa %xmm0,-0x1b0(%rax)
ff
movdqa %xmm0,-0x1a0(%rax)
ff
movdqa %xmm0,-0x190(%rax)
ff
movdqa %xmm0,-0x180(%rax)
ff
movdqa %xmm0,-0x170(%rax)
ff
movdqa %xmm0,-0x160(%rax)
ff
movdqa %xmm0,-0x150(%rax)
ff
movdqa %xmm0,-0x140(%rax)
ff
movdqa %xmm0,-0x130(%rax)
ff
movdqa %xmm0,-0x120(%rax)
ff
movdqa %xmm0,-0x110(%rax)
ff
movdqa %xmm0,-0x100(%rax)
ff
movdqa %xmm0,-0xf0(%rax)
ff
movdqa %xmm0,-0xe0(%rax)
ff
movdqa %xmm0,-0xd0(%rax)
ff
movdqa %xmm0,-0xc0(%rax)
ff
movdqa %xmm0,-0xb0(%rax)
ff
movdqa %xmm0,-0xa0(%rax)
ff
movdqa %xmm0,-0x90(%rax)
ff
movdqa %xmm0,-0x80(%rax)
movdqa %xmm0,-0x70(%rax)
movdqa %xmm0,-0x60(%rax)
movdqa %xmm0,-0x50(%rax)
movdqa %xmm0,-0x40(%rax)
movdqa %xmm0,-0x30(%rax)
movdqa %xmm0,-0x20(%rax)
movdqa %xmm0,-0x10(%rax)
movdqa %xmm0,(%rax)
add    $0x1,%rcx
add    $0x280,%rax
cmp    $0xc8,%rcx
jne    1310 <main+0x1e0>
xor    %eax,%eax
pop    %rbx
ret

LLVM IR (-O0):
@.str = [8 x i8] c"Hello!\0A\00"
@.str.1 = [14 x i8] c"Key or Mouse\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i8*
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca i32
%7 = alloca i8
%8 = alloca i64
%9 = alloca i32
store i32 0, i32* %1
store i8* inttoptr (i64 655360 to i8*), i8** %2
%10 = call i32 (i8*, ...) bitcast (i32 (...)* @_puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
%11 = call i32 (i8*, ...) bitcast (i32 (...)* @_puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0))
%12 = call i32 (...) @set_graphicmode()
store i32 0, i32* %3
br label %13
13: ; preds = %31, %0
%14 = load i32, i32* %3
%15 = icmp slt i32 %14, 16
br i1 %15, label %16, label %34
16: ; preds = %13
store i32 0, i32* %4
br label %17
17: ; preds = %27, %16
%18 = load i32, i32* %4
%19 = icmp slt i32 %18, 64000
br i1 %19, label %20, label %30
20: ; preds = %17
%21 = load i32, i32* %3
%22 = trunc i32 %21 to i8
%23 = load i8*, i8** %2
%24 = load i32, i32* %4
%25 = sext i32 %24 to i64
%26 = getelementptr inbounds i8, i8* %23, i64 %25
store i8 %22, i8* %26
br label %27
27: ; preds = %20
%28 = load i32, i32* %4
%29 = add nsw i32 %28, 1
store i32 %29, i32* %4
br label %17
30: ; preds = %17
br label %31
31: ; preds = %30
%32 = load i32, i32* %3
%33 = add nsw i32 %32, 1
store i32 %33, i32* %3
br label %13
34: ; preds = %13
store i32 0, i32* %5
br label %35
35: ; preds = %46, %34
%36 = load i32, i32* %5
%37 = icmp slt i32 %36, 64000
br i1 %37, label %38, label %49
38: ; preds = %35
%39 = load i32, i32* %5
%40 = srem i32 %39, 16
%41 = trunc i32 %40 to i8
%42 = load i8*, i8** %2
%43 = load i32, i32* %5
%44 = sext i32 %43 to i64
%45 = getelementptr inbounds i8, i8* %42, i64 %44
store i8 %41, i8* %45
br label %46
46: ; preds = %38
%47 = load i32, i32* %5
%48 = add nsw i32 %47, 1
store i32 %48, i32* %5
br label %35
49: ; preds = %35
store i32 0, i32* %6
br label %50
50: ; preds = %89, %49
%51 = load i32, i32* %6
%52 = icmp slt i32 %51, 200
br i1 %52, label %53, label %92
53: ; preds = %50
%54 = load i32, i32* %6
%55 = srem i32 %54, 16
%56 = trunc i32 %55 to i8
store i8 %56, i8* %7
%57 = load i8, i8* %7
%58 = zext i8 %57 to i32
%59 = shl i32 %58, 24
%60 = load i8, i8* %7
%61 = zext i8 %60 to i32
%62 = shl i32 %61, 16
%63 = add nsw i32 %59, %62
%64 = load i8, i8* %7
%65 = zext i8 %64 to i32
%66 = shl i32 %65, 8
%67 = add nsw i32 %63, %66
%68 = load i8, i8* %7
%69 = zext i8 %68 to i32
%70 = add nsw i32 %67, %69
%71 = sext i32 %70 to i64
store i64 %71, i64* %8
store i32 0, i32* %9
br label %72
72: ; preds = %85, %53
%73 = load i32, i32* %9
%74 = icmp slt i32 %73, 80
br i1 %74, label %75, label %88
75: ; preds = %72
%76 = load i64, i64* %8
%77 = load i8*, i8** %2
%78 = bitcast i8* %77 to i64*
%79 = load i32, i32* %6
%80 = mul nsw i32 %79, 80
%81 = load i32, i32* %9
%82 = add nsw i32 %80, %81
%83 = sext i32 %82 to i64
%84 = getelementptr inbounds i64, i64* %78, i64 %83
store i64 %76, i64* %84
br label %85
85: ; preds = %75
%86 = load i32, i32* %9
%87 = add nsw i32 %86, 1
store i32 %87, i32* %9
br label %72
88: ; preds = %72
br label %89
89: ; preds = %88
%90 = load i32, i32* %6
%91 = add nsw i32 %90, 1
store i32 %91, i32* %6
br label %50
92: ; preds = %50
ret i32 0
}

LLVM IR (-O2):
@.str = [8 x i8] c"Hello!\0A\00"
@.str.1 = [14 x i8] c"Key or Mouse\0A\00"
define i32 @main() {
%1 = tail call i32 (i8*, ...) bitcast (i32 (...)* @_puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str, i64 0, i64 0))
%2 = tail call i32 (i8*, ...) bitcast (i32 (...)* @_puts to i32 (i8*, ...)*)(i8* getelementptr inbounds ([14 x i8], [14 x i8]* @.str.1, i64 0, i64 0))
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
%3 = tail call i32 (...) @set_graphicmode()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
br label %4
4: ; preds = %4, %0
%5 = phi i64 [ 0, %0 ], [ %26, %4 ]
%6 = phi <16 x i8> [ <i8 0, i8 1, i8 2, i8 3, i8 4, i8 5, i8 6, i8 7, i8 8, i8 9, i8 10, i8 11, i8 12, i8 13, i8 14, i8 15>, %0 ], [ %27, %4 ]
%7 = and <16 x i8> %6, <i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15>
%8 = getelementptr inbounds i8, i8* inttoptr (i64 655360 to i8*), i64 %5
%9 = bitcast i8* %8 to <16 x i8>*
store <16 x i8> %7, <16 x i8>* %9
%10 = add nuw nsw i64 %5, 16
%11 = and <16 x i8> %6, <i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15>
%12 = getelementptr inbounds i8, i8* inttoptr (i64 655360 to i8*), i64 %10
%13 = bitcast i8* %12 to <16 x i8>*
store <16 x i8> %11, <16 x i8>* %13
%14 = add nuw nsw i64 %5, 32
%15 = and <16 x i8> %6, <i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15>
%16 = getelementptr inbounds i8, i8* inttoptr (i64 655360 to i8*), i64 %14
%17 = bitcast i8* %16 to <16 x i8>*
store <16 x i8> %15, <16 x i8>* %17
%18 = add nuw nsw i64 %5, 48
%19 = and <16 x i8> %6, <i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15>
%20 = getelementptr inbounds i8, i8* inttoptr (i64 655360 to i8*), i64 %18
%21 = bitcast i8* %20 to <16 x i8>*
store <16 x i8> %19, <16 x i8>* %21
%22 = add nuw nsw i64 %5, 64
%23 = and <16 x i8> %6, <i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15, i8 15>
%24 = getelementptr inbounds i8, i8* inttoptr (i64 655360 to i8*), i64 %22
%25 = bitcast i8* %24 to <16 x i8>*
store <16 x i8> %23, <16 x i8>* %25
%26 = add nuw nsw i64 %5, 80
%27 = add <16 x i8> %6, <i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80, i8 80>
%28 = icmp eq i64 %26, 64000
br i1 %28, label %29, label %4
29: ; preds = %4
tail call void asm sideeffect "hlt", "~{dirflag},~{fpsr},~{flags}"()
br label %31
30: ; preds = %31
ret i32 0
31: ; preds = %29, %31
%32 = phi i64 [ 0, %29 ], [ %157, %31 ]
%33 = mul nuw nsw i64 %32, 80
%34 = and i64 %32, 15
%35 = mul nuw nsw i64 %34, 16843009
%36 = insertelement <2 x i64> poison, i64 %35, i64 0
%37 = shufflevector <2 x i64> %36, <2 x i64> poison, <2 x i32> zeroinitializer
%38 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %33
%39 = bitcast i64* %38 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %39
%40 = or i64 %33, 2
%41 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %40
%42 = bitcast i64* %41 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %42
%43 = or i64 %33, 4
%44 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %43
%45 = bitcast i64* %44 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %45
%46 = or i64 %33, 6
%47 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %46
%48 = bitcast i64* %47 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %48
%49 = or i64 %33, 8
%50 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %49
%51 = bitcast i64* %50 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %51
%52 = or i64 %33, 10
%53 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %52
%54 = bitcast i64* %53 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %54
%55 = or i64 %33, 12
%56 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %55
%57 = bitcast i64* %56 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %57
%58 = or i64 %33, 14
%59 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %58
%60 = bitcast i64* %59 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %60
%61 = add nuw nsw i64 %33, 16
%62 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %61
%63 = bitcast i64* %62 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %63
%64 = add nuw nsw i64 %33, 18
%65 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %64
%66 = bitcast i64* %65 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %66
%67 = add nuw nsw i64 %33, 20
%68 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %67
%69 = bitcast i64* %68 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %69
%70 = add nuw nsw i64 %33, 22
%71 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %70
%72 = bitcast i64* %71 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %72
%73 = add nuw nsw i64 %33, 24
%74 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %73
%75 = bitcast i64* %74 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %75
%76 = add nuw nsw i64 %33, 26
%77 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %76
%78 = bitcast i64* %77 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %78
%79 = add nuw nsw i64 %33, 28
%80 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %79
%81 = bitcast i64* %80 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %81
%82 = add nuw nsw i64 %33, 30
%83 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %82
%84 = bitcast i64* %83 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %84
%85 = add nuw nsw i64 %33, 32
%86 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %85
%87 = bitcast i64* %86 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %87
%88 = add nuw nsw i64 %33, 34
%89 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %88
%90 = bitcast i64* %89 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %90
%91 = add nuw nsw i64 %33, 36
%92 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %91
%93 = bitcast i64* %92 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %93
%94 = add nuw nsw i64 %33, 38
%95 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %94
%96 = bitcast i64* %95 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %96
%97 = add nuw nsw i64 %33, 40
%98 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %97
%99 = bitcast i64* %98 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %99
%100 = add nuw nsw i64 %33, 42
%101 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %100
%102 = bitcast i64* %101 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %102
%103 = add nuw nsw i64 %33, 44
%104 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %103
%105 = bitcast i64* %104 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %105
%106 = add nuw nsw i64 %33, 46
%107 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %106
%108 = bitcast i64* %107 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %108
%109 = add nuw nsw i64 %33, 48
%110 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %109
%111 = bitcast i64* %110 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %111
%112 = add nuw nsw i64 %33, 50
%113 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %112
%114 = bitcast i64* %113 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %114
%115 = add nuw nsw i64 %33, 52
%116 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %115
%117 = bitcast i64* %116 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %117
%118 = add nuw nsw i64 %33, 54
%119 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %118
%120 = bitcast i64* %119 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %120
%121 = add nuw nsw i64 %33, 56
%122 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %121
%123 = bitcast i64* %122 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %123
%124 = add nuw nsw i64 %33, 58
%125 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %124
%126 = bitcast i64* %125 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %126
%127 = add nuw nsw i64 %33, 60
%128 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %127
%129 = bitcast i64* %128 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %129
%130 = add nuw nsw i64 %33, 62
%131 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %130
%132 = bitcast i64* %131 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %132
%133 = add nuw nsw i64 %33, 64
%134 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %133
%135 = bitcast i64* %134 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %135
%136 = add nuw nsw i64 %33, 66
%137 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %136
%138 = bitcast i64* %137 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %138
%139 = add nuw nsw i64 %33, 68
%140 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %139
%141 = bitcast i64* %140 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %141
%142 = add nuw nsw i64 %33, 70
%143 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %142
%144 = bitcast i64* %143 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %144
%145 = add nuw nsw i64 %33, 72
%146 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %145
%147 = bitcast i64* %146 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %147
%148 = add nuw nsw i64 %33, 74
%149 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %148
%150 = bitcast i64* %149 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %150
%151 = add nuw nsw i64 %33, 76
%152 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %151
%153 = bitcast i64* %152 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %153
%154 = add nuw nsw i64 %33, 78
%155 = getelementptr inbounds i64, i64* inttoptr (i64 655360 to i64*), i64 %154
%156 = bitcast i64* %155 to <2 x i64>*
store <2 x i64> %37, <2 x i64>* %156
%157 = add nuw nsw i64 %32, 1
%158 = icmp eq i64 %157, 200
br i1 %158, label %30, label %31
}