#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 */
double pow(double, int);
int /*<<< orphan*/ printf(char *, double, double, double, double);
int main() {
  int nx = 41;
  int nt = 120;
  int c = 1;
  int pasos = 500;
  double dx = 2. / (nx - 1.);
  double sigma = .0009;
  double nu = 0.01;
  double dt = sigma * dx * dx / nu;
  double x[nx];
  double y[nx];
  int i;
  int j;
  for (i = 0; i < nx; i += 1) {
    x[i] = i * dx;
    y[i] = i * dx;
  }
  double u[nx][nx];
  double v[nx][nx];
  for (i = 0; i < nx; i += 1) {
    for (j = 0; j < nx; j += 1) {
      if (((i >= 0.5) && (i <= dx)) && ((j >= 0.5) && (j <= dx))) {
        u[i][j] = 2;
        v[i][j] = 2;
      } else {
        u[i][j] = 1;
        v[i][j] = 1;
      }
    }
  }
  int paso;
  for (paso = 0; paso < pasos; paso += 1) {
    for (i = 0; i < nx; i += 1) {
      for (j = 0; j < nx; j += 1) {
        if (i == 0 || i == nx - 1 || j == 0 || j == nx - 1) {
          u[i][j] = 1;
          v[i][j] = 1;
        } else {
          u[i][j] =
              u[i][j] - dt / dx * u[i][j] * (u[i][j] - u[i][j - 1]) -
              dt / dx * u[i][j] * (u[i][j] - u[i - 1][j]) +
              nu * dt / pow(dx, 2.) *
                  (u[i][j + 1] - 2 * u[i][j] + u[i][j - 1]) +
              nu * dt / pow(dx, 2.) * (u[i + 1][j] - 2 * u[i][j] + u[i - 1][j]);
          v[i][j] =
              v[i][j] - dt / dx * v[i][j] * (v[i][j] - v[i][j - 1]) -
              dt / dx * v[i][j] * (v[i][j] - v[i - 1][j]) +
              nu * dt / pow(dx, 2.) *
                  (v[i][j + 1] - 2 * v[i][j] + v[i][j - 1]) +
              nu * dt / pow(dx, 2.) * (v[i + 1][j] - 2 * v[i][j] + v[i - 1][j]);
        }
        printf("%g,%g,%g,%g", x[i], y[j], u[i][j], v[i][j]);
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0xf0,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x29,-0x8(%rbp)
movl   $0x78,-0xc(%rbp)
movl   $0x1,-0x10(%rbp)
movl   $0x1f4,-0x14(%rbp)
cvtsi2sdl -0x8(%rbp),%xmm1
movsd  0xea5(%rip),%xmm0
addsd  %xmm0,%xmm1
movsd  0xea1(%rip),%xmm0
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x20(%rbp)
movabs $0x3f4d7dbf487fcb92,%rax
7d 4d 3f
mov    %rax,-0x28(%rbp)
movabs $0x3f847ae147ae147b,%rax
7a 84 3f
mov    %rax,-0x30(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  -0x20(%rbp),%xmm1
mulsd  %xmm1,%xmm0
mulsd  %xmm1,%xmm0
movsd  -0x30(%rbp),%xmm1
divsd  %xmm1,%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x8(%rbp),%eax
mov    %rsp,%rcx
mov    %rcx,-0x40(%rbp)
lea    0xf(,%rax,8),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x90(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x48(%rbp)
mov    -0x8(%rbp),%eax
lea    0xf(,%rax,8),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0x88(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x50(%rbp)
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    124e <main+0x12e>
mov    -0x88(%rbp),%rax
mov    -0x90(%rbp),%rcx
cvtsi2sdl -0x54(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
movslq -0x54(%rbp),%rdx
movsd  %xmm0,(%rcx,%rdx,8)
cvtsi2sdl -0x54(%rbp),%xmm0
mulsd  -0x20(%rbp),%xmm0
movslq -0x54(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1200 <main+0xe0>
mov    -0x8(%rbp),%eax
mov    %rax,-0xb0(%rbp)
mov    %rax,%rcx
imul   %rcx,%rcx
lea    0xf(,%rcx,8),%rdx
and    $0xfffffffffffffff0,%rdx
mov    %rsp,%rcx
sub    %rdx,%rcx
mov    %rcx,-0xa8(%rbp)
mov    %rcx,%rsp
mov    %rax,-0x60(%rbp)
mov    %rax,-0x68(%rbp)
mov    -0x8(%rbp),%eax
mov    %eax,%ecx
mov    %rcx,%rax
mov    %rax,-0xa0(%rbp)
mov    %rcx,%rdx
imul   %rdx,%rdx
lea    0xf(,%rdx,8),%rsi
and    $0xfffffffffffffff0,%rsi
mov    %rsp,%rdx
sub    %rsi,%rdx
mov    %rdx,-0x98(%rbp)
mov    %rdx,%rsp
mov    %rcx,-0x70(%rbp)
mov    %rax,-0x78(%rbp)
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    141c <main+0x2fc>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1409 <main+0x2e9>
cvtsi2sdl -0x54(%rbp),%xmm0
movsd  0xd28(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     139a <main+0x27a>
cvtsi2sdl -0x54(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jb     139a <main+0x27a>
cvtsi2sdl -0x58(%rbp),%xmm0
movsd  0xcfd(%rip),%xmm1
ucomisd %xmm1,%xmm0
jb     139a <main+0x27a>
cvtsi2sdl -0x58(%rbp),%xmm1
movsd  -0x20(%rbp),%xmm0
ucomisd %xmm1,%xmm0
jb     139a <main+0x27a>
mov    -0x98(%rbp),%rax
mov    -0xa0(%rbp),%rdx
mov    -0xa8(%rbp),%rcx
mov    -0xb0(%rbp),%rdi
movslq -0x54(%rbp),%rsi
imul   %rdi,%rsi
shl    $0x3,%rsi
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  0xc98(%rip),%xmm0
movsd  %xmm0,(%rcx,%rsi,8)
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
movsd  0xc78(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
jmp    13f6 <main+0x2d6>
mov    -0x98(%rbp),%rax
mov    -0xa0(%rbp),%rdx
mov    -0xa8(%rbp),%rcx
mov    -0xb0(%rbp),%rdi
movslq -0x54(%rbp),%rsi
imul   %rdi,%rsi
shl    $0x3,%rsi
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  0xc3f(%rip),%xmm0
movsd  %xmm0,(%rcx,%rsi,8)
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
movsd  0xc1f(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
jmp    13fb <main+0x2db>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    12d7 <main+0x1b7>
jmp    140e <main+0x2ee>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    12c4 <main+0x1a4>
movl   $0x0,-0x7c(%rbp)
mov    -0x7c(%rbp),%eax
cmp    -0x14(%rbp),%eax
jge    1af3 <main+0x9d3>
movl   $0x0,-0x54(%rbp)
mov    -0x54(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1ae0 <main+0x9c0>
movl   $0x0,-0x58(%rbp)
mov    -0x58(%rbp),%eax
cmp    -0x8(%rbp),%eax
jge    1acd <main+0x9ad>
cmpl   $0x0,-0x54(%rbp)
je     148b <main+0x36b>
mov    -0x54(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
je     148b <main+0x36b>
cmpl   $0x0,-0x58(%rbp)
je     148b <main+0x36b>
mov    -0x58(%rbp),%eax
mov    -0x8(%rbp),%ecx
sub    $0x1,%ecx
cmp    %ecx,%eax
jne    14ec <main+0x3cc>
mov    -0x98(%rbp),%rax
mov    -0xa0(%rbp),%rdx
mov    -0xa8(%rbp),%rcx
mov    -0xb0(%rbp),%rdi
movslq -0x54(%rbp),%rsi
imul   %rdi,%rsi
shl    $0x3,%rsi
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  0xb4e(%rip),%xmm0
movsd  %xmm0,(%rcx,%rsi,8)
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
movsd  0xb2e(%rip),%xmm0
movsd  %xmm0,(%rax,%rcx,8)
jmp    1a45 <main+0x925>
mov    -0xa8(%rbp),%rax
mov    -0xb0(%rbp),%rdx
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm0
movsd  -0x38(%rbp),%xmm1
divsd  -0x20(%rbp),%xmm1
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
mulsd  (%rcx,%rsi,8),%xmm1
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
mov    -0x58(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
subsd  (%rcx,%rsi,8),%xmm2
movq   %xmm1,%rcx
movabs $0x8000000000000000,%rsi
xor    %rsi,%rcx
movq   %rcx,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
mulsd  (%rcx,%rsi,8),%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
mov    -0x54(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movsd  -0xf0(%rbp),%xmm1
ff
mov    -0xb0(%rbp),%rdx
mov    -0xa8(%rbp),%rax
movaps %xmm0,%xmm2
movsd  -0xe8(%rbp),%xmm0
ff
divsd  %xmm2,%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
mov    -0x58(%rbp),%esi
add    $0x1,%esi
movslq %esi,%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movsd  -0xe0(%rbp),%xmm1
ff
mov    -0xb0(%rbp),%rdi
mov    -0xa8(%rbp),%rcx
mov    -0xa0(%rbp),%rdx
mov    -0x98(%rbp),%rax
movaps %xmm0,%xmm2
movsd  -0xd8(%rbp),%xmm0
ff
divsd  %xmm2,%xmm0
mov    -0x54(%rbp),%esi
add    $0x1,%esi
movslq %esi,%r8
imul   %rdi,%r8
shl    $0x3,%r8
mov    %rcx,%rsi
add    %r8,%rsi
movslq -0x58(%rbp),%r8
movsd  (%rsi,%r8,8),%xmm2
movslq -0x54(%rbp),%r8
imul   %rdi,%r8
shl    $0x3,%r8
mov    %rcx,%rsi
add    %r8,%rsi
movslq -0x58(%rbp),%r8
movsd  (%rsi,%r8,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mov    -0x54(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%r8
imul   %rdi,%r8
shl    $0x3,%r8
mov    %rcx,%rsi
add    %r8,%rsi
movslq -0x58(%rbp),%r8
addsd  (%rsi,%r8,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdi,%rsi
shl    $0x3,%rsi
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  %xmm0,(%rcx,%rsi,8)
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm0
movsd  -0x38(%rbp),%xmm1
divsd  -0x20(%rbp),%xmm1
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
mulsd  (%rcx,%rsi,8),%xmm1
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
mov    -0x58(%rbp),%esi
sub    $0x1,%esi
movslq %esi,%rsi
subsd  (%rcx,%rsi,8),%xmm2
movq   %xmm1,%rcx
movabs $0x8000000000000000,%rsi
xor    %rsi,%rcx
movq   %rcx,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
movsd  -0x38(%rbp),%xmm0
divsd  -0x20(%rbp),%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
mulsd  (%rcx,%rsi,8),%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
mov    -0x54(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
subsd  (%rax,%rcx,8),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movsd  -0xd0(%rbp),%xmm1
ff
mov    -0xa0(%rbp),%rdx
mov    -0x98(%rbp),%rax
movaps %xmm0,%xmm2
movsd  -0xc8(%rbp),%xmm0
ff
divsd  %xmm2,%xmm0
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
mov    -0x58(%rbp),%esi
add    $0x1,%esi
movslq %esi,%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    -0x58(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rcx
addsd  (%rax,%rcx,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
mulsd  -0x38(%rbp),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x20(%rbp),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movsd  -0xc0(%rbp),%xmm1
ff
mov    -0xa0(%rbp),%rdx
mov    -0x98(%rbp),%rax
movaps %xmm0,%xmm2
movsd  -0xb8(%rbp),%xmm0
ff
divsd  %xmm2,%xmm0
mov    -0x54(%rbp),%ecx
add    $0x1,%ecx
movslq %ecx,%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm3
addsd  %xmm3,%xmm3
subsd  %xmm3,%xmm2
mov    -0x54(%rbp),%ecx
sub    $0x1,%ecx
movslq %ecx,%rsi
imul   %rdx,%rsi
shl    $0x3,%rsi
mov    %rax,%rcx
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
addsd  (%rcx,%rsi,8),%xmm2
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x98(%rbp),%rax
mov    -0xa0(%rbp),%rdx
mov    -0xa8(%rbp),%rcx
mov    -0xb0(%rbp),%rdi
mov    -0x88(%rbp),%rsi
mov    -0x90(%rbp),%r8
movslq -0x54(%rbp),%r9
movsd  (%r8,%r9,8),%xmm0
movslq -0x58(%rbp),%r8
movsd  (%rsi,%r8,8),%xmm1
movslq -0x54(%rbp),%rsi
imul   %rdi,%rsi
shl    $0x3,%rsi
add    %rsi,%rcx
movslq -0x58(%rbp),%rsi
movsd  (%rcx,%rsi,8),%xmm2
movslq -0x54(%rbp),%rcx
imul   %rdx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
movslq -0x58(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm3
lea    0x566(%rip),%rdi
call   1030 <printf@plt>
mov    -0x58(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x58(%rbp)
jmp    1449 <main+0x329>
jmp    1ad2 <main+0x9b2>
mov    -0x54(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x54(%rbp)
jmp    1436 <main+0x316>
jmp    1ae5 <main+0x9c5>
mov    -0x7c(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x7c(%rbp)
jmp    1423 <main+0x303>
movl   $0x0,-0x4(%rbp)
mov    -0x40(%rbp),%rax
mov    %rax,%rsp
mov    -0x4(%rbp),%eax
mov    %rbp,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x6c48,%rsp
xorps  %xmm0,%xmm0
movhps 0xec5(%rip),%xmm0
movaps %xmm0,0x1e0(%rsp)
movaps %xmm0,0x90(%rsp)
movaps 0xebe(%rip),%xmm0
movaps %xmm0,0x1f0(%rsp)
movaps %xmm0,0xa0(%rsp)
movaps 0xeb7(%rip),%xmm0
movaps %xmm0,0x200(%rsp)
movaps %xmm0,0xb0(%rsp)
movaps 0xeb0(%rip),%xmm0
movaps %xmm0,0x210(%rsp)
movaps %xmm0,0xc0(%rsp)
movaps 0xea9(%rip),%xmm0
movaps %xmm0,0x220(%rsp)
movaps %xmm0,0xd0(%rsp)
movaps 0xea2(%rip),%xmm0
movaps %xmm0,0x230(%rsp)
movaps %xmm0,0xe0(%rsp)
movaps 0xe9b(%rip),%xmm0
movaps %xmm0,0x240(%rsp)
movaps %xmm0,0xf0(%rsp)
movaps 0xe94(%rip),%xmm0
movaps %xmm0,0x250(%rsp)
movaps %xmm0,0x100(%rsp)
movaps 0xe8d(%rip),%xmm0
movaps %xmm0,0x260(%rsp)
movaps %xmm0,0x110(%rsp)
movaps 0xe86(%rip),%xmm0
movaps %xmm0,0x270(%rsp)
movaps %xmm0,0x120(%rsp)
movaps 0xe7f(%rip),%xmm0
movaps %xmm0,0x280(%rsp)
movaps %xmm0,0x130(%rsp)
movaps 0xe78(%rip),%xmm0
movaps %xmm0,0x290(%rsp)
movaps %xmm0,0x140(%rsp)
movaps 0xe71(%rip),%xmm0
movaps %xmm0,0x2a0(%rsp)
movaps %xmm0,0x150(%rsp)
movaps 0xe6a(%rip),%xmm0
movaps %xmm0,0x2b0(%rsp)
movaps %xmm0,0x160(%rsp)
movaps 0xe63(%rip),%xmm0
movaps %xmm0,0x2c0(%rsp)
movaps %xmm0,0x170(%rsp)
movaps 0xe5c(%rip),%xmm0
movaps %xmm0,0x2d0(%rsp)
movaps %xmm0,0x180(%rsp)
movaps 0xe55(%rip),%xmm0
movaps %xmm0,0x2e0(%rsp)
movaps %xmm0,0x190(%rsp)
movaps 0xe4e(%rip),%xmm0
movaps %xmm0,0x2f0(%rsp)
movaps %xmm0,0x1a0(%rsp)
movaps 0xe47(%rip),%xmm0
movaps %xmm0,0x300(%rsp)
movaps %xmm0,0x1b0(%rsp)
movapd 0xe3f(%rip),%xmm0
movapd %xmm0,0x310(%rsp)
movapd %xmm0,0x1c0(%rsp)
movabs $0x4000000000000000,%rax
mov    %rax,0x320(%rsp)
mov    %rax,0x1d0(%rsp)
mov    $0x140,%eax
movapd 0xe16(%rip),%xmm3
movabs $0x3ff0000000000000,%r12
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movupd %xmm3,0x3680(%rsp,%rax,1)
movupd %xmm3,0x1f0(%rsp,%rax,1)
movupd %xmm3,0x3690(%rsp,%rax,1)
movupd %xmm3,0x200(%rsp,%rax,1)
movupd %xmm3,0x36a0(%rsp,%rax,1)
movupd %xmm3,0x210(%rsp,%rax,1)
movupd %xmm3,0x36b0(%rsp,%rax,1)
movupd %xmm3,0x220(%rsp,%rax,1)
movupd %xmm3,0x36c0(%rsp,%rax,1)
movupd %xmm3,0x230(%rsp,%rax,1)
movupd %xmm3,0x36d0(%rsp,%rax,1)
movupd %xmm3,0x240(%rsp,%rax,1)
movupd %xmm3,0x36e0(%rsp,%rax,1)
movupd %xmm3,0x250(%rsp,%rax,1)
movupd %xmm3,0x36f0(%rsp,%rax,1)
movupd %xmm3,0x260(%rsp,%rax,1)
movupd %xmm3,0x3700(%rsp,%rax,1)
movupd %xmm3,0x270(%rsp,%rax,1)
movupd %xmm3,0x3710(%rsp,%rax,1)
movupd %xmm3,0x280(%rsp,%rax,1)
movupd %xmm3,0x3720(%rsp,%rax,1)
movupd %xmm3,0x290(%rsp,%rax,1)
movupd %xmm3,0x3730(%rsp,%rax,1)
movupd %xmm3,0x2a0(%rsp,%rax,1)
movupd %xmm3,0x3740(%rsp,%rax,1)
movupd %xmm3,0x2b0(%rsp,%rax,1)
movupd %xmm3,0x3750(%rsp,%rax,1)
movupd %xmm3,0x2c0(%rsp,%rax,1)
movupd %xmm3,0x3760(%rsp,%rax,1)
movupd %xmm3,0x2d0(%rsp,%rax,1)
movupd %xmm3,0x3770(%rsp,%rax,1)
movupd %xmm3,0x2e0(%rsp,%rax,1)
movupd %xmm3,0x3780(%rsp,%rax,1)
movupd %xmm3,0x2f0(%rsp,%rax,1)
movupd %xmm3,0x3790(%rsp,%rax,1)
movupd %xmm3,0x300(%rsp,%rax,1)
movupd %xmm3,0x37a0(%rsp,%rax,1)
movupd %xmm3,0x310(%rsp,%rax,1)
movupd %xmm3,0x37b0(%rsp,%rax,1)
movupd %xmm3,0x320(%rsp,%rax,1)
mov    %r12,0x37c0(%rsp,%rax,1)
mov    %r12,0x330(%rsp,%rax,1)
add    $0x148,%rax
cmp    $0x35c8,%rax
jne    1340 <main+0x220>
xor    %eax,%eax
jmp    14e3 <main+0x3c3>
xchg   %ax,%ax
mov    0x40(%rsp),%rax
add    $0x1,%eax
cmp    $0x1f4,%eax
je     172b <main+0x60b>
mov    %rax,0x40(%rsp)
xor    %ebx,%ebx
jmp    14fe <main+0x3de>
nopl   0x0(%rax)
mov    0x48(%rsp),%rax
mov    %rax,%rbx
cmp    $0x29,%rax
je     14d0 <main+0x3b0>
imul   $0x148,%rbx,%rax
lea    (%rsp,%rax,1),%rbp
add    $0x37c0,%rbp
lea    0x1(%rbx),%rcx
mov    %rcx,0x48(%rsp)
lea    (%rsp,%rax,1),%r15
add    $0x330,%r15
xor    %r13d,%r13d
jmp    1579 <main+0x459>
nopl   0x0(%rax)
mov    %r12,0x0(%rbp,%r13,8)
mov    %r12,(%r15,%r13,8)
lea    0x1(%r13),%r14
movsd  0x1e0(%rsp,%rbx,8),%xmm0
movsd  0x90(%rsp,%r13,8),%xmm1
movapd %xmm3,%xmm2
unpckhpd %xmm3,%xmm2
lea    0xc21(%rip),%rdi
call   1030 <printf@plt>
mov    %r14,%r13
cmp    $0x29,%r14
movapd 0xbcd(%rip),%xmm3
je     14f0 <main+0x3d0>
test   %rbx,%rbx
je     1530 <main+0x410>
cmp    $0x28,%rbx
je     1530 <main+0x410>
test   %r13,%r13
je     1530 <main+0x410>
cmp    $0x28,%r13
je     1530 <main+0x410>
movsd  -0x8(%rbp,%r13,8),%xmm0
movaps %xmm0,0x10(%rsp)
movsd  0x0(%rbp,%r13,8),%xmm0
movaps %xmm0,(%rsp)
movsd  -0x148(%rbp,%r13,8),%xmm0
fe ff ff
movaps %xmm0,0x30(%rsp)
movsd  0xa43(%rip),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movaps %xmm0,0x70(%rsp)
lea    0x1(%r13),%r14
movsd  0x8(%rbp,%r13,8),%xmm0
movaps %xmm0,0x20(%rsp)
movsd  0xa1c(%rip),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
movaps %xmm0,0x80(%rsp)
movsd  -0x8(%r15,%r13,8),%xmm1
unpcklpd 0x10(%rsp),%xmm1
movapd %xmm1,0x60(%rsp)
movsd  (%r15,%r13,8),%xmm2
unpcklpd (%rsp),%xmm2
movapd %xmm2,(%rsp)
movapd %xmm2,%xmm0
subpd  %xmm1,%xmm0
movapd %xmm2,%xmm1
mulpd  0xb23(%rip),%xmm1
mulpd  %xmm1,%xmm0
addpd  %xmm2,%xmm0
movsd  -0x148(%r15,%r13,8),%xmm3
fe ff ff
unpcklpd 0x30(%rsp),%xmm3
movapd %xmm3,0x30(%rsp)
movapd %xmm2,%xmm4
subpd  %xmm3,%xmm4
mulpd  %xmm1,%xmm4
addpd  %xmm0,%xmm4
movapd %xmm4,0x50(%rsp)
movsd  0x148(%rbp,%r13,8),%xmm0
movaps %xmm0,0x10(%rsp)
movsd  0x988(%rip),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
unpcklpd 0x70(%rsp),%xmm0
movapd 0xad0(%rip),%xmm1
divpd  %xmm0,%xmm1
movsd  0x8(%r15,%r13,8),%xmm2
unpcklpd 0x20(%rsp),%xmm2
movapd (%rsp),%xmm0
mulpd  0xac2(%rip),%xmm0
movapd %xmm0,(%rsp)
addpd  %xmm0,%xmm2
addpd  0x60(%rsp),%xmm2
mulpd  %xmm1,%xmm2
addpd  0x50(%rsp),%xmm2
movapd %xmm2,0x20(%rsp)
movsd  0x92b(%rip),%xmm0
mov    $0x2,%edi
call   1040 <pow@plt>
unpcklpd 0x80(%rsp),%xmm0
movapd 0xa70(%rip),%xmm1
divpd  %xmm0,%xmm1
movsd  0x148(%r15,%r13,8),%xmm3
unpcklpd 0x10(%rsp),%xmm3
addpd  (%rsp),%xmm3
addpd  0x30(%rsp),%xmm3
mulpd  %xmm1,%xmm3
addpd  0x20(%rsp),%xmm3
movhpd %xmm3,0x0(%rbp,%r13,8)
movlpd %xmm3,(%r15,%r13,8)
jmp    153d <main+0x41d>
xor    %eax,%eax
add    $0x6c48,%rsp
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
ret

LLVM IR (-O0):
@.str = [12 x i8] c"%g,%g,%g,%g\00"
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca i32
%5 = alloca i32
%6 = alloca double
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca i8*
%11 = alloca i64
%12 = alloca i64
%13 = alloca i32
%14 = alloca i32
%15 = alloca i64
%16 = alloca i64
%17 = alloca i64
%18 = alloca i64
%19 = alloca i32
store i32 0, i32* %1
store i32 41, i32* %2
store i32 120, i32* %3
store i32 1, i32* %4
store i32 500, i32* %5
%20 = load i32, i32* %2
%21 = sitofp i32 %20 to double
%22 = fsub double %21, 1.000000e+00
%23 = fdiv double 2.000000e+00, %22
store double %23, double* %6
store double 9.000000e-04, double* %7
store double 1.000000e-02, double* %8
%24 = load double, double* %7
%25 = load double, double* %6
%26 = fmul double %24, %25
%27 = load double, double* %6
%28 = fmul double %26, %27
%29 = load double, double* %8
%30 = fdiv double %28, %29
store double %30, double* %9
%31 = load i32, i32* %2
%32 = zext i32 %31 to i64
%33 = call i8* @llvm.stacksave()
store i8* %33, i8** %10
%34 = alloca double, i64 %32
store i64 %32, i64* %11
%35 = load i32, i32* %2
%36 = zext i32 %35 to i64
%37 = alloca double, i64 %36
store i64 %36, i64* %12
store i32 0, i32* %13
br label %38
38: ; preds = %57, %0
%39 = load i32, i32* %13
%40 = load i32, i32* %2
%41 = icmp slt i32 %39, %40
br i1 %41, label %42, label %60
42: ; preds = %38
%43 = load i32, i32* %13
%44 = sitofp i32 %43 to double
%45 = load double, double* %6
%46 = fmul double %44, %45
%47 = load i32, i32* %13
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds double, double* %34, i64 %48
store double %46, double* %49
%50 = load i32, i32* %13
%51 = sitofp i32 %50 to double
%52 = load double, double* %6
%53 = fmul double %51, %52
%54 = load i32, i32* %13
%55 = sext i32 %54 to i64
%56 = getelementptr inbounds double, double* %37, i64 %55
store double %53, double* %56
br label %57
57: ; preds = %42
%58 = load i32, i32* %13
%59 = add nsw i32 %58, 1
store i32 %59, i32* %13
br label %38
60: ; preds = %38
%61 = load i32, i32* %2
%62 = zext i32 %61 to i64
%63 = load i32, i32* %2
%64 = zext i32 %63 to i64
%65 = mul nuw i64 %62, %64
%66 = alloca double, i64 %65
store i64 %62, i64* %15
store i64 %64, i64* %16
%67 = load i32, i32* %2
%68 = zext i32 %67 to i64
%69 = load i32, i32* %2
%70 = zext i32 %69 to i64
%71 = mul nuw i64 %68, %70
%72 = alloca double, i64 %71
store i64 %68, i64* %17
store i64 %70, i64* %18
store i32 0, i32* %13
br label %73
73: ; preds = %135, %60
%74 = load i32, i32* %13
%75 = load i32, i32* %2
%76 = icmp slt i32 %74, %75
br i1 %76, label %77, label %138
77: ; preds = %73
store i32 0, i32* %14
br label %78
78: ; preds = %131, %77
%79 = load i32, i32* %14
%80 = load i32, i32* %2
%81 = icmp slt i32 %79, %80
br i1 %81, label %82, label %134
82: ; preds = %78
%83 = load i32, i32* %13
%84 = sitofp i32 %83 to double
%85 = fcmp oge double %84, 5.000000e-01
br i1 %85, label %86, label %115
86: ; preds = %82
%87 = load i32, i32* %13
%88 = sitofp i32 %87 to double
%89 = load double, double* %6
%90 = fcmp ole double %88, %89
br i1 %90, label %91, label %115
91: ; preds = %86
%92 = load i32, i32* %14
%93 = sitofp i32 %92 to double
%94 = fcmp oge double %93, 5.000000e-01
br i1 %94, label %95, label %115
95: ; preds = %91
%96 = load i32, i32* %14
%97 = sitofp i32 %96 to double
%98 = load double, double* %6
%99 = fcmp ole double %97, %98
br i1 %99, label %100, label %115
100: ; preds = %95
%101 = load i32, i32* %13
%102 = sext i32 %101 to i64
%103 = mul nsw i64 %102, %64
%104 = getelementptr inbounds double, double* %66, i64 %103
%105 = load i32, i32* %14
%106 = sext i32 %105 to i64
%107 = getelementptr inbounds double, double* %104, i64 %106
store double 2.000000e+00, double* %107
%108 = load i32, i32* %13
%109 = sext i32 %108 to i64
%110 = mul nsw i64 %109, %70
%111 = getelementptr inbounds double, double* %72, i64 %110
%112 = load i32, i32* %14
%113 = sext i32 %112 to i64
%114 = getelementptr inbounds double, double* %111, i64 %113
store double 2.000000e+00, double* %114
br label %130
115: ; preds = %95, %91, %86, %82
%116 = load i32, i32* %13
%117 = sext i32 %116 to i64
%118 = mul nsw i64 %117, %64
%119 = getelementptr inbounds double, double* %66, i64 %118
%120 = load i32, i32* %14
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds double, double* %119, i64 %121
store double 1.000000e+00, double* %122
%123 = load i32, i32* %13
%124 = sext i32 %123 to i64
%125 = mul nsw i64 %124, %70
%126 = getelementptr inbounds double, double* %72, i64 %125
%127 = load i32, i32* %14
%128 = sext i32 %127 to i64
%129 = getelementptr inbounds double, double* %126, i64 %128
store double 1.000000e+00, double* %129
br label %130
130: ; preds = %115, %100
br label %131
131: ; preds = %130
%132 = load i32, i32* %14
%133 = add nsw i32 %132, 1
store i32 %133, i32* %14
br label %78
134: ; preds = %78
br label %135
135: ; preds = %134
%136 = load i32, i32* %13
%137 = add nsw i32 %136, 1
store i32 %137, i32* %13
br label %73
138: ; preds = %73
store i32 0, i32* %19
br label %139
139: ; preds = %517, %138
%140 = load i32, i32* %19
%141 = load i32, i32* %5
%142 = icmp slt i32 %140, %141
br i1 %142, label %143, label %520
143: ; preds = %139
store i32 0, i32* %13
br label %144
144: ; preds = %513, %143
%145 = load i32, i32* %13
%146 = load i32, i32* %2
%147 = icmp slt i32 %145, %146
br i1 %147, label %148, label %516
148: ; preds = %144
store i32 0, i32* %14
br label %149
149: ; preds = %509, %148
%150 = load i32, i32* %14
%151 = load i32, i32* %2
%152 = icmp slt i32 %150, %151
br i1 %152, label %153, label %512
153: ; preds = %149
%154 = load i32, i32* %13
%155 = icmp eq i32 %154, 0
br i1 %155, label %169, label %156
156: ; preds = %153
%157 = load i32, i32* %13
%158 = load i32, i32* %2
%159 = sub nsw i32 %158, 1
%160 = icmp eq i32 %157, %159
br i1 %160, label %169, label %161
161: ; preds = %156
%162 = load i32, i32* %14
%163 = icmp eq i32 %162, 0
br i1 %163, label %169, label %164
164: ; preds = %161
%165 = load i32, i32* %14
%166 = load i32, i32* %2
%167 = sub nsw i32 %166, 1
%168 = icmp eq i32 %165, %167
br i1 %168, label %169, label %184
169: ; preds = %164, %161, %156, %153
%170 = load i32, i32* %13
%171 = sext i32 %170 to i64
%172 = mul nsw i64 %171, %64
%173 = getelementptr inbounds double, double* %66, i64 %172
%174 = load i32, i32* %14
%175 = sext i32 %174 to i64
%176 = getelementptr inbounds double, double* %173, i64 %175
store double 1.000000e+00, double* %176
%177 = load i32, i32* %13
%178 = sext i32 %177 to i64
%179 = mul nsw i64 %178, %70
%180 = getelementptr inbounds double, double* %72, i64 %179
%181 = load i32, i32* %14
%182 = sext i32 %181 to i64
%183 = getelementptr inbounds double, double* %180, i64 %182
store double 1.000000e+00, double* %183
br label %483
184: ; preds = %164
%185 = load i32, i32* %13
%186 = sext i32 %185 to i64
%187 = mul nsw i64 %186, %64
%188 = getelementptr inbounds double, double* %66, i64 %187
%189 = load i32, i32* %14
%190 = sext i32 %189 to i64
%191 = getelementptr inbounds double, double* %188, i64 %190
%192 = load double, double* %191
%193 = load double, double* %9
%194 = load double, double* %6
%195 = fdiv double %193, %194
%196 = load i32, i32* %13
%197 = sext i32 %196 to i64
%198 = mul nsw i64 %197, %64
%199 = getelementptr inbounds double, double* %66, i64 %198
%200 = load i32, i32* %14
%201 = sext i32 %200 to i64
%202 = getelementptr inbounds double, double* %199, i64 %201
%203 = load double, double* %202
%204 = fmul double %195, %203
%205 = load i32, i32* %13
%206 = sext i32 %205 to i64
%207 = mul nsw i64 %206, %64
%208 = getelementptr inbounds double, double* %66, i64 %207
%209 = load i32, i32* %14
%210 = sext i32 %209 to i64
%211 = getelementptr inbounds double, double* %208, i64 %210
%212 = load double, double* %211
%213 = load i32, i32* %13
%214 = sext i32 %213 to i64
%215 = mul nsw i64 %214, %64
%216 = getelementptr inbounds double, double* %66, i64 %215
%217 = load i32, i32* %14
%218 = sub nsw i32 %217, 1
%219 = sext i32 %218 to i64
%220 = getelementptr inbounds double, double* %216, i64 %219
%221 = load double, double* %220
%222 = fsub double %212, %221
%223 = fneg double %204
%224 = call double @llvm.fmuladd.f64(double %223, double %222, double %192)
%225 = load double, double* %9
%226 = load double, double* %6
%227 = fdiv double %225, %226
%228 = load i32, i32* %13
%229 = sext i32 %228 to i64
%230 = mul nsw i64 %229, %64
%231 = getelementptr inbounds double, double* %66, i64 %230
%232 = load i32, i32* %14
%233 = sext i32 %232 to i64
%234 = getelementptr inbounds double, double* %231, i64 %233
%235 = load double, double* %234
%236 = fmul double %227, %235
%237 = load i32, i32* %13
%238 = sext i32 %237 to i64
%239 = mul nsw i64 %238, %64
%240 = getelementptr inbounds double, double* %66, i64 %239
%241 = load i32, i32* %14
%242 = sext i32 %241 to i64
%243 = getelementptr inbounds double, double* %240, i64 %242
%244 = load double, double* %243
%245 = load i32, i32* %13
%246 = sub nsw i32 %245, 1
%247 = sext i32 %246 to i64
%248 = mul nsw i64 %247, %64
%249 = getelementptr inbounds double, double* %66, i64 %248
%250 = load i32, i32* %14
%251 = sext i32 %250 to i64
%252 = getelementptr inbounds double, double* %249, i64 %251
%253 = load double, double* %252
%254 = fsub double %244, %253
%255 = fneg double %236
%256 = call double @llvm.fmuladd.f64(double %255, double %254, double %224)
%257 = load double, double* %8
%258 = load double, double* %9
%259 = fmul double %257, %258
%260 = load double, double* %6
%261 = call double @pow(double %260, i32 2)
%262 = fdiv double %259, %261
%263 = load i32, i32* %13
%264 = sext i32 %263 to i64
%265 = mul nsw i64 %264, %64
%266 = getelementptr inbounds double, double* %66, i64 %265
%267 = load i32, i32* %14
%268 = add nsw i32 %267, 1
%269 = sext i32 %268 to i64
%270 = getelementptr inbounds double, double* %266, i64 %269
%271 = load double, double* %270
%272 = load i32, i32* %13
%273 = sext i32 %272 to i64
%274 = mul nsw i64 %273, %64
%275 = getelementptr inbounds double, double* %66, i64 %274
%276 = load i32, i32* %14
%277 = sext i32 %276 to i64
%278 = getelementptr inbounds double, double* %275, i64 %277
%279 = load double, double* %278
%280 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %279, double %271)
%281 = load i32, i32* %13
%282 = sext i32 %281 to i64
%283 = mul nsw i64 %282, %64
%284 = getelementptr inbounds double, double* %66, i64 %283
%285 = load i32, i32* %14
%286 = sub nsw i32 %285, 1
%287 = sext i32 %286 to i64
%288 = getelementptr inbounds double, double* %284, i64 %287
%289 = load double, double* %288
%290 = fadd double %280, %289
%291 = call double @llvm.fmuladd.f64(double %262, double %290, double %256)
%292 = load double, double* %8
%293 = load double, double* %9
%294 = fmul double %292, %293
%295 = load double, double* %6
%296 = call double @pow(double %295, i32 2)
%297 = fdiv double %294, %296
%298 = load i32, i32* %13
%299 = add nsw i32 %298, 1
%300 = sext i32 %299 to i64
%301 = mul nsw i64 %300, %64
%302 = getelementptr inbounds double, double* %66, i64 %301
%303 = load i32, i32* %14
%304 = sext i32 %303 to i64
%305 = getelementptr inbounds double, double* %302, i64 %304
%306 = load double, double* %305
%307 = load i32, i32* %13
%308 = sext i32 %307 to i64
%309 = mul nsw i64 %308, %64
%310 = getelementptr inbounds double, double* %66, i64 %309
%311 = load i32, i32* %14
%312 = sext i32 %311 to i64
%313 = getelementptr inbounds double, double* %310, i64 %312
%314 = load double, double* %313
%315 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %314, double %306)
%316 = load i32, i32* %13
%317 = sub nsw i32 %316, 1
%318 = sext i32 %317 to i64
%319 = mul nsw i64 %318, %64
%320 = getelementptr inbounds double, double* %66, i64 %319
%321 = load i32, i32* %14
%322 = sext i32 %321 to i64
%323 = getelementptr inbounds double, double* %320, i64 %322
%324 = load double, double* %323
%325 = fadd double %315, %324
%326 = call double @llvm.fmuladd.f64(double %297, double %325, double %291)
%327 = load i32, i32* %13
%328 = sext i32 %327 to i64
%329 = mul nsw i64 %328, %64
%330 = getelementptr inbounds double, double* %66, i64 %329
%331 = load i32, i32* %14
%332 = sext i32 %331 to i64
%333 = getelementptr inbounds double, double* %330, i64 %332
store double %326, double* %333
%334 = load i32, i32* %13
%335 = sext i32 %334 to i64
%336 = mul nsw i64 %335, %70
%337 = getelementptr inbounds double, double* %72, i64 %336
%338 = load i32, i32* %14
%339 = sext i32 %338 to i64
%340 = getelementptr inbounds double, double* %337, i64 %339
%341 = load double, double* %340
%342 = load double, double* %9
%343 = load double, double* %6
%344 = fdiv double %342, %343
%345 = load i32, i32* %13
%346 = sext i32 %345 to i64
%347 = mul nsw i64 %346, %70
%348 = getelementptr inbounds double, double* %72, i64 %347
%349 = load i32, i32* %14
%350 = sext i32 %349 to i64
%351 = getelementptr inbounds double, double* %348, i64 %350
%352 = load double, double* %351
%353 = fmul double %344, %352
%354 = load i32, i32* %13
%355 = sext i32 %354 to i64
%356 = mul nsw i64 %355, %70
%357 = getelementptr inbounds double, double* %72, i64 %356
%358 = load i32, i32* %14
%359 = sext i32 %358 to i64
%360 = getelementptr inbounds double, double* %357, i64 %359
%361 = load double, double* %360
%362 = load i32, i32* %13
%363 = sext i32 %362 to i64
%364 = mul nsw i64 %363, %70
%365 = getelementptr inbounds double, double* %72, i64 %364
%366 = load i32, i32* %14
%367 = sub nsw i32 %366, 1
%368 = sext i32 %367 to i64
%369 = getelementptr inbounds double, double* %365, i64 %368
%370 = load double, double* %369
%371 = fsub double %361, %370
%372 = fneg double %353
%373 = call double @llvm.fmuladd.f64(double %372, double %371, double %341)
%374 = load double, double* %9
%375 = load double, double* %6
%376 = fdiv double %374, %375
%377 = load i32, i32* %13
%378 = sext i32 %377 to i64
%379 = mul nsw i64 %378, %70
%380 = getelementptr inbounds double, double* %72, i64 %379
%381 = load i32, i32* %14
%382 = sext i32 %381 to i64
%383 = getelementptr inbounds double, double* %380, i64 %382
%384 = load double, double* %383
%385 = fmul double %376, %384
%386 = load i32, i32* %13
%387 = sext i32 %386 to i64
%388 = mul nsw i64 %387, %70
%389 = getelementptr inbounds double, double* %72, i64 %388
%390 = load i32, i32* %14
%391 = sext i32 %390 to i64
%392 = getelementptr inbounds double, double* %389, i64 %391
%393 = load double, double* %392
%394 = load i32, i32* %13
%395 = sub nsw i32 %394, 1
%396 = sext i32 %395 to i64
%397 = mul nsw i64 %396, %70
%398 = getelementptr inbounds double, double* %72, i64 %397
%399 = load i32, i32* %14
%400 = sext i32 %399 to i64
%401 = getelementptr inbounds double, double* %398, i64 %400
%402 = load double, double* %401
%403 = fsub double %393, %402
%404 = fneg double %385
%405 = call double @llvm.fmuladd.f64(double %404, double %403, double %373)
%406 = load double, double* %8
%407 = load double, double* %9
%408 = fmul double %406, %407
%409 = load double, double* %6
%410 = call double @pow(double %409, i32 2)
%411 = fdiv double %408, %410
%412 = load i32, i32* %13
%413 = sext i32 %412 to i64
%414 = mul nsw i64 %413, %70
%415 = getelementptr inbounds double, double* %72, i64 %414
%416 = load i32, i32* %14
%417 = add nsw i32 %416, 1
%418 = sext i32 %417 to i64
%419 = getelementptr inbounds double, double* %415, i64 %418
%420 = load double, double* %419
%421 = load i32, i32* %13
%422 = sext i32 %421 to i64
%423 = mul nsw i64 %422, %70
%424 = getelementptr inbounds double, double* %72, i64 %423
%425 = load i32, i32* %14
%426 = sext i32 %425 to i64
%427 = getelementptr inbounds double, double* %424, i64 %426
%428 = load double, double* %427
%429 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %428, double %420)
%430 = load i32, i32* %13
%431 = sext i32 %430 to i64
%432 = mul nsw i64 %431, %70
%433 = getelementptr inbounds double, double* %72, i64 %432
%434 = load i32, i32* %14
%435 = sub nsw i32 %434, 1
%436 = sext i32 %435 to i64
%437 = getelementptr inbounds double, double* %433, i64 %436
%438 = load double, double* %437
%439 = fadd double %429, %438
%440 = call double @llvm.fmuladd.f64(double %411, double %439, double %405)
%441 = load double, double* %8
%442 = load double, double* %9
%443 = fmul double %441, %442
%444 = load double, double* %6
%445 = call double @pow(double %444, i32 2)
%446 = fdiv double %443, %445
%447 = load i32, i32* %13
%448 = add nsw i32 %447, 1
%449 = sext i32 %448 to i64
%450 = mul nsw i64 %449, %70
%451 = getelementptr inbounds double, double* %72, i64 %450
%452 = load i32, i32* %14
%453 = sext i32 %452 to i64
%454 = getelementptr inbounds double, double* %451, i64 %453
%455 = load double, double* %454
%456 = load i32, i32* %13
%457 = sext i32 %456 to i64
%458 = mul nsw i64 %457, %70
%459 = getelementptr inbounds double, double* %72, i64 %458
%460 = load i32, i32* %14
%461 = sext i32 %460 to i64
%462 = getelementptr inbounds double, double* %459, i64 %461
%463 = load double, double* %462
%464 = call double @llvm.fmuladd.f64(double -2.000000e+00, double %463, double %455)
%465 = load i32, i32* %13
%466 = sub nsw i32 %465, 1
%467 = sext i32 %466 to i64
%468 = mul nsw i64 %467, %70
%469 = getelementptr inbounds double, double* %72, i64 %468
%470 = load i32, i32* %14
%471 = sext i32 %470 to i64
%472 = getelementptr inbounds double, double* %469, i64 %471
%473 = load double, double* %472
%474 = fadd double %464, %473
%475 = call double @llvm.fmuladd.f64(double %446, double %474, double %440)
%476 = load i32, i32* %13
%477 = sext i32 %476 to i64
%478 = mul nsw i64 %477, %70
%479 = getelementptr inbounds double, double* %72, i64 %478
%480 = load i32, i32* %14
%481 = sext i32 %480 to i64
%482 = getelementptr inbounds double, double* %479, i64 %481
store double %475, double* %482
br label %483
483: ; preds = %184, %169
%484 = load i32, i32* %13
%485 = sext i32 %484 to i64
%486 = getelementptr inbounds double, double* %34, i64 %485
%487 = load double, double* %486
%488 = load i32, i32* %14
%489 = sext i32 %488 to i64
%490 = getelementptr inbounds double, double* %37, i64 %489
%491 = load double, double* %490
%492 = load i32, i32* %13
%493 = sext i32 %492 to i64
%494 = mul nsw i64 %493, %64
%495 = getelementptr inbounds double, double* %66, i64 %494
%496 = load i32, i32* %14
%497 = sext i32 %496 to i64
%498 = getelementptr inbounds double, double* %495, i64 %497
%499 = load double, double* %498
%500 = load i32, i32* %13
%501 = sext i32 %500 to i64
%502 = mul nsw i64 %501, %70
%503 = getelementptr inbounds double, double* %72, i64 %502
%504 = load i32, i32* %14
%505 = sext i32 %504 to i64
%506 = getelementptr inbounds double, double* %503, i64 %505
%507 = load double, double* %506
%508 = call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0), double %487, double %491, double %499, double %507)
br label %509
509: ; preds = %483
%510 = load i32, i32* %14
%511 = add nsw i32 %510, 1
store i32 %511, i32* %14
br label %149
512: ; preds = %149
br label %513
513: ; preds = %512
%514 = load i32, i32* %13
%515 = add nsw i32 %514, 1
store i32 %515, i32* %13
br label %144
516: ; preds = %144
br label %517
517: ; preds = %516
%518 = load i32, i32* %19
%519 = add nsw i32 %518, 1
store i32 %519, i32* %19
br label %139
520: ; preds = %139
store i32 0, i32* %1
%521 = load i8*, i8** %10
%522 = load i32, i32* %1
ret i32 %522
}

LLVM IR (-O2):
@.str = [12 x i8] c"%g,%g,%g,%g\00"
define i32 @main() {
%1 = alloca [41 x double]
%2 = alloca [41 x double]
%3 = bitcast [41 x double]* %1 to <2 x double>*
store <2 x double> <double 0.000000e+00, double 5.000000e-02>, <2 x double>* %3
%4 = bitcast [41 x double]* %2 to <2 x double>*
store <2 x double> <double 0.000000e+00, double 5.000000e-02>, <2 x double>* %4
%5 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 2
%6 = bitcast double* %5 to <2 x double>*
store <2 x double> <double 1.000000e-01, double 0x3FC3333333333334>, <2 x double>* %6
%7 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 2
%8 = bitcast double* %7 to <2 x double>*
store <2 x double> <double 1.000000e-01, double 0x3FC3333333333334>, <2 x double>* %8
%9 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 4
%10 = bitcast double* %9 to <2 x double>*
store <2 x double> <double 2.000000e-01, double 2.500000e-01>, <2 x double>* %10
%11 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 4
%12 = bitcast double* %11 to <2 x double>*
store <2 x double> <double 2.000000e-01, double 2.500000e-01>, <2 x double>* %12
%13 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 6
%14 = bitcast double* %13 to <2 x double>*
store <2 x double> <double 0x3FD3333333333334, double 0x3FD6666666666667>, <2 x double>* %14
%15 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 6
%16 = bitcast double* %15 to <2 x double>*
store <2 x double> <double 0x3FD3333333333334, double 0x3FD6666666666667>, <2 x double>* %16
%17 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 8
%18 = bitcast double* %17 to <2 x double>*
store <2 x double> <double 4.000000e-01, double 4.500000e-01>, <2 x double>* %18
%19 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 8
%20 = bitcast double* %19 to <2 x double>*
store <2 x double> <double 4.000000e-01, double 4.500000e-01>, <2 x double>* %20
%21 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 10
%22 = bitcast double* %21 to <2 x double>*
store <2 x double> <double 5.000000e-01, double 5.500000e-01>, <2 x double>* %22
%23 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 10
%24 = bitcast double* %23 to <2 x double>*
store <2 x double> <double 5.000000e-01, double 5.500000e-01>, <2 x double>* %24
%25 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 12
%26 = bitcast double* %25 to <2 x double>*
store <2 x double> <double 0x3FE3333333333334, double 6.500000e-01>, <2 x double>* %26
%27 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 12
%28 = bitcast double* %27 to <2 x double>*
store <2 x double> <double 0x3FE3333333333334, double 6.500000e-01>, <2 x double>* %28
%29 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 14
%30 = bitcast double* %29 to <2 x double>*
store <2 x double> <double 0x3FE6666666666667, double 7.500000e-01>, <2 x double>* %30
%31 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 14
%32 = bitcast double* %31 to <2 x double>*
store <2 x double> <double 0x3FE6666666666667, double 7.500000e-01>, <2 x double>* %32
%33 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 16
%34 = bitcast double* %33 to <2 x double>*
store <2 x double> <double 8.000000e-01, double 0x3FEB333333333334>, <2 x double>* %34
%35 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 16
%36 = bitcast double* %35 to <2 x double>*
store <2 x double> <double 8.000000e-01, double 0x3FEB333333333334>, <2 x double>* %36
%37 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 18
%38 = bitcast double* %37 to <2 x double>*
store <2 x double> <double 9.000000e-01, double 0x3FEE666666666667>, <2 x double>* %38
%39 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 18
%40 = bitcast double* %39 to <2 x double>*
store <2 x double> <double 9.000000e-01, double 0x3FEE666666666667>, <2 x double>* %40
%41 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 20
%42 = bitcast double* %41 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.050000e+00>, <2 x double>* %42
%43 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 20
%44 = bitcast double* %43 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.050000e+00>, <2 x double>* %44
%45 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 22
%46 = bitcast double* %45 to <2 x double>*
store <2 x double> <double 1.100000e+00, double 0x3FF2666666666667>, <2 x double>* %46
%47 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 22
%48 = bitcast double* %47 to <2 x double>*
store <2 x double> <double 1.100000e+00, double 0x3FF2666666666667>, <2 x double>* %48
%49 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 24
%50 = bitcast double* %49 to <2 x double>*
store <2 x double> <double 0x3FF3333333333334, double 1.250000e+00>, <2 x double>* %50
%51 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 24
%52 = bitcast double* %51 to <2 x double>*
store <2 x double> <double 0x3FF3333333333334, double 1.250000e+00>, <2 x double>* %52
%53 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 26
%54 = bitcast double* %53 to <2 x double>*
store <2 x double> <double 1.300000e+00, double 1.350000e+00>, <2 x double>* %54
%55 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 26
%56 = bitcast double* %55 to <2 x double>*
store <2 x double> <double 1.300000e+00, double 1.350000e+00>, <2 x double>* %56
%57 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 28
%58 = bitcast double* %57 to <2 x double>*
store <2 x double> <double 0x3FF6666666666667, double 0x3FF7333333333334>, <2 x double>* %58
%59 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 28
%60 = bitcast double* %59 to <2 x double>*
store <2 x double> <double 0x3FF6666666666667, double 0x3FF7333333333334>, <2 x double>* %60
%61 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 30
%62 = bitcast double* %61 to <2 x double>*
store <2 x double> <double 1.500000e+00, double 1.550000e+00>, <2 x double>* %62
%63 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 30
%64 = bitcast double* %63 to <2 x double>*
store <2 x double> <double 1.500000e+00, double 1.550000e+00>, <2 x double>* %64
%65 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 32
%66 = bitcast double* %65 to <2 x double>*
store <2 x double> <double 1.600000e+00, double 0x3FFA666666666667>, <2 x double>* %66
%67 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 32
%68 = bitcast double* %67 to <2 x double>*
store <2 x double> <double 1.600000e+00, double 0x3FFA666666666667>, <2 x double>* %68
%69 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 34
%70 = bitcast double* %69 to <2 x double>*
store <2 x double> <double 0x3FFB333333333334, double 1.750000e+00>, <2 x double>* %70
%71 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 34
%72 = bitcast double* %71 to <2 x double>*
store <2 x double> <double 0x3FFB333333333334, double 1.750000e+00>, <2 x double>* %72
%73 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 36
%74 = bitcast double* %73 to <2 x double>*
store <2 x double> <double 1.800000e+00, double 1.850000e+00>, <2 x double>* %74
%75 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 36
%76 = bitcast double* %75 to <2 x double>*
store <2 x double> <double 1.800000e+00, double 1.850000e+00>, <2 x double>* %76
%77 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 38
%78 = bitcast double* %77 to <2 x double>*
store <2 x double> <double 0x3FFE666666666667, double 0x3FFF333333333334>, <2 x double>* %78
%79 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 38
%80 = bitcast double* %79 to <2 x double>*
store <2 x double> <double 0x3FFE666666666667, double 0x3FFF333333333334>, <2 x double>* %80
%81 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 40
store double 2.000000e+00, double* %81
%82 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 40
store double 2.000000e+00, double* %82
%83 = alloca [1681 x double]
%84 = alloca [1681 x double]
br label %85
85: ; preds = %0, %85
%86 = phi i64 [ 0, %0 ], [ %170, %85 ]
%87 = mul nuw nsw i64 %86, 41
%88 = getelementptr inbounds [1681 x double], [1681 x double]* %83, i64 0, i64 %87
%89 = getelementptr inbounds [1681 x double], [1681 x double]* %84, i64 0, i64 %87
%90 = bitcast double* %88 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %90
%91 = bitcast double* %89 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %91
%92 = getelementptr inbounds double, double* %88, i64 2
%93 = bitcast double* %92 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %93
%94 = getelementptr inbounds double, double* %89, i64 2
%95 = bitcast double* %94 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %95
%96 = getelementptr inbounds double, double* %88, i64 4
%97 = bitcast double* %96 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %97
%98 = getelementptr inbounds double, double* %89, i64 4
%99 = bitcast double* %98 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %99
%100 = getelementptr inbounds double, double* %88, i64 6
%101 = bitcast double* %100 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %101
%102 = getelementptr inbounds double, double* %89, i64 6
%103 = bitcast double* %102 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %103
%104 = getelementptr inbounds double, double* %88, i64 8
%105 = bitcast double* %104 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %105
%106 = getelementptr inbounds double, double* %89, i64 8
%107 = bitcast double* %106 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %107
%108 = getelementptr inbounds double, double* %88, i64 10
%109 = bitcast double* %108 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %109
%110 = getelementptr inbounds double, double* %89, i64 10
%111 = bitcast double* %110 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %111
%112 = getelementptr inbounds double, double* %88, i64 12
%113 = bitcast double* %112 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %113
%114 = getelementptr inbounds double, double* %89, i64 12
%115 = bitcast double* %114 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %115
%116 = getelementptr inbounds double, double* %88, i64 14
%117 = bitcast double* %116 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %117
%118 = getelementptr inbounds double, double* %89, i64 14
%119 = bitcast double* %118 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %119
%120 = getelementptr inbounds double, double* %88, i64 16
%121 = bitcast double* %120 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %121
%122 = getelementptr inbounds double, double* %89, i64 16
%123 = bitcast double* %122 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %123
%124 = getelementptr inbounds double, double* %88, i64 18
%125 = bitcast double* %124 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %125
%126 = getelementptr inbounds double, double* %89, i64 18
%127 = bitcast double* %126 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %127
%128 = getelementptr inbounds double, double* %88, i64 20
%129 = bitcast double* %128 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %129
%130 = getelementptr inbounds double, double* %89, i64 20
%131 = bitcast double* %130 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %131
%132 = getelementptr inbounds double, double* %88, i64 22
%133 = bitcast double* %132 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %133
%134 = getelementptr inbounds double, double* %89, i64 22
%135 = bitcast double* %134 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %135
%136 = getelementptr inbounds double, double* %88, i64 24
%137 = bitcast double* %136 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %137
%138 = getelementptr inbounds double, double* %89, i64 24
%139 = bitcast double* %138 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %139
%140 = getelementptr inbounds double, double* %88, i64 26
%141 = bitcast double* %140 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %141
%142 = getelementptr inbounds double, double* %89, i64 26
%143 = bitcast double* %142 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %143
%144 = getelementptr inbounds double, double* %88, i64 28
%145 = bitcast double* %144 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %145
%146 = getelementptr inbounds double, double* %89, i64 28
%147 = bitcast double* %146 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %147
%148 = getelementptr inbounds double, double* %88, i64 30
%149 = bitcast double* %148 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %149
%150 = getelementptr inbounds double, double* %89, i64 30
%151 = bitcast double* %150 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %151
%152 = getelementptr inbounds double, double* %88, i64 32
%153 = bitcast double* %152 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %153
%154 = getelementptr inbounds double, double* %89, i64 32
%155 = bitcast double* %154 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %155
%156 = getelementptr inbounds double, double* %88, i64 34
%157 = bitcast double* %156 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %157
%158 = getelementptr inbounds double, double* %89, i64 34
%159 = bitcast double* %158 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %159
%160 = getelementptr inbounds double, double* %88, i64 36
%161 = bitcast double* %160 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %161
%162 = getelementptr inbounds double, double* %89, i64 36
%163 = bitcast double* %162 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %163
%164 = getelementptr inbounds double, double* %88, i64 38
%165 = bitcast double* %164 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %165
%166 = getelementptr inbounds double, double* %89, i64 38
%167 = bitcast double* %166 to <2 x double>*
store <2 x double> <double 1.000000e+00, double 1.000000e+00>, <2 x double>* %167
%168 = getelementptr inbounds double, double* %88, i64 40
store double 1.000000e+00, double* %168
%169 = getelementptr inbounds double, double* %89, i64 40
store double 1.000000e+00, double* %169
%170 = add nuw nsw i64 %86, 1
%171 = icmp eq i64 %170, 41
br i1 %171, label %172, label %85
172: ; preds = %85, %269
%173 = phi i32 [ %270, %269 ], [ 0, %85 ]
br label %174
174: ; preds = %172, %267
%175 = phi i64 [ 0, %172 ], [ %183, %267 ]
%176 = icmp eq i64 %175, 0
%177 = icmp eq i64 %175, 40
%178 = mul nuw nsw i64 %175, 41
%179 = getelementptr inbounds [1681 x double], [1681 x double]* %83, i64 0, i64 %178
%180 = mul i64 %175, 41
%181 = add i64 %180, -41
%182 = getelementptr inbounds [1681 x double], [1681 x double]* %83, i64 0, i64 %181
%183 = add nuw nsw i64 %175, 1
%184 = mul nuw nsw i64 %183, 41
%185 = getelementptr inbounds [1681 x double], [1681 x double]* %83, i64 0, i64 %184
%186 = getelementptr inbounds [1681 x double], [1681 x double]* %84, i64 0, i64 %178
%187 = getelementptr inbounds [1681 x double], [1681 x double]* %84, i64 0, i64 %181
%188 = getelementptr inbounds [1681 x double], [1681 x double]* %84, i64 0, i64 %184
%189 = getelementptr inbounds [41 x double], [41 x double]* %1, i64 0, i64 %175
br label %190
190: ; preds = %174, %257
%191 = phi i64 [ 0, %174 ], [ %258, %257 ]
br i1 %176, label %197, label %192
192: ; preds = %190
%193 = icmp eq i64 %191, 0
%194 = select i1 %177, i1 true, i1 %193
%195 = icmp eq i64 %191, 40
%196 = select i1 %194, i1 true, i1 %195
br i1 %196, label %197, label %201
197: ; preds = %192, %190
%198 = getelementptr inbounds double, double* %179, i64 %191
store double 1.000000e+00, double* %198
%199 = getelementptr inbounds double, double* %186, i64 %191
store double 1.000000e+00, double* %199
%200 = add nuw nsw i64 %191, 1
br label %257
201: ; preds = %192
%202 = getelementptr inbounds double, double* %179, i64 %191
%203 = load double, double* %202
%204 = add nsw i64 %191, -1
%205 = getelementptr inbounds double, double* %179, i64 %204
%206 = load double, double* %205
%207 = getelementptr inbounds double, double* %182, i64 %191
%208 = load double, double* %207
%209 = tail call double @pow(double 5.000000e-02, i32 2)
%210 = add nuw nsw i64 %191, 1
%211 = getelementptr inbounds double, double* %179, i64 %210
%212 = load double, double* %211
%213 = tail call double @pow(double 5.000000e-02, i32 2)
%214 = getelementptr inbounds double, double* %185, i64 %191
%215 = load double, double* %214
%216 = getelementptr inbounds double, double* %186, i64 %191
%217 = load double, double* %216
%218 = getelementptr inbounds double, double* %186, i64 %204
%219 = load double, double* %218
%220 = insertelement <2 x double> poison, double %217, i64 0
%221 = insertelement <2 x double> %220, double %203, i64 1
%222 = insertelement <2 x double> poison, double %219, i64 0
%223 = insertelement <2 x double> %222, double %206, i64 1
%224 = fsub <2 x double> %221, %223
%225 = fmul <2 x double> %221, <double -4.500000e-03, double -4.500000e-03>
%226 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %225, <2 x double> %224, <2 x double> %221)
%227 = getelementptr inbounds double, double* %187, i64 %191
%228 = load double, double* %227
%229 = insertelement <2 x double> poison, double %228, i64 0
%230 = insertelement <2 x double> %229, double %208, i64 1
%231 = fsub <2 x double> %221, %230
%232 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %225, <2 x double> %231, <2 x double> %226)
%233 = tail call double @pow(double 5.000000e-02, i32 2)
%234 = insertelement <2 x double> poison, double %233, i64 0
%235 = insertelement <2 x double> %234, double %209, i64 1
%236 = fdiv <2 x double> <double 2.250000e-06, double 2.250000e-06>, %235
%237 = getelementptr inbounds double, double* %186, i64 %210
%238 = load double, double* %237
%239 = insertelement <2 x double> poison, double %238, i64 0
%240 = insertelement <2 x double> %239, double %212, i64 1
%241 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %221, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %240)
%242 = fadd <2 x double> %223, %241
%243 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %236, <2 x double> %242, <2 x double> %232)
%244 = tail call double @pow(double 5.000000e-02, i32 2)
%245 = insertelement <2 x double> poison, double %244, i64 0
%246 = insertelement <2 x double> %245, double %213, i64 1
%247 = fdiv <2 x double> <double 2.250000e-06, double 2.250000e-06>, %246
%248 = getelementptr inbounds double, double* %188, i64 %191
%249 = load double, double* %248
%250 = insertelement <2 x double> poison, double %249, i64 0
%251 = insertelement <2 x double> %250, double %215, i64 1
%252 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %221, <2 x double> <double -2.000000e+00, double -2.000000e+00>, <2 x double> %251)
%253 = fadd <2 x double> %230, %252
%254 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %247, <2 x double> %253, <2 x double> %243)
%255 = extractelement <2 x double> %254, i64 1
store double %255, double* %202
%256 = extractelement <2 x double> %254, i64 0
store double %256, double* %216
br label %257
257: ; preds = %201, %197
%258 = phi i64 [ %210, %201 ], [ %200, %197 ]
%259 = phi <2 x double> [ %254, %201 ], [ <double 1.000000e+00, double 1.000000e+00>, %197 ]
%260 = load double, double* %189
%261 = getelementptr inbounds [41 x double], [41 x double]* %2, i64 0, i64 %191
%262 = load double, double* %261
%263 = extractelement <2 x double> %259, i64 0
%264 = extractelement <2 x double> %259, i64 1
%265 = tail call i32 @printf(i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str, i64 0, i64 0), double %260, double %262, double %264, double %263)
%266 = icmp eq i64 %258, 41
br i1 %266, label %267, label %190
267: ; preds = %257
%268 = icmp eq i64 %183, 41
br i1 %268, label %269, label %174
269: ; preds = %267
%270 = add nuw nsw i32 %173, 1
%271 = icmp eq i32 %270, 500
br i1 %271, label %272, label %172
272: ; preds = %269
ret i32 0
}