#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 *, long);
int main() {
  long int max_product = 0;
  const int data[1000] = {
      7, 3, 1, 6, 7, 1, 7, 6, 5, 3, 1, 3, 3, 0, 6, 2, 4, 9, 1, 9, 2, 2, 5, 1,
      1, 9, 6, 7, 4, 4, 2, 6, 5, 7, 4, 7, 4, 2, 3, 5, 5, 3, 4, 9, 1, 9, 4, 9,
      3, 4, 9, 6, 9, 8, 3, 5, 2, 0, 3, 1, 2, 7, 7, 4, 5, 0, 6, 3, 2, 6, 2, 3,
      9, 5, 7, 8, 3, 1, 8, 0, 1, 6, 9, 8, 4, 8, 0, 1, 8, 6, 9, 4, 7, 8, 8, 5,
      1, 8, 4, 3, 8, 5, 8, 6, 1, 5, 6, 0, 7, 8, 9, 1, 1, 2, 9, 4, 9, 4, 9, 5,
      4, 5, 9, 5, 0, 1, 7, 3, 7, 9, 5, 8, 3, 3, 1, 9, 5, 2, 8, 5, 3, 2, 0, 8,
      8, 0, 5, 5, 1, 1, 1, 2, 5, 4, 0, 6, 9, 8, 7, 4, 7, 1, 5, 8, 5, 2, 3, 8,
      6, 3, 0, 5, 0, 7, 1, 5, 6, 9, 3, 2, 9, 0, 9, 6, 3, 2, 9, 5, 2, 2, 7, 4,
      4, 3, 0, 4, 3, 5, 5, 7, 6, 6, 8, 9, 6, 6, 4, 8, 9, 5, 0, 4, 4, 5, 2, 4,
      4, 5, 2, 3, 1, 6, 1, 7, 3, 1, 8, 5, 6, 4, 0, 3, 0, 9, 8, 7, 1, 1, 1, 2,
      1, 7, 2, 2, 3, 8, 3, 1, 1, 3, 6, 2, 2, 2, 9, 8, 9, 3, 4, 2, 3, 3, 8, 0,
      3, 0, 8, 1, 3, 5, 3, 3, 6, 2, 7, 6, 6, 1, 4, 2, 8, 2, 8, 0, 6, 4, 4, 4,
      4, 8, 6, 6, 4, 5, 2, 3, 8, 7, 4, 9, 3, 0, 3, 5, 8, 9, 0, 7, 2, 9, 6, 2,
      9, 0, 4, 9, 1, 5, 6, 0, 4, 4, 0, 7, 7, 2, 3, 9, 0, 7, 1, 3, 8, 1, 0, 5,
      1, 5, 8, 5, 9, 3, 0, 7, 9, 6, 0, 8, 6, 6, 7, 0, 1, 7, 2, 4, 2, 7, 1, 2,
      1, 8, 8, 3, 9, 9, 8, 7, 9, 7, 9, 0, 8, 7, 9, 2, 2, 7, 4, 9, 2, 1, 9, 0,
      1, 6, 9, 9, 7, 2, 0, 8, 8, 8, 0, 9, 3, 7, 7, 6, 6, 5, 7, 2, 7, 3, 3, 3,
      0, 0, 1, 0, 5, 3, 3, 6, 7, 8, 8, 1, 2, 2, 0, 2, 3, 5, 4, 2, 1, 8, 0, 9,
      7, 5, 1, 2, 5, 4, 5, 4, 0, 5, 9, 4, 7, 5, 2, 2, 4, 3, 5, 2, 5, 8, 4, 9,
      0, 7, 7, 1, 1, 6, 7, 0, 5, 5, 6, 0, 1, 3, 6, 0, 4, 8, 3, 9, 5, 8, 6, 4,
      4, 6, 7, 0, 6, 3, 2, 4, 4, 1, 5, 7, 2, 2, 1, 5, 5, 3, 9, 7, 5, 3, 6, 9,
      7, 8, 1, 7, 9, 7, 7, 8, 4, 6, 1, 7, 4, 0, 6, 4, 9, 5, 5, 1, 4, 9, 2, 9,
      0, 8, 6, 2, 5, 6, 9, 3, 2, 1, 9, 7, 8, 4, 6, 8, 6, 2, 2, 4, 8, 2, 8, 3,
      9, 7, 2, 2, 4, 1, 3, 7, 5, 6, 5, 7, 0, 5, 6, 0, 5, 7, 4, 9, 0, 2, 6, 1,
      4, 0, 7, 9, 7, 2, 9, 6, 8, 6, 5, 2, 4, 1, 4, 5, 3, 5, 1, 0, 0, 4, 7, 4,
      8, 2, 1, 6, 6, 3, 7, 0, 4, 8, 4, 4, 0, 3, 1, 9, 9, 8, 9, 0, 0, 0, 8, 8,
      9, 5, 2, 4, 3, 4, 5, 0, 6, 5, 8, 5, 4, 1, 2, 2, 7, 5, 8, 8, 6, 6, 6, 8,
      8, 1, 1, 6, 4, 2, 7, 1, 7, 1, 4, 7, 9, 9, 2, 4, 4, 4, 2, 9, 2, 8, 2, 3,
      0, 8, 6, 3, 4, 6, 5, 6, 7, 4, 8, 1, 3, 9, 1, 9, 1, 2, 3, 1, 6, 2, 8, 2,
      4, 5, 8, 6, 1, 7, 8, 6, 6, 4, 5, 8, 3, 5, 9, 1, 2, 4, 5, 6, 6, 5, 2, 9,
      4, 7, 6, 5, 4, 5, 6, 8, 2, 8, 4, 8, 9, 1, 2, 8, 8, 3, 1, 4, 2, 6, 0, 7,
      6, 9, 0, 0, 4, 2, 2, 4, 2, 1, 9, 0, 2, 2, 6, 7, 1, 0, 5, 5, 6, 2, 6, 3,
      2, 1, 1, 1, 1, 1, 0, 9, 3, 7, 0, 5, 4, 4, 2, 1, 7, 5, 0, 6, 9, 4, 1, 6,
      5, 8, 9, 6, 0, 4, 0, 8, 0, 7, 1, 9, 8, 4, 0, 3, 8, 5, 0, 9, 6, 2, 4, 5,
      5, 4, 4, 4, 3, 6, 2, 9, 8, 1, 2, 3, 0, 9, 8, 7, 8, 7, 9, 9, 2, 7, 2, 4,
      4, 2, 8, 4, 9, 0, 9, 1, 8, 8, 8, 4, 5, 8, 0, 1, 5, 6, 1, 6, 6, 0, 9, 7,
      9, 1, 9, 1, 3, 3, 8, 7, 5, 4, 9, 9, 2, 0, 0, 5, 2, 4, 0, 6, 3, 6, 8, 9,
      9, 1, 2, 5, 6, 0, 7, 1, 7, 6, 0, 6, 0, 5, 8, 8, 6, 1, 1, 6, 4, 6, 7, 1,
      0, 9, 4, 0, 5, 0, 7, 7, 5, 4, 1, 0, 0, 2, 2, 5, 6, 9, 8, 3, 1, 5, 5, 2,
      0, 0, 0, 5, 5, 9, 3, 5, 7, 2, 9, 7, 2, 5, 7, 1, 6, 3, 6, 2, 6, 9, 5, 6,
      1, 8, 8, 2, 6, 7, 0, 4, 2, 8, 2, 5, 2, 4, 8, 3, 6, 0, 0, 8, 2, 3, 2, 5,
      7, 5, 3, 0, 4, 2, 0, 7, 5, 2, 9, 6, 3, 4, 5, 0};
  for (int d = 0; d <= 987; d++) {
    long int product = data[d];
    for (int i = 1; i < 13; i++)
      product *= data[d + i];
    if (product > max_product)
      max_product = product;
  }
  printf("The largest product of 13 adjacent digits is %ld.\n", max_product);
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xfd0,%rsp
movl   $0x0,-0x4(%rbp)
movq   $0x0,-0x10(%rbp)
lea    -0xfb0(%rbp),%rdi
lea    0xeb8(%rip),%rsi
mov    $0xfa0,%edx
call   1040 <memcpy@plt>
movl   $0x0,-0xfb4(%rbp)
cmpl   $0x3db,-0xfb4(%rbp)
jg     1207 <main+0xe7>
movslq -0xfb4(%rbp),%rax
movslq -0xfb0(%rbp,%rax,4),%rax
ff
mov    %rax,-0xfc0(%rbp)
movl   $0x1,-0xfc4(%rbp)
cmpl   $0xd,-0xfc4(%rbp)
jge    11d2 <main+0xb2>
mov    -0xfb4(%rbp),%eax
add    -0xfc4(%rbp),%eax
cltq
movslq -0xfb0(%rbp,%rax,4),%rax
ff
imul   -0xfc0(%rbp),%rax
ff
mov    %rax,-0xfc0(%rbp)
mov    -0xfc4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xfc4(%rbp)
jmp    118c <main+0x6c>
mov    -0xfc0(%rbp),%rax
cmp    -0x10(%rbp),%rax
jle    11ee <main+0xce>
mov    -0xfc0(%rbp),%rax
mov    %rax,-0x10(%rbp)
jmp    11f3 <main+0xd3>
mov    -0xfb4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0xfb4(%rbp)
jmp    115c <main+0x3c>
mov    -0x10(%rbp),%rsi
lea    0x1d8e(%rip),%rdi
call   1030 <printf@plt>
mov    -0x4(%rbp),%eax
add    $0xfd0,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
mov    $0x7,%r9d
mov    $0xc,%ecx
xor    %esi,%esi
lea    0xedb(%rip),%rdx
cs nopw 0x0(%rax,%rax,1)
nop
mov    %rsi,%r8
movslq %r9d,%rsi
movslq -0x2c(%rdx,%rcx,4),%r9
imul   %r9,%rsi
movslq -0x28(%rdx,%rcx,4),%rdi
movslq -0x24(%rdx,%rcx,4),%rax
imul   %rdi,%rax
imul   %rsi,%rax
movslq -0x20(%rdx,%rcx,4),%rsi
movslq -0x1c(%rdx,%rcx,4),%rdi
imul   %rsi,%rdi
movslq -0x18(%rdx,%rcx,4),%rsi
imul   %rdi,%rsi
imul   %rax,%rsi
movslq -0x14(%rdx,%rcx,4),%rax
movslq -0x10(%rdx,%rcx,4),%rdi
imul   %rax,%rdi
movslq -0xc(%rdx,%rcx,4),%rax
imul   %rdi,%rax
movslq -0x8(%rdx,%rcx,4),%rdi
imul   %rax,%rdi
imul   %rsi,%rdi
movslq -0x4(%rdx,%rcx,4),%rax
movslq (%rdx,%rcx,4),%rsi
imul   %rax,%rsi
imul   %rdi,%rsi
cmp    %r8,%rsi
cmovle %r8,%rsi
add    $0x1,%rcx
cmp    $0x3e8,%rcx
jne    1130 <main+0x20>
lea    0x1de0(%rip),%rdi
call   1030 <printf@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@__const.main.data = [1000 x i32] [i32 7, i32 3, i32 1, i32 6, i32 7, i32 1, i32 7, i32 6, i32 5, i32 3, i32 1, i32 3, i32 3, i32 0, i32 6, i32 2, i32 4, i32 9, i32 1, i32 9, i32 2, i32 2, i32 5, i32 1, i32 1, i32 9, i32 6, i32 7, i32 4, i32 4, i32 2, i32 6, i32 5, i32 7, i32 4, i32 7, i32 4, i32 2, i32 3, i32 5, i32 5, i32 3, i32 4, i32 9, i32 1, i32 9, i32 4, i32 9, i32 3, i32 4, i32 9, i32 6, i32 9, i32 8, i32 3, i32 5, i32 2, i32 0, i32 3, i32 1, i32 2, i32 7, i32 7, i32 4, i32 5, i32 0, i32 6, i32 3, i32 2, i32 6, i32 2, i32 3, i32 9, i32 5, i32 7, i32 8, i32 3, i32 1, i32 8, i32 0, i32 1, i32 6, i32 9, i32 8, i32 4, i32 8, i32 0, i32 1, i32 8, i32 6, i32 9, i32 4, i32 7, i32 8, i32 8, i32 5, i32 1, i32 8, i32 4, i32 3, i32 8, i32 5, i32 8, i32 6, i32 1, i32 5, i32 6, i32 0, i32 7, i32 8, i32 9, i32 1, i32 1, i32 2, i32 9, i32 4, i32 9, i32 4, i32 9, i32 5, i32 4, i32 5, i32 9, i32 5, i32 0, i32 1, i32 7, i32 3, i32 7, i32 9, i32 5, i32 8, i32 3, i32 3, i32 1, i32 9, i32 5, i32 2, i32 8, i32 5, i32 3, i32 2, i32 0, i32 8, i32 8, i32 0, i32 5, i32 5, i32 1, i32 1, i32 1, i32 2, i32 5, i32 4, i32 0, i32 6, i32 9, i32 8, i32 7, i32 4, i32 7, i32 1, i32 5, i32 8, i32 5, i32 2, i32 3, i32 8, i32 6, i32 3, i32 0, i32 5, i32 0, i32 7, i32 1, i32 5, i32 6, i32 9, i32 3, i32 2, i32 9, i32 0, i32 9, i32 6, i32 3, i32 2, i32 9, i32 5, i32 2, i32 2, i32 7, i32 4, i32 4, i32 3, i32 0, i32 4, i32 3, i32 5, i32 5, i32 7, i32 6, i32 6, i32 8, i32 9, i32 6, i32 6, i32 4, i32 8, i32 9, i32 5, i32 0, i32 4, i32 4, i32 5, i32 2, i32 4, i32 4, i32 5, i32 2, i32 3, i32 1, i32 6, i32 1, i32 7, i32 3, i32 1, i32 8, i32 5, i32 6, i32 4, i32 0, i32 3, i32 0, i32 9, i32 8, i32 7, i32 1, i32 1, i32 1, i32 2, i32 1, i32 7, i32 2, i32 2, i32 3, i32 8, i32 3, i32 1, i32 1, i32 3, i32 6, i32 2, i32 2, i32 2, i32 9, i32 8, i32 9, i32 3, i32 4, i32 2, i32 3, i32 3, i32 8, i32 0, i32 3, i32 0, i32 8, i32 1, i32 3, i32 5, i32 3, i32 3, i32 6, i32 2, i32 7, i32 6, i32 6, i32 1, i32 4, i32 2, i32 8, i32 2, i32 8, i32 0, i32 6, i32 4, i32 4, i32 4, i32 4, i32 8, i32 6, i32 6, i32 4, i32 5, i32 2, i32 3, i32 8, i32 7, i32 4, i32 9, i32 3, i32 0, i32 3, i32 5, i32 8, i32 9, i32 0, i32 7, i32 2, i32 9, i32 6, i32 2, i32 9, i32 0, i32 4, i32 9, i32 1, i32 5, i32 6, i32 0, i32 4, i32 4, i32 0, i32 7, i32 7, i32 2, i32 3, i32 9, i32 0, i32 7, i32 1, i32 3, i32 8, i32 1, i32 0, i32 5, i32 1, i32 5, i32 8, i32 5, i32 9, i32 3, i32 0, i32 7, i32 9, i32 6, i32 0, i32 8, i32 6, i32 6, i32 7, i32 0, i32 1, i32 7, i32 2, i32 4, i32 2, i32 7, i32 1, i32 2, i32 1, i32 8, i32 8, i32 3, i32 9, i32 9, i32 8, i32 7, i32 9, i32 7, i32 9, i32 0, i32 8, i32 7, i32 9, i32 2, i32 2, i32 7, i32 4, i32 9, i32 2, i32 1, i32 9, i32 0, i32 1, i32 6, i32 9, i32 9, i32 7, i32 2, i32 0, i32 8, i32 8, i32 8, i32 0, i32 9, i32 3, i32 7, i32 7, i32 6, i32 6, i32 5, i32 7, i32 2, i32 7, i32 3, i32 3, i32 3, i32 0, i32 0, i32 1, i32 0, i32 5, i32 3, i32 3, i32 6, i32 7, i32 8, i32 8, i32 1, i32 2, i32 2, i32 0, i32 2, i32 3, i32 5, i32 4, i32 2, i32 1, i32 8, i32 0, i32 9, i32 7, i32 5, i32 1, i32 2, i32 5, i32 4, i32 5, i32 4, i32 0, i32 5, i32 9, i32 4, i32 7, i32 5, i32 2, i32 2, i32 4, i32 3, i32 5, i32 2, i32 5, i32 8, i32 4, i32 9, i32 0, i32 7, i32 7, i32 1, i32 1, i32 6, i32 7, i32 0, i32 5, i32 5, i32 6, i32 0, i32 1, i32 3, i32 6, i32 0, i32 4, i32 8, i32 3, i32 9, i32 5, i32 8, i32 6, i32 4, i32 4, i32 6, i32 7, i32 0, i32 6, i32 3, i32 2, i32 4, i32 4, i32 1, i32 5, i32 7, i32 2, i32 2, i32 1, i32 5, i32 5, i32 3, i32 9, i32 7, i32 5, i32 3, i32 6, i32 9, i32 7, i32 8, i32 1, i32 7, i32 9, i32 7, i32 7, i32 8, i32 4, i32 6, i32 1, i32 7, i32 4, i32 0, i32 6, i32 4, i32 9, i32 5, i32 5, i32 1, i32 4, i32 9, i32 2, i32 9, i32 0, i32 8, i32 6, i32 2, i32 5, i32 6, i32 9, i32 3, i32 2, i32 1, i32 9, i32 7, i32 8, i32 4, i32 6, i32 8, i32 6, i32 2, i32 2, i32 4, i32 8, i32 2, i32 8, i32 3, i32 9, i32 7, i32 2, i32 2, i32 4, i32 1, i32 3, i32 7, i32 5, i32 6, i32 5, i32 7, i32 0, i32 5, i32 6, i32 0, i32 5, i32 7, i32 4, i32 9, i32 0, i32 2, i32 6, i32 1, i32 4, i32 0, i32 7, i32 9, i32 7, i32 2, i32 9, i32 6, i32 8, i32 6, i32 5, i32 2, i32 4, i32 1, i32 4, i32 5, i32 3, i32 5, i32 1, i32 0, i32 0, i32 4, i32 7, i32 4, i32 8, i32 2, i32 1, i32 6, i32 6, i32 3, i32 7, i32 0, i32 4, i32 8, i32 4, i32 4, i32 0, i32 3, i32 1, i32 9, i32 9, i32 8, i32 9, i32 0, i32 0, i32 0, i32 8, i32 8, i32 9, i32 5, i32 2, i32 4, i32 3, i32 4, i32 5, i32 0, i32 6, i32 5, i32 8, i32 5, i32 4, i32 1, i32 2, i32 2, i32 7, i32 5, i32 8, i32 8, i32 6, i32 6, i32 6, i32 8, i32 8, i32 1, i32 1, i32 6, i32 4, i32 2, i32 7, i32 1, i32 7, i32 1, i32 4, i32 7, i32 9, i32 9, i32 2, i32 4, i32 4, i32 4, i32 2, i32 9, i32 2, i32 8, i32 2, i32 3, i32 0, i32 8, i32 6, i32 3, i32 4, i32 6, i32 5, i32 6, i32 7, i32 4, i32 8, i32 1, i32 3, i32 9, i32 1, i32 9, i32 1, i32 2, i32 3, i32 1, i32 6, i32 2, i32 8, i32 2, i32 4, i32 5, i32 8, i32 6, i32 1, i32 7, i32 8, i32 6, i32 6, i32 4, i32 5, i32 8, i32 3, i32 5, i32 9, i32 1, i32 2, i32 4, i32 5, i32 6, i32 6, i32 5, i32 2, i32 9, i32 4, i32 7, i32 6, i32 5, i32 4, i32 5, i32 6, i32 8, i32 2, i32 8, i32 4, i32 8, i32 9, i32 1, i32 2, i32 8, i32 8, i32 3, i32 1, i32 4, i32 2, i32 6, i32 0, i32 7, i32 6, i32 9, i32 0, i32 0, i32 4, i32 2, i32 2, i32 4, i32 2, i32 1, i32 9, i32 0, i32 2, i32 2, i32 6, i32 7, i32 1, i32 0, i32 5, i32 5, i32 6, i32 2, i32 6, i32 3, i32 2, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 9, i32 3, i32 7, i32 0, i32 5, i32 4, i32 4, i32 2, i32 1, i32 7, i32 5, i32 0, i32 6, i32 9, i32 4, i32 1, i32 6, i32 5, i32 8, i32 9, i32 6, i32 0, i32 4, i32 0, i32 8, i32 0, i32 7, i32 1, i32 9, i32 8, i32 4, i32 0, i32 3, i32 8, i32 5, i32 0, i32 9, i32 6, i32 2, i32 4, i32 5, i32 5, i32 4, i32 4, i32 4, i32 3, i32 6, i32 2, i32 9, i32 8, i32 1, i32 2, i32 3, i32 0, i32 9, i32 8, i32 7, i32 8, i32 7, i32 9, i32 9, i32 2, i32 7, i32 2, i32 4, i32 4, i32 2, i32 8, i32 4, i32 9, i32 0, i32 9, i32 1, i32 8, i32 8, i32 8, i32 4, i32 5, i32 8, i32 0, i32 1, i32 5, i32 6, i32 1, i32 6, i32 6, i32 0, i32 9, i32 7, i32 9, i32 1, i32 9, i32 1, i32 3, i32 3, i32 8, i32 7, i32 5, i32 4, i32 9, i32 9, i32 2, i32 0, i32 0, i32 5, i32 2, i32 4, i32 0, i32 6, i32 3, i32 6, i32 8, i32 9, i32 9, i32 1, i32 2, i32 5, i32 6, i32 0, i32 7, i32 1, i32 7, i32 6, i32 0, i32 6, i32 0, i32 5, i32 8, i32 8, i32 6, i32 1, i32 1, i32 6, i32 4, i32 6, i32 7, i32 1, i32 0, i32 9, i32 4, i32 0, i32 5, i32 0, i32 7, i32 7, i32 5, i32 4, i32 1, i32 0, i32 0, i32 2, i32 2, i32 5, i32 6, i32 9, i32 8, i32 3, i32 1, i32 5, i32 5, i32 2, i32 0, i32 0, i32 0, i32 5, i32 5, i32 9, i32 3, i32 5, i32 7, i32 2, i32 9, i32 7, i32 2, i32 5, i32 7, i32 1, i32 6, i32 3, i32 6, i32 2, i32 6, i32 9, i32 5, i32 6, i32 1, i32 8, i32 8, i32 2, i32 6, i32 7, i32 0, i32 4, i32 2, i32 8, i32 2, i32 5, i32 2, i32 4, i32 8, i32 3, i32 6, i32 0, i32 0, i32 8, i32 2, i32 3, i32 2, i32 5, i32 7, i32 5, i32 3, i32 0, i32 4, i32 2, i32 0, i32 7, i32 5, i32 2, i32 9, i32 6, i32 3, i32 4, i32 5, i32 0]
@.str = [51 x i8] c"The largest product of 13 adjacent digits is %ld.\0A\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i64
%3 = alloca [1000 x i32]
%4 = alloca i32
%5 = alloca i64
%6 = alloca i32
store i32 0, i32* %1
store i64 0, i64* %2
%7 = bitcast [1000 x i32]* %3 to i8*
store i32 0, i32* %4
br label %8
8: ; preds = %40, %0
%9 = load i32, i32* %4
%10 = icmp sle i32 %9, 987
br i1 %10, label %11, label %43
11: ; preds = %8
%12 = load i32, i32* %4
%13 = sext i32 %12 to i64
%14 = getelementptr inbounds [1000 x i32], [1000 x i32]* %3, i64 0, i64 %13
%15 = load i32, i32* %14
%16 = sext i32 %15 to i64
store i64 %16, i64* %5
store i32 1, i32* %6
br label %17
17: ; preds = %30, %11
%18 = load i32, i32* %6
%19 = icmp slt i32 %18, 13
br i1 %19, label %20, label %33
20: ; preds = %17
%21 = load i32, i32* %4
%22 = load i32, i32* %6
%23 = add nsw i32 %21, %22
%24 = sext i32 %23 to i64
%25 = getelementptr inbounds [1000 x i32], [1000 x i32]* %3, i64 0, i64 %24
%26 = load i32, i32* %25
%27 = sext i32 %26 to i64
%28 = load i64, i64* %5
%29 = mul nsw i64 %28, %27
store i64 %29, i64* %5
br label %30
30: ; preds = %20
%31 = load i32, i32* %6
%32 = add nsw i32 %31, 1
store i32 %32, i32* %6
br label %17
33: ; preds = %17
%34 = load i64, i64* %5
%35 = load i64, i64* %2
%36 = icmp sgt i64 %34, %35
br i1 %36, label %37, label %39
37: ; preds = %33
%38 = load i64, i64* %5
store i64 %38, i64* %2
br label %39
39: ; preds = %37, %33
br label %40
40: ; preds = %39
%41 = load i32, i32* %4
%42 = add nsw i32 %41, 1
store i32 %42, i32* %4
br label %8
43: ; preds = %8
%44 = load i64, i64* %2
%45 = call i32 @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0), i64 %44)
%46 = load i32, i32* %1
ret i32 %46
}

LLVM IR (-O2):
@__const.main.data = [1000 x i32] [i32 7, i32 3, i32 1, i32 6, i32 7, i32 1, i32 7, i32 6, i32 5, i32 3, i32 1, i32 3, i32 3, i32 0, i32 6, i32 2, i32 4, i32 9, i32 1, i32 9, i32 2, i32 2, i32 5, i32 1, i32 1, i32 9, i32 6, i32 7, i32 4, i32 4, i32 2, i32 6, i32 5, i32 7, i32 4, i32 7, i32 4, i32 2, i32 3, i32 5, i32 5, i32 3, i32 4, i32 9, i32 1, i32 9, i32 4, i32 9, i32 3, i32 4, i32 9, i32 6, i32 9, i32 8, i32 3, i32 5, i32 2, i32 0, i32 3, i32 1, i32 2, i32 7, i32 7, i32 4, i32 5, i32 0, i32 6, i32 3, i32 2, i32 6, i32 2, i32 3, i32 9, i32 5, i32 7, i32 8, i32 3, i32 1, i32 8, i32 0, i32 1, i32 6, i32 9, i32 8, i32 4, i32 8, i32 0, i32 1, i32 8, i32 6, i32 9, i32 4, i32 7, i32 8, i32 8, i32 5, i32 1, i32 8, i32 4, i32 3, i32 8, i32 5, i32 8, i32 6, i32 1, i32 5, i32 6, i32 0, i32 7, i32 8, i32 9, i32 1, i32 1, i32 2, i32 9, i32 4, i32 9, i32 4, i32 9, i32 5, i32 4, i32 5, i32 9, i32 5, i32 0, i32 1, i32 7, i32 3, i32 7, i32 9, i32 5, i32 8, i32 3, i32 3, i32 1, i32 9, i32 5, i32 2, i32 8, i32 5, i32 3, i32 2, i32 0, i32 8, i32 8, i32 0, i32 5, i32 5, i32 1, i32 1, i32 1, i32 2, i32 5, i32 4, i32 0, i32 6, i32 9, i32 8, i32 7, i32 4, i32 7, i32 1, i32 5, i32 8, i32 5, i32 2, i32 3, i32 8, i32 6, i32 3, i32 0, i32 5, i32 0, i32 7, i32 1, i32 5, i32 6, i32 9, i32 3, i32 2, i32 9, i32 0, i32 9, i32 6, i32 3, i32 2, i32 9, i32 5, i32 2, i32 2, i32 7, i32 4, i32 4, i32 3, i32 0, i32 4, i32 3, i32 5, i32 5, i32 7, i32 6, i32 6, i32 8, i32 9, i32 6, i32 6, i32 4, i32 8, i32 9, i32 5, i32 0, i32 4, i32 4, i32 5, i32 2, i32 4, i32 4, i32 5, i32 2, i32 3, i32 1, i32 6, i32 1, i32 7, i32 3, i32 1, i32 8, i32 5, i32 6, i32 4, i32 0, i32 3, i32 0, i32 9, i32 8, i32 7, i32 1, i32 1, i32 1, i32 2, i32 1, i32 7, i32 2, i32 2, i32 3, i32 8, i32 3, i32 1, i32 1, i32 3, i32 6, i32 2, i32 2, i32 2, i32 9, i32 8, i32 9, i32 3, i32 4, i32 2, i32 3, i32 3, i32 8, i32 0, i32 3, i32 0, i32 8, i32 1, i32 3, i32 5, i32 3, i32 3, i32 6, i32 2, i32 7, i32 6, i32 6, i32 1, i32 4, i32 2, i32 8, i32 2, i32 8, i32 0, i32 6, i32 4, i32 4, i32 4, i32 4, i32 8, i32 6, i32 6, i32 4, i32 5, i32 2, i32 3, i32 8, i32 7, i32 4, i32 9, i32 3, i32 0, i32 3, i32 5, i32 8, i32 9, i32 0, i32 7, i32 2, i32 9, i32 6, i32 2, i32 9, i32 0, i32 4, i32 9, i32 1, i32 5, i32 6, i32 0, i32 4, i32 4, i32 0, i32 7, i32 7, i32 2, i32 3, i32 9, i32 0, i32 7, i32 1, i32 3, i32 8, i32 1, i32 0, i32 5, i32 1, i32 5, i32 8, i32 5, i32 9, i32 3, i32 0, i32 7, i32 9, i32 6, i32 0, i32 8, i32 6, i32 6, i32 7, i32 0, i32 1, i32 7, i32 2, i32 4, i32 2, i32 7, i32 1, i32 2, i32 1, i32 8, i32 8, i32 3, i32 9, i32 9, i32 8, i32 7, i32 9, i32 7, i32 9, i32 0, i32 8, i32 7, i32 9, i32 2, i32 2, i32 7, i32 4, i32 9, i32 2, i32 1, i32 9, i32 0, i32 1, i32 6, i32 9, i32 9, i32 7, i32 2, i32 0, i32 8, i32 8, i32 8, i32 0, i32 9, i32 3, i32 7, i32 7, i32 6, i32 6, i32 5, i32 7, i32 2, i32 7, i32 3, i32 3, i32 3, i32 0, i32 0, i32 1, i32 0, i32 5, i32 3, i32 3, i32 6, i32 7, i32 8, i32 8, i32 1, i32 2, i32 2, i32 0, i32 2, i32 3, i32 5, i32 4, i32 2, i32 1, i32 8, i32 0, i32 9, i32 7, i32 5, i32 1, i32 2, i32 5, i32 4, i32 5, i32 4, i32 0, i32 5, i32 9, i32 4, i32 7, i32 5, i32 2, i32 2, i32 4, i32 3, i32 5, i32 2, i32 5, i32 8, i32 4, i32 9, i32 0, i32 7, i32 7, i32 1, i32 1, i32 6, i32 7, i32 0, i32 5, i32 5, i32 6, i32 0, i32 1, i32 3, i32 6, i32 0, i32 4, i32 8, i32 3, i32 9, i32 5, i32 8, i32 6, i32 4, i32 4, i32 6, i32 7, i32 0, i32 6, i32 3, i32 2, i32 4, i32 4, i32 1, i32 5, i32 7, i32 2, i32 2, i32 1, i32 5, i32 5, i32 3, i32 9, i32 7, i32 5, i32 3, i32 6, i32 9, i32 7, i32 8, i32 1, i32 7, i32 9, i32 7, i32 7, i32 8, i32 4, i32 6, i32 1, i32 7, i32 4, i32 0, i32 6, i32 4, i32 9, i32 5, i32 5, i32 1, i32 4, i32 9, i32 2, i32 9, i32 0, i32 8, i32 6, i32 2, i32 5, i32 6, i32 9, i32 3, i32 2, i32 1, i32 9, i32 7, i32 8, i32 4, i32 6, i32 8, i32 6, i32 2, i32 2, i32 4, i32 8, i32 2, i32 8, i32 3, i32 9, i32 7, i32 2, i32 2, i32 4, i32 1, i32 3, i32 7, i32 5, i32 6, i32 5, i32 7, i32 0, i32 5, i32 6, i32 0, i32 5, i32 7, i32 4, i32 9, i32 0, i32 2, i32 6, i32 1, i32 4, i32 0, i32 7, i32 9, i32 7, i32 2, i32 9, i32 6, i32 8, i32 6, i32 5, i32 2, i32 4, i32 1, i32 4, i32 5, i32 3, i32 5, i32 1, i32 0, i32 0, i32 4, i32 7, i32 4, i32 8, i32 2, i32 1, i32 6, i32 6, i32 3, i32 7, i32 0, i32 4, i32 8, i32 4, i32 4, i32 0, i32 3, i32 1, i32 9, i32 9, i32 8, i32 9, i32 0, i32 0, i32 0, i32 8, i32 8, i32 9, i32 5, i32 2, i32 4, i32 3, i32 4, i32 5, i32 0, i32 6, i32 5, i32 8, i32 5, i32 4, i32 1, i32 2, i32 2, i32 7, i32 5, i32 8, i32 8, i32 6, i32 6, i32 6, i32 8, i32 8, i32 1, i32 1, i32 6, i32 4, i32 2, i32 7, i32 1, i32 7, i32 1, i32 4, i32 7, i32 9, i32 9, i32 2, i32 4, i32 4, i32 4, i32 2, i32 9, i32 2, i32 8, i32 2, i32 3, i32 0, i32 8, i32 6, i32 3, i32 4, i32 6, i32 5, i32 6, i32 7, i32 4, i32 8, i32 1, i32 3, i32 9, i32 1, i32 9, i32 1, i32 2, i32 3, i32 1, i32 6, i32 2, i32 8, i32 2, i32 4, i32 5, i32 8, i32 6, i32 1, i32 7, i32 8, i32 6, i32 6, i32 4, i32 5, i32 8, i32 3, i32 5, i32 9, i32 1, i32 2, i32 4, i32 5, i32 6, i32 6, i32 5, i32 2, i32 9, i32 4, i32 7, i32 6, i32 5, i32 4, i32 5, i32 6, i32 8, i32 2, i32 8, i32 4, i32 8, i32 9, i32 1, i32 2, i32 8, i32 8, i32 3, i32 1, i32 4, i32 2, i32 6, i32 0, i32 7, i32 6, i32 9, i32 0, i32 0, i32 4, i32 2, i32 2, i32 4, i32 2, i32 1, i32 9, i32 0, i32 2, i32 2, i32 6, i32 7, i32 1, i32 0, i32 5, i32 5, i32 6, i32 2, i32 6, i32 3, i32 2, i32 1, i32 1, i32 1, i32 1, i32 1, i32 0, i32 9, i32 3, i32 7, i32 0, i32 5, i32 4, i32 4, i32 2, i32 1, i32 7, i32 5, i32 0, i32 6, i32 9, i32 4, i32 1, i32 6, i32 5, i32 8, i32 9, i32 6, i32 0, i32 4, i32 0, i32 8, i32 0, i32 7, i32 1, i32 9, i32 8, i32 4, i32 0, i32 3, i32 8, i32 5, i32 0, i32 9, i32 6, i32 2, i32 4, i32 5, i32 5, i32 4, i32 4, i32 4, i32 3, i32 6, i32 2, i32 9, i32 8, i32 1, i32 2, i32 3, i32 0, i32 9, i32 8, i32 7, i32 8, i32 7, i32 9, i32 9, i32 2, i32 7, i32 2, i32 4, i32 4, i32 2, i32 8, i32 4, i32 9, i32 0, i32 9, i32 1, i32 8, i32 8, i32 8, i32 4, i32 5, i32 8, i32 0, i32 1, i32 5, i32 6, i32 1, i32 6, i32 6, i32 0, i32 9, i32 7, i32 9, i32 1, i32 9, i32 1, i32 3, i32 3, i32 8, i32 7, i32 5, i32 4, i32 9, i32 9, i32 2, i32 0, i32 0, i32 5, i32 2, i32 4, i32 0, i32 6, i32 3, i32 6, i32 8, i32 9, i32 9, i32 1, i32 2, i32 5, i32 6, i32 0, i32 7, i32 1, i32 7, i32 6, i32 0, i32 6, i32 0, i32 5, i32 8, i32 8, i32 6, i32 1, i32 1, i32 6, i32 4, i32 6, i32 7, i32 1, i32 0, i32 9, i32 4, i32 0, i32 5, i32 0, i32 7, i32 7, i32 5, i32 4, i32 1, i32 0, i32 0, i32 2, i32 2, i32 5, i32 6, i32 9, i32 8, i32 3, i32 1, i32 5, i32 5, i32 2, i32 0, i32 0, i32 0, i32 5, i32 5, i32 9, i32 3, i32 5, i32 7, i32 2, i32 9, i32 7, i32 2, i32 5, i32 7, i32 1, i32 6, i32 3, i32 6, i32 2, i32 6, i32 9, i32 5, i32 6, i32 1, i32 8, i32 8, i32 2, i32 6, i32 7, i32 0, i32 4, i32 2, i32 8, i32 2, i32 5, i32 2, i32 4, i32 8, i32 3, i32 6, i32 0, i32 0, i32 8, i32 2, i32 3, i32 2, i32 5, i32 7, i32 5, i32 3, i32 0, i32 4, i32 2, i32 0, i32 7, i32 5, i32 2, i32 9, i32 6, i32 3, i32 4, i32 5, i32 0]
@.str = [51 x i8] c"The largest product of 13 adjacent digits is %ld.\0A\00"
define i32 @main() {
br label %3
1: ; preds = %3
%2 = tail call i32 @printf(i8* getelementptr inbounds ([51 x i8], [51 x i8]* @.str, i64 0, i64 0), i64 %69)
ret i32 0
3: ; preds = %0, %3
%4 = phi i32 [ 7, %0 ], [ %10, %3 ]
%5 = phi i64 [ 0, %0 ], [ %8, %3 ]
%6 = phi i64 [ 0, %0 ], [ %69, %3 ]
%7 = sext i32 %4 to i64
%8 = add nuw nsw i64 %5, 1
%9 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %8
%10 = load i32, i32* %9
%11 = sext i32 %10 to i64
%12 = mul nsw i64 %7, %11
%13 = add nuw nsw i64 %5, 2
%14 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %13
%15 = load i32, i32* %14
%16 = sext i32 %15 to i64
%17 = mul nsw i64 %12, %16
%18 = add nuw nsw i64 %5, 3
%19 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %18
%20 = load i32, i32* %19
%21 = sext i32 %20 to i64
%22 = mul nsw i64 %17, %21
%23 = add nuw nsw i64 %5, 4
%24 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %23
%25 = load i32, i32* %24
%26 = sext i32 %25 to i64
%27 = mul nsw i64 %22, %26
%28 = add nuw nsw i64 %5, 5
%29 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %28
%30 = load i32, i32* %29
%31 = sext i32 %30 to i64
%32 = mul nsw i64 %27, %31
%33 = add nuw nsw i64 %5, 6
%34 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %33
%35 = load i32, i32* %34
%36 = sext i32 %35 to i64
%37 = mul nsw i64 %32, %36
%38 = add nuw nsw i64 %5, 7
%39 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %38
%40 = load i32, i32* %39
%41 = sext i32 %40 to i64
%42 = mul nsw i64 %37, %41
%43 = add nuw nsw i64 %5, 8
%44 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %43
%45 = load i32, i32* %44
%46 = sext i32 %45 to i64
%47 = mul nsw i64 %42, %46
%48 = add nuw nsw i64 %5, 9
%49 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %48
%50 = load i32, i32* %49
%51 = sext i32 %50 to i64
%52 = mul nsw i64 %47, %51
%53 = add nuw nsw i64 %5, 10
%54 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %53
%55 = load i32, i32* %54
%56 = sext i32 %55 to i64
%57 = mul nsw i64 %52, %56
%58 = add nuw nsw i64 %5, 11
%59 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %58
%60 = load i32, i32* %59
%61 = sext i32 %60 to i64
%62 = mul nsw i64 %57, %61
%63 = add nuw nsw i64 %5, 12
%64 = getelementptr inbounds [1000 x i32], [1000 x i32]* @__const.main.data, i64 0, i64 %63
%65 = load i32, i32* %64
%66 = sext i32 %65 to i64
%67 = mul nsw i64 %62, %66
%68 = icmp sgt i64 %67, %6
%69 = select i1 %68, i64 %67, i64 %6
%70 = icmp eq i64 %8, 988
br i1 %70, label %1, label %3
}