int main() {
  int i, p;
  double a[100];
  double b[100];
  for (i = 0; i < 100; i++)
    a[i] = i;
#pragma acc parallel
  {
#pragma acc loop private(p)
    for (i = 0; i < 100; i++) {
      p = a[i];
      b[i] = p * p;
    }
  }
  for (i = 0; i < 100; i++) {
    if (b[i] != i * i) {
      return 1;
    }
  }
  double tmp[100];
  double in[10][100];
  double out[10][100];
  int j;
  for (i = 0; i < 10; i++) {
    for (j = 0; j < 100; j++) {
      in[i][j] = i * 3 + j;
    }
  }
#pragma acc parallel
  {
#pragma acc loop private(tmp) private(j)
    for (i = 0; i < 10; i++) {
#pragma acc loop seq
      for (j = 0; j < 100; j++) {
        tmp[j] = in[i][j];
      }
#pragma acc loop seq
      for (j = 0; j < 100; j++) {
        out[i][j] = tmp[j] * 2;
      }
    }
  }
  for (i = 0; i < 10; i++) {
    for (j = 0; j < 100; j++) {
      if (out[i][j] != i * 6 + j * 2) {
        return 2;
      }
    }
  }
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x4780,%rsp
movl   $0x0,-0x4(%rbp)
movl   $0x0,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jge    1143 <main+0x43>
cvtsi2sdl -0x8(%rbp),%xmm0
movslq -0x8(%rbp),%rax
movsd  %xmm0,-0x330(%rbp,%rax,8)
ff ff
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1119 <main+0x19>
movl   $0x0,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jge    118a <main+0x8a>
movslq -0x8(%rbp),%rax
cvttsd2si -0x330(%rbp,%rax,8),%eax
ff ff
mov    %eax,-0xc(%rbp)
mov    -0xc(%rbp),%eax
imul   -0xc(%rbp),%eax
cvtsi2sd %eax,%xmm0
movslq -0x8(%rbp),%rax
movsd  %xmm0,-0x650(%rbp,%rax,8)
ff ff
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    114a <main+0x4a>
movl   $0x0,-0x8(%rbp)
cmpl   $0x64,-0x8(%rbp)
jge    11e7 <main+0xe7>
movslq -0x8(%rbp),%rax
movsd  -0x650(%rbp,%rax,8),%xmm0
ff ff
mov    -0x8(%rbp),%eax
imul   -0x8(%rbp),%eax
cvtsi2sd %eax,%xmm1
ucomisd %xmm1,%xmm0
jne    11c8 <main+0xc8>
jp     11c8 <main+0xc8>
jmp    11d4 <main+0xd4>
movl   $0x1,-0x4(%rbp)
jmp    13f9 <main+0x2f9>
jmp    11d9 <main+0xd9>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1191 <main+0x91>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1265 <main+0x165>
movl   $0x0,-0x47f4(%rbp)
cmpl   $0x64,-0x47f4(%rbp)
jge    1252 <main+0x152>
imul   $0x3,-0x8(%rbp),%eax
add    -0x47f4(%rbp),%eax
cvtsi2sd %eax,%xmm0
movslq -0x8(%rbp),%rcx
lea    -0x28b0(%rbp),%rax
imul   $0x320,%rcx,%rcx
add    %rcx,%rax
movslq -0x47f4(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x47f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x47f4(%rbp)
jmp    1202 <main+0x102>
jmp    1257 <main+0x157>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    11ee <main+0xee>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    1349 <main+0x249>
movl   $0x0,-0x47f4(%rbp)
cmpl   $0x64,-0x47f4(%rbp)
jge    12d2 <main+0x1d2>
movslq -0x8(%rbp),%rcx
lea    -0x28b0(%rbp),%rax
imul   $0x320,%rcx,%rcx
add    %rcx,%rax
movslq -0x47f4(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
movslq -0x47f4(%rbp),%rax
movsd  %xmm0,-0x970(%rbp,%rax,8)
ff ff
mov    -0x47f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x47f4(%rbp)
jmp    1280 <main+0x180>
movl   $0x0,-0x47f4(%rbp)
cmpl   $0x64,-0x47f4(%rbp)
jge    1336 <main+0x236>
movslq -0x47f4(%rbp),%rax
movsd  0xd08(%rip),%xmm0
mulsd  -0x970(%rbp,%rax,8),%xmm0
ff ff
movslq -0x8(%rbp),%rcx
lea    -0x47f0(%rbp),%rax
imul   $0x320,%rcx,%rcx
add    %rcx,%rax
movslq -0x47f4(%rbp),%rcx
movsd  %xmm0,(%rax,%rcx,8)
mov    -0x47f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x47f4(%rbp)
jmp    12dc <main+0x1dc>
jmp    133b <main+0x23b>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    126c <main+0x16c>
movl   $0x0,-0x8(%rbp)
cmpl   $0xa,-0x8(%rbp)
jge    13f2 <main+0x2f2>
movl   $0x0,-0x47f4(%rbp)
cmpl   $0x64,-0x47f4(%rbp)
jge    13df <main+0x2df>
movslq -0x8(%rbp),%rcx
lea    -0x47f0(%rbp),%rax
imul   $0x320,%rcx,%rcx
add    %rcx,%rax
movslq -0x47f4(%rbp),%rcx
movsd  (%rax,%rcx,8),%xmm0
imul   $0x6,-0x8(%rbp),%eax
mov    -0x47f4(%rbp),%ecx
shl    $0x1,%ecx
add    %ecx,%eax
cvtsi2sd %eax,%xmm1
ucomisd %xmm1,%xmm0
jne    13ba <main+0x2ba>
jp     13ba <main+0x2ba>
jmp    13c6 <main+0x2c6>
movl   $0x2,-0x4(%rbp)
jmp    13f9 <main+0x2f9>
jmp    13cb <main+0x2cb>
mov    -0x47f4(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x47f4(%rbp)
jmp    1364 <main+0x264>
jmp    13e4 <main+0x2e4>
mov    -0x8(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x8(%rbp)
jmp    1350 <main+0x250>
movl   $0x0,-0x4(%rbp)
mov    -0x4(%rbp),%eax
add    $0x4780,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %r15
push   %r14
push   %rbx
sub    $0x47e0,%rsp
movdqa 0xedc(%rip),%xmm5
mov    $0x8,%eax
movdqa 0xedf(%rip),%xmm3
movdqa 0xee7(%rip),%xmm4
movdqa 0xeef(%rip),%xmm1
movdqa 0xef7(%rip),%xmm2
movdqa 0xeff(%rip),%xmm0
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
cvtdq2pd %xmm5,%xmm6
movaps %xmm6,-0x40(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm3,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,-0x30(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm4,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,-0x20(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm1,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,-0x10(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm2,%xmm6
cvtdq2pd %xmm6,%xmm6
movapd %xmm6,(%rsp,%rax,8)
paddd  %xmm0,%xmm5
add    $0xa,%rax
cmp    $0x6c,%rax
jne    1160 <main+0x50>
mov    $0x2,%eax
cvttpd2dq -0x10(%rsp,%rax,8),%xmm5
pshufd $0xf5,%xmm5,%xmm6
pmuludq %xmm5,%xmm5
pmuludq %xmm6,%xmm6
punpckldq %xmm6,%xmm5
cvttpd2dq (%rsp,%rax,8),%xmm6
pshufd $0xf5,%xmm6,%xmm7
pmuludq %xmm6,%xmm6
pmuludq %xmm7,%xmm7
punpckldq %xmm7,%xmm6
cvtdq2pd %xmm5,%xmm5
cvtdq2pd %xmm6,%xmm6
movdqa %xmm5,0x630(%rsp,%rax,8)
movapd %xmm6,0x640(%rsp,%rax,8)
add    $0x4,%rax
cmp    $0x66,%rax
jne    11c0 <main+0xb0>
mov    $0x3,%ecx
cs nopw 0x0(%rax,%rax,1)
lea    -0x3(%rcx),%eax
imul   %eax,%eax
xorps  %xmm5,%xmm5
cvtsi2sd %eax,%xmm5
movsd  0x628(%rsp,%rcx,8),%xmm6
mov    $0x1,%eax
ucomisd %xmm5,%xmm6
jne    1d2c <main+0xc1c>
jp     1d2c <main+0xc1c>
lea    -0x2(%rcx),%edx
movsd  0x630(%rsp,%rcx,8),%xmm5
imul   %edx,%edx
xorps  %xmm6,%xmm6
cvtsi2sd %edx,%xmm6
ucomisd %xmm6,%xmm5
jne    1d2c <main+0xc1c>
jp     1d2c <main+0xc1c>
lea    -0x1(%rcx),%edx
movsd  0x638(%rsp,%rcx,8),%xmm5
imul   %edx,%edx
xorps  %xmm6,%xmm6
cvtsi2sd %edx,%xmm6
ucomisd %xmm6,%xmm5
jne    1d2c <main+0xc1c>
jp     1d2c <main+0xc1c>
movsd  0x640(%rsp,%rcx,8),%xmm5
mov    %ecx,%edx
imul   %ecx,%edx
xorps  %xmm6,%xmm6
cvtsi2sd %edx,%xmm6
ucomisd %xmm6,%xmm5
jne    1d2c <main+0xc1c>
jp     1d2c <main+0xc1c>
add    $0x4,%rcx
cmp    $0x67,%rcx
jne    1220 <main+0x110>
movdqa 0xd2e(%rip),%xmm5
mov    $0x8,%eax
nopw   0x0(%rax,%rax,1)
cvtdq2pd %xmm5,%xmm6
movaps %xmm6,0x920(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm3,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,0x930(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm4,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,0x940(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm1,%xmm6
cvtdq2pd %xmm6,%xmm6
movaps %xmm6,0x950(%rsp,%rax,8)
movdqa %xmm5,%xmm6
paddd  %xmm2,%xmm6
cvtdq2pd %xmm6,%xmm6
movapd %xmm6,0x960(%rsp,%rax,8)
paddd  %xmm0,%xmm5
add    $0xa,%rax
cmp    $0x6c,%rax
jne    12e0 <main+0x1d0>
movdqa 0xcad(%rip),%xmm7
xor    %eax,%eax
movdqa 0xd03(%rip),%xmm4
movdqa 0xd0b(%rip),%xmm6
movdqa 0xd13(%rip),%xmm5
movdqa 0xd1a(%rip),%xmm8
movdqa 0xd21(%rip),%xmm10
nop
movdqa %xmm7,%xmm3
paddd  %xmm4,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0xc80(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm6,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0xc90(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm5,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0xca0(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm8,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0xcb0(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm10,%xmm3
cvtdq2pd %xmm3,%xmm3
movdqa %xmm3,0xcc0(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm7
cmp    $0x64,%rax
jne    1380 <main+0x270>
movdqa 0xc03(%rip),%xmm5
xor    %eax,%eax
movdqa 0xca8(%rip),%xmm11
movdqa 0xcb0(%rip),%xmm6
movdqa %xmm5,%xmm3
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movdqa %xmm5,%xmm7
paddd  %xmm1,%xmm7
cvtdq2pd %xmm7,%xmm7
movdqa %xmm5,%xmm4
paddd  %xmm2,%xmm4
cvtdq2pd %xmm4,%xmm4
movaps %xmm7,0xfa0(%rsp,%rax,8)
paddd  %xmm0,%xmm3
cvtdq2pd %xmm3,%xmm7
movaps %xmm4,0xfb0(%rsp,%rax,8)
movdqa %xmm5,%xmm4
paddd  %xmm11,%xmm4
cvtdq2pd %xmm4,%xmm4
movdqa %xmm7,0xfc0(%rsp,%rax,8)
paddd  %xmm6,%xmm5
cvtdq2pd %xmm5,%xmm5
movdqa %xmm4,0xfd0(%rsp,%rax,8)
movaps %xmm5,0xfe0(%rsp,%rax,8)
add    $0xa,%rax
movdqa %xmm3,%xmm5
cmp    $0x64,%rax
jne    1420 <main+0x310>
movdqa 0xb6b(%rip),%xmm2
xor    %eax,%eax
movdqa 0xc31(%rip),%xmm5
movdqa 0xc38(%rip),%xmm9
movdqa 0xc40(%rip),%xmm4
movdqa %xmm2,%xmm1
paddd  %xmm8,%xmm1
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,0x12c0(%rsp,%rax,8)
movdqa %xmm2,%xmm1
paddd  %xmm10,%xmm1
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,0x12d0(%rsp,%rax,8)
movdqa %xmm2,%xmm1
paddd  %xmm5,%xmm1
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,0x12e0(%rsp,%rax,8)
movdqa %xmm2,%xmm1
paddd  %xmm9,%xmm1
cvtdq2pd %xmm1,%xmm1
movaps %xmm1,0x12f0(%rsp,%rax,8)
movdqa %xmm2,%xmm1
paddd  %xmm4,%xmm1
cvtdq2pd %xmm1,%xmm1
movdqa %xmm1,0x1300(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm2
cmp    $0x64,%rax
jne    14b0 <main+0x3a0>
movdqa 0xad2(%rip),%xmm7
xor    %eax,%eax
movdqa 0xbc8(%rip),%xmm1
movdqa 0xbcf(%rip),%xmm10
movdqa 0xbd7(%rip),%xmm5
nopl   0x0(%rax)
movdqa %xmm7,%xmm3
paddd  %xmm11,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0x15e0(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm6,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0x15f0(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm1,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0x1600(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm10,%xmm3
cvtdq2pd %xmm3,%xmm3
movaps %xmm3,0x1610(%rsp,%rax,8)
movdqa %xmm7,%xmm3
paddd  %xmm5,%xmm3
cvtdq2pd %xmm3,%xmm3
movdqa %xmm3,0x1620(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm7
cmp    $0x64,%rax
jne    1550 <main+0x440>
movdqa 0xa33(%rip),%xmm2
xor    %eax,%eax
movdqa 0xb59(%rip),%xmm1
movdqa 0xb61(%rip),%xmm3
movdqa 0xb69(%rip),%xmm6
nopw   0x0(%rax,%rax,1)
movdqa %xmm2,%xmm7
paddd  %xmm9,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1900(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm4,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1910(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm1,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1920(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm3,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1930(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm6,%xmm7
cvtdq2pd %xmm7,%xmm7
movdqa %xmm7,0x1940(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm2
cmp    $0x64,%rax
jne    15f0 <main+0x4e0>
movdqa 0x994(%rip),%xmm7
xor    %eax,%eax
movdqa 0xaea(%rip),%xmm1
movdqa 0xaf1(%rip),%xmm8
movdqa 0xaf9(%rip),%xmm4
nopw   0x0(%rax,%rax,1)
movdqa %xmm7,%xmm2
paddd  %xmm10,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x1c20(%rsp,%rax,8)
movdqa %xmm7,%xmm2
paddd  %xmm5,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x1c30(%rsp,%rax,8)
movdqa %xmm7,%xmm2
paddd  %xmm1,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x1c40(%rsp,%rax,8)
movdqa %xmm7,%xmm2
paddd  %xmm8,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x1c50(%rsp,%rax,8)
movdqa %xmm7,%xmm2
paddd  %xmm4,%xmm2
cvtdq2pd %xmm2,%xmm2
movdqa %xmm2,0x1c60(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm7
cmp    $0x64,%rax
jne    1690 <main+0x580>
movdqa 0x8f3(%rip),%xmm2
xor    %eax,%eax
movdqa 0xa79(%rip),%xmm1
movdqa 0xa80(%rip),%xmm9
movdqa 0xa88(%rip),%xmm5
nopl   0x0(%rax,%rax,1)
movdqa %xmm2,%xmm7
paddd  %xmm3,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1f40(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm6,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1f50(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm1,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1f60(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm9,%xmm7
cvtdq2pd %xmm7,%xmm7
movaps %xmm7,0x1f70(%rsp,%rax,8)
movdqa %xmm2,%xmm7
paddd  %xmm5,%xmm7
cvtdq2pd %xmm7,%xmm7
movdqa %xmm7,0x1f80(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm2
cmp    $0x64,%rax
jne    1730 <main+0x620>
movdqa 0x854(%rip),%xmm3
xor    %eax,%eax
movdqa 0xa0a(%rip),%xmm1
movdqa 0xa12(%rip),%xmm6
movdqa 0xa1a(%rip),%xmm7
cs nopw 0x0(%rax,%rax,1)
movdqa %xmm3,%xmm2
paddd  %xmm8,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2260(%rsp,%rax,8)
movdqa %xmm3,%xmm2
paddd  %xmm4,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2270(%rsp,%rax,8)
movdqa %xmm3,%xmm2
paddd  %xmm1,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2280(%rsp,%rax,8)
movdqa %xmm3,%xmm2
paddd  %xmm6,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2290(%rsp,%rax,8)
movdqa %xmm3,%xmm2
paddd  %xmm7,%xmm2
cvtdq2pd %xmm2,%xmm2
movdqa %xmm2,0x22a0(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm3
cmp    $0x64,%rax
jne    17d0 <main+0x6c0>
movdqa 0x7b4(%rip),%xmm1
xor    %eax,%eax
movdqa 0x99a(%rip),%xmm3
movdqa 0x9a2(%rip),%xmm4
movdqa 0x9aa(%rip),%xmm6
cs nopw 0x0(%rax,%rax,1)
movdqa %xmm1,%xmm2
paddd  %xmm9,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2580(%rsp,%rax,8)
movdqa %xmm1,%xmm2
paddd  %xmm5,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x2590(%rsp,%rax,8)
movdqa %xmm1,%xmm2
paddd  %xmm3,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x25a0(%rsp,%rax,8)
movdqa %xmm1,%xmm2
paddd  %xmm4,%xmm2
cvtdq2pd %xmm2,%xmm2
movaps %xmm2,0x25b0(%rsp,%rax,8)
movdqa %xmm1,%xmm2
paddd  %xmm6,%xmm2
cvtdq2pd %xmm2,%xmm2
movdqa %xmm2,0x25c0(%rsp,%rax,8)
add    $0xa,%rax
paddd  %xmm0,%xmm1
cmp    $0x64,%rax
jne    1870 <main+0x760>
lea    0x28a0(%rsp),%rbx
xor    %r15d,%r15d
lea    0x320(%rsp),%r14
nopw   0x0(%rax,%rax,1)
imul   $0x320,%r15,%rax
lea    (%rsp,%rax,1),%rsi
add    $0x960,%rsi
mov    $0x320,%edx
mov    %r14,%rdi
call   1030 <memcpy@plt>
mov    $0x8,%eax
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movapd 0x2e0(%rsp,%rax,8),%xmm0
addpd  %xmm0,%xmm0
movapd %xmm0,-0x40(%rbx,%rax,8)
movapd 0x2f0(%rsp,%rax,8),%xmm0
addpd  %xmm0,%xmm0
movapd %xmm0,-0x30(%rbx,%rax,8)
movapd 0x300(%rsp,%rax,8),%xmm0
addpd  %xmm0,%xmm0
movapd %xmm0,-0x20(%rbx,%rax,8)
movapd 0x310(%rsp,%rax,8),%xmm0
addpd  %xmm0,%xmm0
movapd %xmm0,-0x10(%rbx,%rax,8)
movapd 0x320(%rsp,%rax,8),%xmm0
addpd  %xmm0,%xmm0
movapd %xmm0,(%rbx,%rax,8)
add    $0xa,%rax
cmp    $0x6c,%rax
jne    1930 <main+0x820>
add    $0x1,%r15
add    $0x320,%rbx
cmp    $0xa,%r15
jne    1900 <main+0x7f0>
xor    %eax,%eax
nop
movsd  0x28a0(%rsp,%rax,4),%xmm0
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x28a8(%rsp,%rax,4),%xmm0
lea    0x2(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x28b0(%rsp,%rax,4),%xmm0
lea    0x4(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x28b8(%rsp,%rax,4),%xmm0
lea    0x6(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x8,%rax
cmp    $0xc8,%rax
jne    19b0 <main+0x8a0>
xor    %eax,%eax
nopl   0x0(%rax,%rax,1)
movsd  0x2bc0(%rsp,%rax,4),%xmm0
lea    0x6(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x2bc8(%rsp,%rax,4),%xmm0
lea    0x8(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1a50 <main+0x940>
xor    %eax,%eax
movsd  0x2ee0(%rsp,%rax,4),%xmm0
lea    0xc(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x2ee8(%rsp,%rax,4),%xmm0
lea    0xe(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1aa4 <main+0x994>
xor    %eax,%eax
movsd  0x3200(%rsp,%rax,4),%xmm0
lea    0x12(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x3208(%rsp,%rax,4),%xmm0
lea    0x14(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1af8 <main+0x9e8>
xor    %eax,%eax
movsd  0x3520(%rsp,%rax,4),%xmm0
lea    0x18(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x3528(%rsp,%rax,4),%xmm0
lea    0x1a(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1b4c <main+0xa3c>
xor    %eax,%eax
movsd  0x3840(%rsp,%rax,4),%xmm0
lea    0x1e(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x3848(%rsp,%rax,4),%xmm0
lea    0x20(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1ba0 <main+0xa90>
xor    %eax,%eax
movsd  0x3b60(%rsp,%rax,4),%xmm0
lea    0x24(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x3b68(%rsp,%rax,4),%xmm0
lea    0x26(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1bf4 <main+0xae4>
xor    %eax,%eax
movsd  0x3e80(%rsp,%rax,4),%xmm0
lea    0x2a(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x3e88(%rsp,%rax,4),%xmm0
lea    0x2c(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1c48 <main+0xb38>
xor    %eax,%eax
movsd  0x41a0(%rsp,%rax,4),%xmm0
lea    0x30(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x41a8(%rsp,%rax,4),%xmm0
lea    0x32(%rax),%ecx
xorps  %xmm1,%xmm1
cvtsi2sd %ecx,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rax
cmp    $0xc8,%rax
jne    1c9c <main+0xb8c>
xor    %ecx,%ecx
movsd  0x44c0(%rsp,%rcx,4),%xmm0
lea    0x36(%rcx),%eax
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
movsd  0x44c8(%rsp,%rcx,4),%xmm0
lea    0x38(%rcx),%eax
xorps  %xmm1,%xmm1
cvtsi2sd %eax,%xmm1
ucomisd %xmm1,%xmm0
jne    1d27 <main+0xc17>
jp     1d27 <main+0xc17>
add    $0x4,%rcx
xor    %eax,%eax
cmp    $0xc8,%rcx
jne    1ce0 <main+0xbd0>
jmp    1d2c <main+0xc1c>
mov    $0x2,%eax
add    $0x47e0,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define i32 @main() {
%1 = alloca i32
%2 = alloca i32
%3 = alloca i32
%4 = alloca [100 x double]
%5 = alloca [100 x double]
%6 = alloca [100 x double]
%7 = alloca [10 x [100 x double]]
%8 = alloca [10 x [100 x double]]
%9 = alloca i32
store i32 0, i32* %1
store i32 0, i32* %2
br label %10
10: ; preds = %19, %0
%11 = load i32, i32* %2
%12 = icmp slt i32 %11, 100
br i1 %12, label %13, label %22
13: ; preds = %10
%14 = load i32, i32* %2
%15 = sitofp i32 %14 to double
%16 = load i32, i32* %2
%17 = sext i32 %16 to i64
%18 = getelementptr inbounds [100 x double], [100 x double]* %4, i64 0, i64 %17
store double %15, double* %18
br label %19
19: ; preds = %13
%20 = load i32, i32* %2
%21 = add nsw i32 %20, 1
store i32 %21, i32* %2
br label %10
22: ; preds = %10
store i32 0, i32* %2
br label %23
23: ; preds = %39, %22
%24 = load i32, i32* %2
%25 = icmp slt i32 %24, 100
br i1 %25, label %26, label %42
26: ; preds = %23
%27 = load i32, i32* %2
%28 = sext i32 %27 to i64
%29 = getelementptr inbounds [100 x double], [100 x double]* %4, i64 0, i64 %28
%30 = load double, double* %29
%31 = fptosi double %30 to i32
store i32 %31, i32* %3
%32 = load i32, i32* %3
%33 = load i32, i32* %3
%34 = mul nsw i32 %32, %33
%35 = sitofp i32 %34 to double
%36 = load i32, i32* %2
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [100 x double], [100 x double]* %5, i64 0, i64 %37
store double %35, double* %38
br label %39
39: ; preds = %26
%40 = load i32, i32* %2
%41 = add nsw i32 %40, 1
store i32 %41, i32* %2
br label %23
42: ; preds = %23
store i32 0, i32* %2
br label %43
43: ; preds = %58, %42
%44 = load i32, i32* %2
%45 = icmp slt i32 %44, 100
br i1 %45, label %46, label %61
46: ; preds = %43
%47 = load i32, i32* %2
%48 = sext i32 %47 to i64
%49 = getelementptr inbounds [100 x double], [100 x double]* %5, i64 0, i64 %48
%50 = load double, double* %49
%51 = load i32, i32* %2
%52 = load i32, i32* %2
%53 = mul nsw i32 %51, %52
%54 = sitofp i32 %53 to double
%55 = fcmp une double %50, %54
br i1 %55, label %56, label %57
56: ; preds = %46
store i32 1, i32* %1
br label %166
57: ; preds = %46
br label %58
58: ; preds = %57
%59 = load i32, i32* %2
%60 = add nsw i32 %59, 1
store i32 %60, i32* %2
br label %43
61: ; preds = %43
store i32 0, i32* %2
br label %62
62: ; preds = %85, %61
%63 = load i32, i32* %2
%64 = icmp slt i32 %63, 10
br i1 %64, label %65, label %88
65: ; preds = %62
store i32 0, i32* %9
br label %66
66: ; preds = %81, %65
%67 = load i32, i32* %9
%68 = icmp slt i32 %67, 100
br i1 %68, label %69, label %84
69: ; preds = %66
%70 = load i32, i32* %2
%71 = mul nsw i32 %70, 3
%72 = load i32, i32* %9
%73 = add nsw i32 %71, %72
%74 = sitofp i32 %73 to double
%75 = load i32, i32* %2
%76 = sext i32 %75 to i64
%77 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %7, i64 0, i64 %76
%78 = load i32, i32* %9
%79 = sext i32 %78 to i64
%80 = getelementptr inbounds [100 x double], [100 x double]* %77, i64 0, i64 %79
store double %74, double* %80
br label %81
81: ; preds = %69
%82 = load i32, i32* %9
%83 = add nsw i32 %82, 1
store i32 %83, i32* %9
br label %66
84: ; preds = %66
br label %85
85: ; preds = %84
%86 = load i32, i32* %2
%87 = add nsw i32 %86, 1
store i32 %87, i32* %2
br label %62
88: ; preds = %62
store i32 0, i32* %2
br label %89
89: ; preds = %130, %88
%90 = load i32, i32* %2
%91 = icmp slt i32 %90, 10
br i1 %91, label %92, label %133
92: ; preds = %89
store i32 0, i32* %9
br label %93
93: ; preds = %107, %92
%94 = load i32, i32* %9
%95 = icmp slt i32 %94, 100
br i1 %95, label %96, label %110
96: ; preds = %93
%97 = load i32, i32* %2
%98 = sext i32 %97 to i64
%99 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %7, i64 0, i64 %98
%100 = load i32, i32* %9
%101 = sext i32 %100 to i64
%102 = getelementptr inbounds [100 x double], [100 x double]* %99, i64 0, i64 %101
%103 = load double, double* %102
%104 = load i32, i32* %9
%105 = sext i32 %104 to i64
%106 = getelementptr inbounds [100 x double], [100 x double]* %6, i64 0, i64 %105
store double %103, double* %106
br label %107
107: ; preds = %96
%108 = load i32, i32* %9
%109 = add nsw i32 %108, 1
store i32 %109, i32* %9
br label %93
110: ; preds = %93
store i32 0, i32* %9
br label %111
111: ; preds = %126, %110
%112 = load i32, i32* %9
%113 = icmp slt i32 %112, 100
br i1 %113, label %114, label %129
114: ; preds = %111
%115 = load i32, i32* %9
%116 = sext i32 %115 to i64
%117 = getelementptr inbounds [100 x double], [100 x double]* %6, i64 0, i64 %116
%118 = load double, double* %117
%119 = fmul double %118, 2.000000e+00
%120 = load i32, i32* %2
%121 = sext i32 %120 to i64
%122 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %8, i64 0, i64 %121
%123 = load i32, i32* %9
%124 = sext i32 %123 to i64
%125 = getelementptr inbounds [100 x double], [100 x double]* %122, i64 0, i64 %124
store double %119, double* %125
br label %126
126: ; preds = %114
%127 = load i32, i32* %9
%128 = add nsw i32 %127, 1
store i32 %128, i32* %9
br label %111
129: ; preds = %111
br label %130
130: ; preds = %129
%131 = load i32, i32* %2
%132 = add nsw i32 %131, 1
store i32 %132, i32* %2
br label %89
133: ; preds = %89
store i32 0, i32* %2
br label %134
134: ; preds = %162, %133
%135 = load i32, i32* %2
%136 = icmp slt i32 %135, 10
br i1 %136, label %137, label %165
137: ; preds = %134
store i32 0, i32* %9
br label %138
138: ; preds = %158, %137
%139 = load i32, i32* %9
%140 = icmp slt i32 %139, 100
br i1 %140, label %141, label %161
141: ; preds = %138
%142 = load i32, i32* %2
%143 = sext i32 %142 to i64
%144 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %8, i64 0, i64 %143
%145 = load i32, i32* %9
%146 = sext i32 %145 to i64
%147 = getelementptr inbounds [100 x double], [100 x double]* %144, i64 0, i64 %146
%148 = load double, double* %147
%149 = load i32, i32* %2
%150 = mul nsw i32 %149, 6
%151 = load i32, i32* %9
%152 = mul nsw i32 %151, 2
%153 = add nsw i32 %150, %152
%154 = sitofp i32 %153 to double
%155 = fcmp une double %148, %154
br i1 %155, label %156, label %157
156: ; preds = %141
store i32 2, i32* %1
br label %166
157: ; preds = %141
br label %158
158: ; preds = %157
%159 = load i32, i32* %9
%160 = add nsw i32 %159, 1
store i32 %160, i32* %9
br label %138
161: ; preds = %138
br label %162
162: ; preds = %161
%163 = load i32, i32* %2
%164 = add nsw i32 %163, 1
store i32 %164, i32* %2
br label %134
165: ; preds = %134
store i32 0, i32* %1
br label %166
166: ; preds = %165, %156, %56
%167 = load i32, i32* %1
ret i32 %167
}

LLVM IR (-O2):
define i32 @main() {
%1 = alloca [100 x double]
%2 = alloca [100 x double]
%3 = alloca [100 x double]
%4 = bitcast [100 x double]* %3 to i8*
%5 = alloca [10 x [100 x double]]
%6 = alloca [10 x [100 x double]]
%7 = bitcast [100 x double]* %1 to i8*
%8 = bitcast [100 x double]* %2 to i8*
br label %9
9: ; preds = %9, %0
%10 = phi i64 [ 0, %0 ], [ %35, %9 ]
%11 = phi <2 x i32> [ <i32 0, i32 1>, %0 ], [ %36, %9 ]
%12 = sitofp <2 x i32> %11 to <2 x double>
%13 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %10
%14 = bitcast double* %13 to <2 x double>*
store <2 x double> %12, <2 x double>* %14
%15 = add nuw nsw i64 %10, 2
%16 = add <2 x i32> %11, <i32 2, i32 2>
%17 = sitofp <2 x i32> %16 to <2 x double>
%18 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %15
%19 = bitcast double* %18 to <2 x double>*
store <2 x double> %17, <2 x double>* %19
%20 = add nuw nsw i64 %10, 4
%21 = add <2 x i32> %11, <i32 4, i32 4>
%22 = sitofp <2 x i32> %21 to <2 x double>
%23 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %20
%24 = bitcast double* %23 to <2 x double>*
store <2 x double> %22, <2 x double>* %24
%25 = add nuw nsw i64 %10, 6
%26 = add <2 x i32> %11, <i32 6, i32 6>
%27 = sitofp <2 x i32> %26 to <2 x double>
%28 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %25
%29 = bitcast double* %28 to <2 x double>*
store <2 x double> %27, <2 x double>* %29
%30 = add nuw nsw i64 %10, 8
%31 = add <2 x i32> %11, <i32 8, i32 8>
%32 = sitofp <2 x i32> %31 to <2 x double>
%33 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %30
%34 = bitcast double* %33 to <2 x double>*
store <2 x double> %32, <2 x double>* %34
%35 = add nuw nsw i64 %10, 10
%36 = add <2 x i32> %11, <i32 10, i32 10>
%37 = icmp eq i64 %35, 100
br i1 %37, label %38, label %9
38: ; preds = %9, %38
%39 = phi i64 [ %57, %38 ], [ 0, %9 ]
%40 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %39
%41 = bitcast double* %40 to <2 x double>*
%42 = load <2 x double>, <2 x double>* %41
%43 = fptosi <2 x double> %42 to <2 x i32>
%44 = mul nsw <2 x i32> %43, %43
%45 = sitofp <2 x i32> %44 to <2 x double>
%46 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %39
%47 = bitcast double* %46 to <2 x double>*
store <2 x double> %45, <2 x double>* %47
%48 = or i64 %39, 2
%49 = getelementptr inbounds [100 x double], [100 x double]* %1, i64 0, i64 %48
%50 = bitcast double* %49 to <2 x double>*
%51 = load <2 x double>, <2 x double>* %50
%52 = fptosi <2 x double> %51 to <2 x i32>
%53 = mul nsw <2 x i32> %52, %52
%54 = sitofp <2 x i32> %53 to <2 x double>
%55 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %48
%56 = bitcast double* %55 to <2 x double>*
store <2 x double> %54, <2 x double>* %56
%57 = add nuw nsw i64 %39, 4
%58 = icmp eq i64 %57, 100
br i1 %58, label %86, label %38
59: ; preds = %86
%60 = or i64 %87, 1
%61 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %60
%62 = load double, double* %61
%63 = mul nuw nsw i64 %60, %60
%64 = trunc i64 %63 to i32
%65 = sitofp i32 %64 to double
%66 = fcmp une double %62, %65
br i1 %66, label %667, label %67
67: ; preds = %59
%68 = or i64 %87, 2
%69 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %68
%70 = load double, double* %69
%71 = mul nuw nsw i64 %68, %68
%72 = trunc i64 %71 to i32
%73 = sitofp i32 %72 to double
%74 = fcmp une double %70, %73
br i1 %74, label %667, label %75
75: ; preds = %67
%76 = or i64 %87, 3
%77 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %76
%78 = load double, double* %77
%79 = mul nuw nsw i64 %76, %76
%80 = trunc i64 %79 to i32
%81 = sitofp i32 %80 to double
%82 = fcmp une double %78, %81
br i1 %82, label %667, label %83
83: ; preds = %75
%84 = add nuw nsw i64 %87, 4
%85 = icmp eq i64 %84, 100
br i1 %85, label %94, label %86
86: ; preds = %38, %83
%87 = phi i64 [ %84, %83 ], [ 0, %38 ]
%88 = getelementptr inbounds [100 x double], [100 x double]* %2, i64 0, i64 %87
%89 = load double, double* %88
%90 = mul nuw nsw i64 %87, %87
%91 = trunc i64 %90 to i32
%92 = sitofp i32 %91 to double
%93 = fcmp une double %89, %92
br i1 %93, label %667, label %59
94: ; preds = %83
%95 = bitcast [10 x [100 x double]]* %5 to i8*
%96 = bitcast [10 x [100 x double]]* %6 to i8*
br label %97
97: ; preds = %97, %94
%98 = phi i64 [ 0, %94 ], [ %123, %97 ]
%99 = phi <2 x i32> [ <i32 0, i32 1>, %94 ], [ %124, %97 ]
%100 = sitofp <2 x i32> %99 to <2 x double>
%101 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 0, i64 %98
%102 = bitcast double* %101 to <2 x double>*
store <2 x double> %100, <2 x double>* %102
%103 = add nuw nsw i64 %98, 2
%104 = add <2 x i32> %99, <i32 2, i32 2>
%105 = sitofp <2 x i32> %104 to <2 x double>
%106 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 0, i64 %103
%107 = bitcast double* %106 to <2 x double>*
store <2 x double> %105, <2 x double>* %107
%108 = add nuw nsw i64 %98, 4
%109 = add <2 x i32> %99, <i32 4, i32 4>
%110 = sitofp <2 x i32> %109 to <2 x double>
%111 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 0, i64 %108
%112 = bitcast double* %111 to <2 x double>*
store <2 x double> %110, <2 x double>* %112
%113 = add nuw nsw i64 %98, 6
%114 = add <2 x i32> %99, <i32 6, i32 6>
%115 = sitofp <2 x i32> %114 to <2 x double>
%116 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 0, i64 %113
%117 = bitcast double* %116 to <2 x double>*
store <2 x double> %115, <2 x double>* %117
%118 = add nuw nsw i64 %98, 8
%119 = add <2 x i32> %99, <i32 8, i32 8>
%120 = sitofp <2 x i32> %119 to <2 x double>
%121 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 0, i64 %118
%122 = bitcast double* %121 to <2 x double>*
store <2 x double> %120, <2 x double>* %122
%123 = add nuw nsw i64 %98, 10
%124 = add <2 x i32> %99, <i32 10, i32 10>
%125 = icmp eq i64 %123, 100
br i1 %125, label %126, label %97
126: ; preds = %97, %126
%127 = phi i64 [ %153, %126 ], [ 0, %97 ]
%128 = phi <2 x i32> [ %154, %126 ], [ <i32 0, i32 1>, %97 ]
%129 = add <2 x i32> %128, <i32 3, i32 3>
%130 = sitofp <2 x i32> %129 to <2 x double>
%131 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 1, i64 %127
%132 = bitcast double* %131 to <2 x double>*
store <2 x double> %130, <2 x double>* %132
%133 = add nuw nsw i64 %127, 2
%134 = add <2 x i32> %128, <i32 5, i32 5>
%135 = sitofp <2 x i32> %134 to <2 x double>
%136 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 1, i64 %133
%137 = bitcast double* %136 to <2 x double>*
store <2 x double> %135, <2 x double>* %137
%138 = add nuw nsw i64 %127, 4
%139 = add <2 x i32> %128, <i32 7, i32 7>
%140 = sitofp <2 x i32> %139 to <2 x double>
%141 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 1, i64 %138
%142 = bitcast double* %141 to <2 x double>*
store <2 x double> %140, <2 x double>* %142
%143 = add nuw nsw i64 %127, 6
%144 = add <2 x i32> %128, <i32 9, i32 9>
%145 = sitofp <2 x i32> %144 to <2 x double>
%146 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 1, i64 %143
%147 = bitcast double* %146 to <2 x double>*
store <2 x double> %145, <2 x double>* %147
%148 = add nuw nsw i64 %127, 8
%149 = add <2 x i32> %128, <i32 11, i32 11>
%150 = sitofp <2 x i32> %149 to <2 x double>
%151 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 1, i64 %148
%152 = bitcast double* %151 to <2 x double>*
store <2 x double> %150, <2 x double>* %152
%153 = add nuw nsw i64 %127, 10
%154 = add <2 x i32> %128, <i32 10, i32 10>
%155 = icmp eq i64 %153, 100
br i1 %155, label %156, label %126
156: ; preds = %126, %156
%157 = phi i64 [ %183, %156 ], [ 0, %126 ]
%158 = phi <2 x i32> [ %184, %156 ], [ <i32 0, i32 1>, %126 ]
%159 = add <2 x i32> %158, <i32 6, i32 6>
%160 = sitofp <2 x i32> %159 to <2 x double>
%161 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 2, i64 %157
%162 = bitcast double* %161 to <2 x double>*
store <2 x double> %160, <2 x double>* %162
%163 = add nuw nsw i64 %157, 2
%164 = add <2 x i32> %158, <i32 8, i32 8>
%165 = sitofp <2 x i32> %164 to <2 x double>
%166 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 2, i64 %163
%167 = bitcast double* %166 to <2 x double>*
store <2 x double> %165, <2 x double>* %167
%168 = add nuw nsw i64 %157, 4
%169 = add <2 x i32> %158, <i32 10, i32 10>
%170 = sitofp <2 x i32> %169 to <2 x double>
%171 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 2, i64 %168
%172 = bitcast double* %171 to <2 x double>*
store <2 x double> %170, <2 x double>* %172
%173 = add nuw nsw i64 %157, 6
%174 = add <2 x i32> %158, <i32 12, i32 12>
%175 = sitofp <2 x i32> %174 to <2 x double>
%176 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 2, i64 %173
%177 = bitcast double* %176 to <2 x double>*
store <2 x double> %175, <2 x double>* %177
%178 = add nuw nsw i64 %157, 8
%179 = add <2 x i32> %158, <i32 14, i32 14>
%180 = sitofp <2 x i32> %179 to <2 x double>
%181 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 2, i64 %178
%182 = bitcast double* %181 to <2 x double>*
store <2 x double> %180, <2 x double>* %182
%183 = add nuw nsw i64 %157, 10
%184 = add <2 x i32> %158, <i32 10, i32 10>
%185 = icmp eq i64 %183, 100
br i1 %185, label %186, label %156
186: ; preds = %156, %186
%187 = phi i64 [ %213, %186 ], [ 0, %156 ]
%188 = phi <2 x i32> [ %214, %186 ], [ <i32 0, i32 1>, %156 ]
%189 = add <2 x i32> %188, <i32 9, i32 9>
%190 = sitofp <2 x i32> %189 to <2 x double>
%191 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 3, i64 %187
%192 = bitcast double* %191 to <2 x double>*
store <2 x double> %190, <2 x double>* %192
%193 = add nuw nsw i64 %187, 2
%194 = add <2 x i32> %188, <i32 11, i32 11>
%195 = sitofp <2 x i32> %194 to <2 x double>
%196 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 3, i64 %193
%197 = bitcast double* %196 to <2 x double>*
store <2 x double> %195, <2 x double>* %197
%198 = add nuw nsw i64 %187, 4
%199 = add <2 x i32> %188, <i32 13, i32 13>
%200 = sitofp <2 x i32> %199 to <2 x double>
%201 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 3, i64 %198
%202 = bitcast double* %201 to <2 x double>*
store <2 x double> %200, <2 x double>* %202
%203 = add nuw nsw i64 %187, 6
%204 = add <2 x i32> %188, <i32 15, i32 15>
%205 = sitofp <2 x i32> %204 to <2 x double>
%206 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 3, i64 %203
%207 = bitcast double* %206 to <2 x double>*
store <2 x double> %205, <2 x double>* %207
%208 = add nuw nsw i64 %187, 8
%209 = add <2 x i32> %188, <i32 17, i32 17>
%210 = sitofp <2 x i32> %209 to <2 x double>
%211 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 3, i64 %208
%212 = bitcast double* %211 to <2 x double>*
store <2 x double> %210, <2 x double>* %212
%213 = add nuw nsw i64 %187, 10
%214 = add <2 x i32> %188, <i32 10, i32 10>
%215 = icmp eq i64 %213, 100
br i1 %215, label %216, label %186
216: ; preds = %186, %216
%217 = phi i64 [ %243, %216 ], [ 0, %186 ]
%218 = phi <2 x i32> [ %244, %216 ], [ <i32 0, i32 1>, %186 ]
%219 = add <2 x i32> %218, <i32 12, i32 12>
%220 = sitofp <2 x i32> %219 to <2 x double>
%221 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 4, i64 %217
%222 = bitcast double* %221 to <2 x double>*
store <2 x double> %220, <2 x double>* %222
%223 = add nuw nsw i64 %217, 2
%224 = add <2 x i32> %218, <i32 14, i32 14>
%225 = sitofp <2 x i32> %224 to <2 x double>
%226 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 4, i64 %223
%227 = bitcast double* %226 to <2 x double>*
store <2 x double> %225, <2 x double>* %227
%228 = add nuw nsw i64 %217, 4
%229 = add <2 x i32> %218, <i32 16, i32 16>
%230 = sitofp <2 x i32> %229 to <2 x double>
%231 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 4, i64 %228
%232 = bitcast double* %231 to <2 x double>*
store <2 x double> %230, <2 x double>* %232
%233 = add nuw nsw i64 %217, 6
%234 = add <2 x i32> %218, <i32 18, i32 18>
%235 = sitofp <2 x i32> %234 to <2 x double>
%236 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 4, i64 %233
%237 = bitcast double* %236 to <2 x double>*
store <2 x double> %235, <2 x double>* %237
%238 = add nuw nsw i64 %217, 8
%239 = add <2 x i32> %218, <i32 20, i32 20>
%240 = sitofp <2 x i32> %239 to <2 x double>
%241 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 4, i64 %238
%242 = bitcast double* %241 to <2 x double>*
store <2 x double> %240, <2 x double>* %242
%243 = add nuw nsw i64 %217, 10
%244 = add <2 x i32> %218, <i32 10, i32 10>
%245 = icmp eq i64 %243, 100
br i1 %245, label %246, label %216
246: ; preds = %216, %246
%247 = phi i64 [ %273, %246 ], [ 0, %216 ]
%248 = phi <2 x i32> [ %274, %246 ], [ <i32 0, i32 1>, %216 ]
%249 = add <2 x i32> %248, <i32 15, i32 15>
%250 = sitofp <2 x i32> %249 to <2 x double>
%251 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 5, i64 %247
%252 = bitcast double* %251 to <2 x double>*
store <2 x double> %250, <2 x double>* %252
%253 = add nuw nsw i64 %247, 2
%254 = add <2 x i32> %248, <i32 17, i32 17>
%255 = sitofp <2 x i32> %254 to <2 x double>
%256 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 5, i64 %253
%257 = bitcast double* %256 to <2 x double>*
store <2 x double> %255, <2 x double>* %257
%258 = add nuw nsw i64 %247, 4
%259 = add <2 x i32> %248, <i32 19, i32 19>
%260 = sitofp <2 x i32> %259 to <2 x double>
%261 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 5, i64 %258
%262 = bitcast double* %261 to <2 x double>*
store <2 x double> %260, <2 x double>* %262
%263 = add nuw nsw i64 %247, 6
%264 = add <2 x i32> %248, <i32 21, i32 21>
%265 = sitofp <2 x i32> %264 to <2 x double>
%266 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 5, i64 %263
%267 = bitcast double* %266 to <2 x double>*
store <2 x double> %265, <2 x double>* %267
%268 = add nuw nsw i64 %247, 8
%269 = add <2 x i32> %248, <i32 23, i32 23>
%270 = sitofp <2 x i32> %269 to <2 x double>
%271 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 5, i64 %268
%272 = bitcast double* %271 to <2 x double>*
store <2 x double> %270, <2 x double>* %272
%273 = add nuw nsw i64 %247, 10
%274 = add <2 x i32> %248, <i32 10, i32 10>
%275 = icmp eq i64 %273, 100
br i1 %275, label %276, label %246
276: ; preds = %246, %276
%277 = phi i64 [ %303, %276 ], [ 0, %246 ]
%278 = phi <2 x i32> [ %304, %276 ], [ <i32 0, i32 1>, %246 ]
%279 = add <2 x i32> %278, <i32 18, i32 18>
%280 = sitofp <2 x i32> %279 to <2 x double>
%281 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 6, i64 %277
%282 = bitcast double* %281 to <2 x double>*
store <2 x double> %280, <2 x double>* %282
%283 = add nuw nsw i64 %277, 2
%284 = add <2 x i32> %278, <i32 20, i32 20>
%285 = sitofp <2 x i32> %284 to <2 x double>
%286 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 6, i64 %283
%287 = bitcast double* %286 to <2 x double>*
store <2 x double> %285, <2 x double>* %287
%288 = add nuw nsw i64 %277, 4
%289 = add <2 x i32> %278, <i32 22, i32 22>
%290 = sitofp <2 x i32> %289 to <2 x double>
%291 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 6, i64 %288
%292 = bitcast double* %291 to <2 x double>*
store <2 x double> %290, <2 x double>* %292
%293 = add nuw nsw i64 %277, 6
%294 = add <2 x i32> %278, <i32 24, i32 24>
%295 = sitofp <2 x i32> %294 to <2 x double>
%296 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 6, i64 %293
%297 = bitcast double* %296 to <2 x double>*
store <2 x double> %295, <2 x double>* %297
%298 = add nuw nsw i64 %277, 8
%299 = add <2 x i32> %278, <i32 26, i32 26>
%300 = sitofp <2 x i32> %299 to <2 x double>
%301 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 6, i64 %298
%302 = bitcast double* %301 to <2 x double>*
store <2 x double> %300, <2 x double>* %302
%303 = add nuw nsw i64 %277, 10
%304 = add <2 x i32> %278, <i32 10, i32 10>
%305 = icmp eq i64 %303, 100
br i1 %305, label %306, label %276
306: ; preds = %276, %306
%307 = phi i64 [ %333, %306 ], [ 0, %276 ]
%308 = phi <2 x i32> [ %334, %306 ], [ <i32 0, i32 1>, %276 ]
%309 = add <2 x i32> %308, <i32 21, i32 21>
%310 = sitofp <2 x i32> %309 to <2 x double>
%311 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 7, i64 %307
%312 = bitcast double* %311 to <2 x double>*
store <2 x double> %310, <2 x double>* %312
%313 = add nuw nsw i64 %307, 2
%314 = add <2 x i32> %308, <i32 23, i32 23>
%315 = sitofp <2 x i32> %314 to <2 x double>
%316 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 7, i64 %313
%317 = bitcast double* %316 to <2 x double>*
store <2 x double> %315, <2 x double>* %317
%318 = add nuw nsw i64 %307, 4
%319 = add <2 x i32> %308, <i32 25, i32 25>
%320 = sitofp <2 x i32> %319 to <2 x double>
%321 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 7, i64 %318
%322 = bitcast double* %321 to <2 x double>*
store <2 x double> %320, <2 x double>* %322
%323 = add nuw nsw i64 %307, 6
%324 = add <2 x i32> %308, <i32 27, i32 27>
%325 = sitofp <2 x i32> %324 to <2 x double>
%326 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 7, i64 %323
%327 = bitcast double* %326 to <2 x double>*
store <2 x double> %325, <2 x double>* %327
%328 = add nuw nsw i64 %307, 8
%329 = add <2 x i32> %308, <i32 29, i32 29>
%330 = sitofp <2 x i32> %329 to <2 x double>
%331 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 7, i64 %328
%332 = bitcast double* %331 to <2 x double>*
store <2 x double> %330, <2 x double>* %332
%333 = add nuw nsw i64 %307, 10
%334 = add <2 x i32> %308, <i32 10, i32 10>
%335 = icmp eq i64 %333, 100
br i1 %335, label %336, label %306
336: ; preds = %306, %336
%337 = phi i64 [ %363, %336 ], [ 0, %306 ]
%338 = phi <2 x i32> [ %364, %336 ], [ <i32 0, i32 1>, %306 ]
%339 = add <2 x i32> %338, <i32 24, i32 24>
%340 = sitofp <2 x i32> %339 to <2 x double>
%341 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 8, i64 %337
%342 = bitcast double* %341 to <2 x double>*
store <2 x double> %340, <2 x double>* %342
%343 = add nuw nsw i64 %337, 2
%344 = add <2 x i32> %338, <i32 26, i32 26>
%345 = sitofp <2 x i32> %344 to <2 x double>
%346 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 8, i64 %343
%347 = bitcast double* %346 to <2 x double>*
store <2 x double> %345, <2 x double>* %347
%348 = add nuw nsw i64 %337, 4
%349 = add <2 x i32> %338, <i32 28, i32 28>
%350 = sitofp <2 x i32> %349 to <2 x double>
%351 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 8, i64 %348
%352 = bitcast double* %351 to <2 x double>*
store <2 x double> %350, <2 x double>* %352
%353 = add nuw nsw i64 %337, 6
%354 = add <2 x i32> %338, <i32 30, i32 30>
%355 = sitofp <2 x i32> %354 to <2 x double>
%356 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 8, i64 %353
%357 = bitcast double* %356 to <2 x double>*
store <2 x double> %355, <2 x double>* %357
%358 = add nuw nsw i64 %337, 8
%359 = add <2 x i32> %338, <i32 32, i32 32>
%360 = sitofp <2 x i32> %359 to <2 x double>
%361 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 8, i64 %358
%362 = bitcast double* %361 to <2 x double>*
store <2 x double> %360, <2 x double>* %362
%363 = add nuw nsw i64 %337, 10
%364 = add <2 x i32> %338, <i32 10, i32 10>
%365 = icmp eq i64 %363, 100
br i1 %365, label %366, label %336
366: ; preds = %336, %366
%367 = phi i64 [ %393, %366 ], [ 0, %336 ]
%368 = phi <2 x i32> [ %394, %366 ], [ <i32 0, i32 1>, %336 ]
%369 = add <2 x i32> %368, <i32 27, i32 27>
%370 = sitofp <2 x i32> %369 to <2 x double>
%371 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 9, i64 %367
%372 = bitcast double* %371 to <2 x double>*
store <2 x double> %370, <2 x double>* %372
%373 = add nuw nsw i64 %367, 2
%374 = add <2 x i32> %368, <i32 29, i32 29>
%375 = sitofp <2 x i32> %374 to <2 x double>
%376 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 9, i64 %373
%377 = bitcast double* %376 to <2 x double>*
store <2 x double> %375, <2 x double>* %377
%378 = add nuw nsw i64 %367, 4
%379 = add <2 x i32> %368, <i32 31, i32 31>
%380 = sitofp <2 x i32> %379 to <2 x double>
%381 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 9, i64 %378
%382 = bitcast double* %381 to <2 x double>*
store <2 x double> %380, <2 x double>* %382
%383 = add nuw nsw i64 %367, 6
%384 = add <2 x i32> %368, <i32 33, i32 33>
%385 = sitofp <2 x i32> %384 to <2 x double>
%386 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 9, i64 %383
%387 = bitcast double* %386 to <2 x double>*
store <2 x double> %385, <2 x double>* %387
%388 = add nuw nsw i64 %367, 8
%389 = add <2 x i32> %368, <i32 35, i32 35>
%390 = sitofp <2 x i32> %389 to <2 x double>
%391 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 9, i64 %388
%392 = bitcast double* %391 to <2 x double>*
store <2 x double> %390, <2 x double>* %392
%393 = add nuw nsw i64 %367, 10
%394 = add <2 x i32> %368, <i32 10, i32 10>
%395 = icmp eq i64 %393, 100
br i1 %395, label %396, label %366
396: ; preds = %366, %438
%397 = phi i64 [ %439, %438 ], [ 0, %366 ]
%398 = getelementptr [10 x [100 x double]], [10 x [100 x double]]* %5, i64 0, i64 %397, i64 0
%399 = bitcast double* %398 to i8*
br label %400
400: ; preds = %400, %396
%401 = phi i64 [ 0, %396 ], [ %436, %400 ]
%402 = getelementptr inbounds [100 x double], [100 x double]* %3, i64 0, i64 %401
%403 = bitcast double* %402 to <2 x double>*
%404 = load <2 x double>, <2 x double>* %403
%405 = fmul <2 x double> %404, <double 2.000000e+00, double 2.000000e+00>
%406 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 %397, i64 %401
%407 = bitcast double* %406 to <2 x double>*
store <2 x double> %405, <2 x double>* %407
%408 = add nuw nsw i64 %401, 2
%409 = getelementptr inbounds [100 x double], [100 x double]* %3, i64 0, i64 %408
%410 = bitcast double* %409 to <2 x double>*
%411 = load <2 x double>, <2 x double>* %410
%412 = fmul <2 x double> %411, <double 2.000000e+00, double 2.000000e+00>
%413 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 %397, i64 %408
%414 = bitcast double* %413 to <2 x double>*
store <2 x double> %412, <2 x double>* %414
%415 = add nuw nsw i64 %401, 4
%416 = getelementptr inbounds [100 x double], [100 x double]* %3, i64 0, i64 %415
%417 = bitcast double* %416 to <2 x double>*
%418 = load <2 x double>, <2 x double>* %417
%419 = fmul <2 x double> %418, <double 2.000000e+00, double 2.000000e+00>
%420 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 %397, i64 %415
%421 = bitcast double* %420 to <2 x double>*
store <2 x double> %419, <2 x double>* %421
%422 = add nuw nsw i64 %401, 6
%423 = getelementptr inbounds [100 x double], [100 x double]* %3, i64 0, i64 %422
%424 = bitcast double* %423 to <2 x double>*
%425 = load <2 x double>, <2 x double>* %424
%426 = fmul <2 x double> %425, <double 2.000000e+00, double 2.000000e+00>
%427 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 %397, i64 %422
%428 = bitcast double* %427 to <2 x double>*
store <2 x double> %426, <2 x double>* %428
%429 = add nuw nsw i64 %401, 8
%430 = getelementptr inbounds [100 x double], [100 x double]* %3, i64 0, i64 %429
%431 = bitcast double* %430 to <2 x double>*
%432 = load <2 x double>, <2 x double>* %431
%433 = fmul <2 x double> %432, <double 2.000000e+00, double 2.000000e+00>
%434 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 %397, i64 %429
%435 = bitcast double* %434 to <2 x double>*
store <2 x double> %433, <2 x double>* %435
%436 = add nuw nsw i64 %401, 10
%437 = icmp eq i64 %436, 100
br i1 %437, label %438, label %400
438: ; preds = %400
%439 = add nuw nsw i64 %397, 1
%440 = icmp eq i64 %439, 10
br i1 %440, label %468, label %396
441: ; preds = %468
%442 = or i64 %469, 1
%443 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 0, i64 %442
%444 = load double, double* %443
%445 = trunc i64 %442 to i32
%446 = shl i32 %445, 1
%447 = sitofp i32 %446 to double
%448 = fcmp une double %444, %447
br i1 %448, label %665, label %449
449: ; preds = %441
%450 = or i64 %469, 2
%451 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 0, i64 %450
%452 = load double, double* %451
%453 = trunc i64 %450 to i32
%454 = shl i32 %453, 1
%455 = sitofp i32 %454 to double
%456 = fcmp une double %452, %455
br i1 %456, label %665, label %457
457: ; preds = %449
%458 = or i64 %469, 3
%459 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 0, i64 %458
%460 = load double, double* %459
%461 = trunc i64 %458 to i32
%462 = shl i32 %461, 1
%463 = sitofp i32 %462 to double
%464 = fcmp une double %460, %463
br i1 %464, label %665, label %465
465: ; preds = %457
%466 = add nuw nsw i64 %469, 4
%467 = icmp eq i64 %466, 100
br i1 %467, label %476, label %468
468: ; preds = %438, %465
%469 = phi i64 [ %466, %465 ], [ 0, %438 ]
%470 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 0, i64 %469
%471 = load double, double* %470
%472 = trunc i64 %469 to i32
%473 = shl i32 %472, 1
%474 = sitofp i32 %473 to double
%475 = fcmp une double %471, %474
br i1 %475, label %665, label %441
476: ; preds = %465, %494
%477 = phi i64 [ %495, %494 ], [ 0, %465 ]
%478 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 1, i64 %477
%479 = load double, double* %478
%480 = trunc i64 %477 to i32
%481 = shl i32 %480, 1
%482 = add nuw nsw i32 %481, 6
%483 = sitofp i32 %482 to double
%484 = fcmp une double %479, %483
br i1 %484, label %665, label %485
485: ; preds = %476
%486 = or i64 %477, 1
%487 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 1, i64 %486
%488 = load double, double* %487
%489 = trunc i64 %486 to i32
%490 = shl i32 %489, 1
%491 = add nuw nsw i32 %490, 6
%492 = sitofp i32 %491 to double
%493 = fcmp une double %488, %492
br i1 %493, label %665, label %494
494: ; preds = %485
%495 = add nuw nsw i64 %477, 2
%496 = icmp eq i64 %495, 100
br i1 %496, label %497, label %476
497: ; preds = %494, %515
%498 = phi i64 [ %516, %515 ], [ 0, %494 ]
%499 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 2, i64 %498
%500 = load double, double* %499
%501 = trunc i64 %498 to i32
%502 = shl i32 %501, 1
%503 = add nuw nsw i32 %502, 12
%504 = sitofp i32 %503 to double
%505 = fcmp une double %500, %504
br i1 %505, label %665, label %506
506: ; preds = %497
%507 = or i64 %498, 1
%508 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 2, i64 %507
%509 = load double, double* %508
%510 = trunc i64 %507 to i32
%511 = shl i32 %510, 1
%512 = add nuw nsw i32 %511, 12
%513 = sitofp i32 %512 to double
%514 = fcmp une double %509, %513
br i1 %514, label %665, label %515
515: ; preds = %506
%516 = add nuw nsw i64 %498, 2
%517 = icmp eq i64 %516, 100
br i1 %517, label %518, label %497
518: ; preds = %515, %536
%519 = phi i64 [ %537, %536 ], [ 0, %515 ]
%520 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 3, i64 %519
%521 = load double, double* %520
%522 = trunc i64 %519 to i32
%523 = shl i32 %522, 1
%524 = add nuw nsw i32 %523, 18
%525 = sitofp i32 %524 to double
%526 = fcmp une double %521, %525
br i1 %526, label %665, label %527
527: ; preds = %518
%528 = or i64 %519, 1
%529 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 3, i64 %528
%530 = load double, double* %529
%531 = trunc i64 %528 to i32
%532 = shl i32 %531, 1
%533 = add nuw nsw i32 %532, 18
%534 = sitofp i32 %533 to double
%535 = fcmp une double %530, %534
br i1 %535, label %665, label %536
536: ; preds = %527
%537 = add nuw nsw i64 %519, 2
%538 = icmp eq i64 %537, 100
br i1 %538, label %539, label %518
539: ; preds = %536, %557
%540 = phi i64 [ %558, %557 ], [ 0, %536 ]
%541 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 4, i64 %540
%542 = load double, double* %541
%543 = trunc i64 %540 to i32
%544 = shl i32 %543, 1
%545 = add nuw nsw i32 %544, 24
%546 = sitofp i32 %545 to double
%547 = fcmp une double %542, %546
br i1 %547, label %665, label %548
548: ; preds = %539
%549 = or i64 %540, 1
%550 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 4, i64 %549
%551 = load double, double* %550
%552 = trunc i64 %549 to i32
%553 = shl i32 %552, 1
%554 = add nuw nsw i32 %553, 24
%555 = sitofp i32 %554 to double
%556 = fcmp une double %551, %555
br i1 %556, label %665, label %557
557: ; preds = %548
%558 = add nuw nsw i64 %540, 2
%559 = icmp eq i64 %558, 100
br i1 %559, label %560, label %539
560: ; preds = %557, %578
%561 = phi i64 [ %579, %578 ], [ 0, %557 ]
%562 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 5, i64 %561
%563 = load double, double* %562
%564 = trunc i64 %561 to i32
%565 = shl i32 %564, 1
%566 = add nuw nsw i32 %565, 30
%567 = sitofp i32 %566 to double
%568 = fcmp une double %563, %567
br i1 %568, label %665, label %569
569: ; preds = %560
%570 = or i64 %561, 1
%571 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 5, i64 %570
%572 = load double, double* %571
%573 = trunc i64 %570 to i32
%574 = shl i32 %573, 1
%575 = add nuw nsw i32 %574, 30
%576 = sitofp i32 %575 to double
%577 = fcmp une double %572, %576
br i1 %577, label %665, label %578
578: ; preds = %569
%579 = add nuw nsw i64 %561, 2
%580 = icmp eq i64 %579, 100
br i1 %580, label %581, label %560
581: ; preds = %578, %599
%582 = phi i64 [ %600, %599 ], [ 0, %578 ]
%583 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 6, i64 %582
%584 = load double, double* %583
%585 = trunc i64 %582 to i32
%586 = shl i32 %585, 1
%587 = add nuw nsw i32 %586, 36
%588 = sitofp i32 %587 to double
%589 = fcmp une double %584, %588
br i1 %589, label %665, label %590
590: ; preds = %581
%591 = or i64 %582, 1
%592 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 6, i64 %591
%593 = load double, double* %592
%594 = trunc i64 %591 to i32
%595 = shl i32 %594, 1
%596 = add nuw nsw i32 %595, 36
%597 = sitofp i32 %596 to double
%598 = fcmp une double %593, %597
br i1 %598, label %665, label %599
599: ; preds = %590
%600 = add nuw nsw i64 %582, 2
%601 = icmp eq i64 %600, 100
br i1 %601, label %602, label %581
602: ; preds = %599, %620
%603 = phi i64 [ %621, %620 ], [ 0, %599 ]
%604 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 7, i64 %603
%605 = load double, double* %604
%606 = trunc i64 %603 to i32
%607 = shl i32 %606, 1
%608 = add nuw nsw i32 %607, 42
%609 = sitofp i32 %608 to double
%610 = fcmp une double %605, %609
br i1 %610, label %665, label %611
611: ; preds = %602
%612 = or i64 %603, 1
%613 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 7, i64 %612
%614 = load double, double* %613
%615 = trunc i64 %612 to i32
%616 = shl i32 %615, 1
%617 = add nuw nsw i32 %616, 42
%618 = sitofp i32 %617 to double
%619 = fcmp une double %614, %618
br i1 %619, label %665, label %620
620: ; preds = %611
%621 = add nuw nsw i64 %603, 2
%622 = icmp eq i64 %621, 100
br i1 %622, label %623, label %602
623: ; preds = %620, %641
%624 = phi i64 [ %642, %641 ], [ 0, %620 ]
%625 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 8, i64 %624
%626 = load double, double* %625
%627 = trunc i64 %624 to i32
%628 = shl i32 %627, 1
%629 = add nuw nsw i32 %628, 48
%630 = sitofp i32 %629 to double
%631 = fcmp une double %626, %630
br i1 %631, label %665, label %632
632: ; preds = %623
%633 = or i64 %624, 1
%634 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 8, i64 %633
%635 = load double, double* %634
%636 = trunc i64 %633 to i32
%637 = shl i32 %636, 1
%638 = add nuw nsw i32 %637, 48
%639 = sitofp i32 %638 to double
%640 = fcmp une double %635, %639
br i1 %640, label %665, label %641
641: ; preds = %632
%642 = add nuw nsw i64 %624, 2
%643 = icmp eq i64 %642, 100
br i1 %643, label %644, label %623
644: ; preds = %641, %662
%645 = phi i64 [ %663, %662 ], [ 0, %641 ]
%646 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 9, i64 %645
%647 = load double, double* %646
%648 = trunc i64 %645 to i32
%649 = shl i32 %648, 1
%650 = add nuw nsw i32 %649, 54
%651 = sitofp i32 %650 to double
%652 = fcmp une double %647, %651
br i1 %652, label %665, label %653
653: ; preds = %644
%654 = or i64 %645, 1
%655 = getelementptr inbounds [10 x [100 x double]], [10 x [100 x double]]* %6, i64 0, i64 9, i64 %654
%656 = load double, double* %655
%657 = trunc i64 %654 to i32
%658 = shl i32 %657, 1
%659 = add nuw nsw i32 %658, 54
%660 = sitofp i32 %659 to double
%661 = fcmp une double %656, %660
br i1 %661, label %665, label %662
662: ; preds = %653
%663 = add nuw nsw i64 %645, 2
%664 = icmp eq i64 %663, 100
br i1 %664, label %665, label %644
665: ; preds = %468, %441, %449, %457, %476, %485, %497, %506, %518, %527, %539, %548, %560, %569, %581, %590, %602, %611, %623, %632, %644, %653, %662
%666 = phi i32 [ 2, %644 ], [ 2, %653 ], [ 0, %662 ], [ 2, %632 ], [ 2, %623 ], [ 2, %611 ], [ 2, %602 ], [ 2, %590 ], [ 2, %581 ], [ 2, %569 ], [ 2, %560 ], [ 2, %548 ], [ 2, %539 ], [ 2, %527 ], [ 2, %518 ], [ 2, %506 ], [ 2, %497 ], [ 2, %485 ], [ 2, %476 ], [ 2, %457 ], [ 2, %449 ], [ 2, %441 ], [ 2, %468 ]
br label %667
667: ; preds = %86, %59, %67, %75, %665
%668 = phi i32 [ %666, %665 ], [ 1, %75 ], [ 1, %67 ], [ 1, %59 ], [ 1, %86 ]
ret i32 %668
}