double load_store_df(unsigned long num, const double *from_ptr, double *to_ptr,
                     const unsigned long *in_mask_ptr,
                     const unsigned long *out_mask_ptr) {
  double value00 = 0.0;
  double value01 = 0.0;
  double value02 = 0.0;
  double value03 = 0.0;
  double value04 = 0.0;
  double value05 = 0.0;
  double value06 = 0.0;
  double value07 = 0.0;
  double value08 = 0.0;
  double value09 = 0.0;
  double value10 = 0.0;
  double value11 = 0.0;
  double value12 = 0.0;
  double value13 = 0.0;
  double value14 = 0.0;
  double value15 = 0.0;
  double value16 = 0.0;
  double value17 = 0.0;
  double value18 = 0.0;
  double value19 = 0.0;
  double value20 = 0.0;
  double value21 = 0.0;
  double value22 = 0.0;
  double value23 = 0.0;
  double value24 = 0.0;
  double value25 = 0.0;
  double value26 = 0.0;
  double value27 = 0.0;
  double value28 = 0.0;
  double value29 = 0.0;
  double value30 = 0.0;
  double value31 = 0.0;
  double value32 = 0.0;
  double value33 = 0.0;
  double value34 = 0.0;
  double value35 = 0.0;
  double value36 = 0.0;
  double value37 = 0.0;
  double value38 = 0.0;
  double value39 = 0.0;
  unsigned long in_mask, in_mask2;
  unsigned long out_mask, out_mask2;
  unsigned long i;
  for (i = 0; i < num; i++) {
    in_mask = *in_mask_ptr++;
    in_mask2 = *in_mask_ptr++;
    if ((in_mask & (1L << 0)) != 0L)
      value00 = *from_ptr++;
    if ((in_mask & (1L << 1)) != 0L)
      value01 = *from_ptr++;
    if ((in_mask & (1L << 2)) != 0L)
      value02 = *from_ptr++;
    if ((in_mask & (1L << 3)) != 0L)
      value03 = *from_ptr++;
    if ((in_mask & (1L << 4)) != 0L)
      value04 = *from_ptr++;
    if ((in_mask & (1L << 5)) != 0L)
      value05 = *from_ptr++;
    if ((in_mask & (1L << 6)) != 0L)
      value06 = *from_ptr++;
    if ((in_mask & (1L << 7)) != 0L)
      value07 = *from_ptr++;
    if ((in_mask & (1L << 8)) != 0L)
      value08 = *from_ptr++;
    if ((in_mask & (1L << 9)) != 0L)
      value09 = *from_ptr++;
    if ((in_mask & (1L << 10)) != 0L)
      value10 = *from_ptr++;
    if ((in_mask & (1L << 11)) != 0L)
      value11 = *from_ptr++;
    if ((in_mask & (1L << 12)) != 0L)
      value12 = *from_ptr++;
    if ((in_mask & (1L << 13)) != 0L)
      value13 = *from_ptr++;
    if ((in_mask & (1L << 14)) != 0L)
      value14 = *from_ptr++;
    if ((in_mask & (1L << 15)) != 0L)
      value15 = *from_ptr++;
    if ((in_mask & (1L << 16)) != 0L)
      value16 = *from_ptr++;
    if ((in_mask & (1L << 17)) != 0L)
      value17 = *from_ptr++;
    if ((in_mask & (1L << 18)) != 0L)
      value18 = *from_ptr++;
    if ((in_mask & (1L << 19)) != 0L)
      value19 = *from_ptr++;
    if ((in_mask2 & (1L << 0)) != 0L)
      value20 = *from_ptr++;
    if ((in_mask2 & (1L << 1)) != 0L)
      value21 = *from_ptr++;
    if ((in_mask2 & (1L << 2)) != 0L)
      value22 = *from_ptr++;
    if ((in_mask2 & (1L << 3)) != 0L)
      value23 = *from_ptr++;
    if ((in_mask2 & (1L << 4)) != 0L)
      value24 = *from_ptr++;
    if ((in_mask2 & (1L << 5)) != 0L)
      value25 = *from_ptr++;
    if ((in_mask2 & (1L << 6)) != 0L)
      value26 = *from_ptr++;
    if ((in_mask2 & (1L << 7)) != 0L)
      value27 = *from_ptr++;
    if ((in_mask2 & (1L << 8)) != 0L)
      value28 = *from_ptr++;
    if ((in_mask2 & (1L << 9)) != 0L)
      value29 = *from_ptr++;
    if ((in_mask2 & (1L << 10)) != 0L)
      value30 = *from_ptr++;
    if ((in_mask2 & (1L << 11)) != 0L)
      value31 = *from_ptr++;
    if ((in_mask2 & (1L << 12)) != 0L)
      value32 = *from_ptr++;
    if ((in_mask2 & (1L << 13)) != 0L)
      value33 = *from_ptr++;
    if ((in_mask2 & (1L << 14)) != 0L)
      value34 = *from_ptr++;
    if ((in_mask2 & (1L << 15)) != 0L)
      value35 = *from_ptr++;
    if ((in_mask2 & (1L << 16)) != 0L)
      value36 = *from_ptr++;
    if ((in_mask2 & (1L << 17)) != 0L)
      value37 = *from_ptr++;
    if ((in_mask2 & (1L << 18)) != 0L)
      value38 = *from_ptr++;
    if ((in_mask2 & (1L << 19)) != 0L)
      value39 = *from_ptr++;
    out_mask = *out_mask_ptr++;
    out_mask2 = *out_mask_ptr++;
    if ((out_mask & (1L << 0)) != 0L)
      *to_ptr++ = value00;
    if ((out_mask & (1L << 1)) != 0L)
      *to_ptr++ = value01;
    if ((out_mask & (1L << 2)) != 0L)
      *to_ptr++ = value02;
    if ((out_mask & (1L << 3)) != 0L)
      *to_ptr++ = value03;
    if ((out_mask & (1L << 4)) != 0L)
      *to_ptr++ = value04;
    if ((out_mask & (1L << 5)) != 0L)
      *to_ptr++ = value05;
    if ((out_mask & (1L << 6)) != 0L)
      *to_ptr++ = value06;
    if ((out_mask & (1L << 7)) != 0L)
      *to_ptr++ = value07;
    if ((out_mask & (1L << 8)) != 0L)
      *to_ptr++ = value08;
    if ((out_mask & (1L << 9)) != 0L)
      *to_ptr++ = value09;
    if ((out_mask & (1L << 10)) != 0L)
      *to_ptr++ = value10;
    if ((out_mask & (1L << 11)) != 0L)
      *to_ptr++ = value11;
    if ((out_mask & (1L << 12)) != 0L)
      *to_ptr++ = value12;
    if ((out_mask & (1L << 13)) != 0L)
      *to_ptr++ = value13;
    if ((out_mask & (1L << 14)) != 0L)
      *to_ptr++ = value14;
    if ((out_mask & (1L << 15)) != 0L)
      *to_ptr++ = value15;
    if ((out_mask & (1L << 16)) != 0L)
      *to_ptr++ = value16;
    if ((out_mask & (1L << 17)) != 0L)
      *to_ptr++ = value17;
    if ((out_mask & (1L << 18)) != 0L)
      *to_ptr++ = value18;
    if ((out_mask & (1L << 19)) != 0L)
      *to_ptr++ = value19;
    if ((out_mask2 & (1L << 0)) != 0L)
      *to_ptr++ = value20;
    if ((out_mask2 & (1L << 1)) != 0L)
      *to_ptr++ = value21;
    if ((out_mask2 & (1L << 2)) != 0L)
      *to_ptr++ = value22;
    if ((out_mask2 & (1L << 3)) != 0L)
      *to_ptr++ = value23;
    if ((out_mask2 & (1L << 4)) != 0L)
      *to_ptr++ = value24;
    if ((out_mask2 & (1L << 5)) != 0L)
      *to_ptr++ = value25;
    if ((out_mask2 & (1L << 6)) != 0L)
      *to_ptr++ = value26;
    if ((out_mask2 & (1L << 7)) != 0L)
      *to_ptr++ = value27;
    if ((out_mask2 & (1L << 8)) != 0L)
      *to_ptr++ = value28;
    if ((out_mask2 & (1L << 9)) != 0L)
      *to_ptr++ = value29;
    if ((out_mask2 & (1L << 10)) != 0L)
      *to_ptr++ = value30;
    if ((out_mask2 & (1L << 11)) != 0L)
      *to_ptr++ = value31;
    if ((out_mask2 & (1L << 12)) != 0L)
      *to_ptr++ = value32;
    if ((out_mask2 & (1L << 13)) != 0L)
      *to_ptr++ = value33;
    if ((out_mask2 & (1L << 14)) != 0L)
      *to_ptr++ = value34;
    if ((out_mask2 & (1L << 15)) != 0L)
      *to_ptr++ = value35;
    if ((out_mask2 & (1L << 16)) != 0L)
      *to_ptr++ = value36;
    if ((out_mask2 & (1L << 17)) != 0L)
      *to_ptr++ = value37;
    if ((out_mask2 & (1L << 18)) != 0L)
      *to_ptr++ = value38;
    if ((out_mask2 & (1L << 19)) != 0L)
      *to_ptr++ = value39;
  }
  return (value00 + value01 + value02 + value03 + value04 + value05 + value06 +
          value07 + value08 + value09 + value10 + value11 + value12 + value13 +
          value14 + value15 + value16 + value17 + value18 + value19 + value20 +
          value21 + value22 + value23 + value24 + value25 + value26 + value27 +
          value28 + value29 + value30 + value31 + value32 + value33 + value34 +
          value35 + value36 + value37 + value38 + value39);
}


x86 assembly (clang, -O0):
<load_store_df>:
push   %rbp
mov    %rsp,%rbp
sub    $0x110,%rsp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
mov    %r8,-0x28(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
movq   $0x0,-0x190(%rbp)
mov    -0x190(%rbp),%rax
cmp    -0x8(%rbp),%rax
jae    2278 <load_store_df+0x1178>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%rax
mov    %rax,-0x170(%rbp)
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%rax
mov    %rax,-0x178(%rbp)
mov    -0x170(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     1331 <load_store_df+0x231>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x170(%rbp),%rax
and    $0x2,%rax
cmp    $0x0,%rax
je     135e <load_store_df+0x25e>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x170(%rbp),%rax
and    $0x4,%rax
cmp    $0x0,%rax
je     138b <load_store_df+0x28b>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x170(%rbp),%rax
and    $0x8,%rax
cmp    $0x0,%rax
je     13b8 <load_store_df+0x2b8>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x170(%rbp),%rax
and    $0x10,%rax
cmp    $0x0,%rax
je     13e5 <load_store_df+0x2e5>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x170(%rbp),%rax
and    $0x20,%rax
cmp    $0x0,%rax
je     1412 <load_store_df+0x312>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x170(%rbp),%rax
and    $0x40,%rax
cmp    $0x0,%rax
je     143f <load_store_df+0x33f>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x170(%rbp),%rax
and    $0x80,%rax
cmp    $0x0,%rax
je     146e <load_store_df+0x36e>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x170(%rbp),%rax
and    $0x100,%rax
cmp    $0x0,%rax
je     149d <load_store_df+0x39d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x170(%rbp),%rax
and    $0x200,%rax
cmp    $0x0,%rax
je     14cc <load_store_df+0x3cc>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x170(%rbp),%rax
and    $0x400,%rax
cmp    $0x0,%rax
je     14fb <load_store_df+0x3fb>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    -0x170(%rbp),%rax
and    $0x800,%rax
cmp    $0x0,%rax
je     152d <load_store_df+0x42d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x1000,%rax
cmp    $0x0,%rax
je     155f <load_store_df+0x45f>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x2000,%rax
cmp    $0x0,%rax
je     1591 <load_store_df+0x491>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x4000,%rax
cmp    $0x0,%rax
je     15c3 <load_store_df+0x4c3>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x8000,%rax
cmp    $0x0,%rax
je     15f5 <load_store_df+0x4f5>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x10000,%rax
cmp    $0x0,%rax
je     1627 <load_store_df+0x527>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x20000,%rax
cmp    $0x0,%rax
je     1659 <load_store_df+0x559>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x40000,%rax
cmp    $0x0,%rax
je     168b <load_store_df+0x58b>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x80000,%rax
cmp    $0x0,%rax
je     16bd <load_store_df+0x5bd>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     16ed <load_store_df+0x5ed>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x2,%rax
cmp    $0x0,%rax
je     171d <load_store_df+0x61d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x4,%rax
cmp    $0x0,%rax
je     174d <load_store_df+0x64d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x8,%rax
cmp    $0x0,%rax
je     177d <load_store_df+0x67d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x10,%rax
cmp    $0x0,%rax
je     17ad <load_store_df+0x6ad>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x20,%rax
cmp    $0x0,%rax
je     17dd <load_store_df+0x6dd>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x40,%rax
cmp    $0x0,%rax
je     180d <load_store_df+0x70d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x80,%rax
cmp    $0x0,%rax
je     183f <load_store_df+0x73f>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x100,%rax
cmp    $0x0,%rax
je     1871 <load_store_df+0x771>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x200,%rax
cmp    $0x0,%rax
je     18a3 <load_store_df+0x7a3>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x400,%rax
cmp    $0x0,%rax
je     18d5 <load_store_df+0x7d5>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x800,%rax
cmp    $0x0,%rax
je     1907 <load_store_df+0x807>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x1000,%rax
cmp    $0x0,%rax
je     1939 <load_store_df+0x839>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x2000,%rax
cmp    $0x0,%rax
je     196b <load_store_df+0x86b>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x4000,%rax
cmp    $0x0,%rax
je     199d <load_store_df+0x89d>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x8000,%rax
cmp    $0x0,%rax
je     19cf <load_store_df+0x8cf>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x10000,%rax
cmp    $0x0,%rax
je     1a01 <load_store_df+0x901>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x150(%rbp)
mov    -0x178(%rbp),%rax
and    $0x20000,%rax
cmp    $0x0,%rax
je     1a33 <load_store_df+0x933>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x40000,%rax
cmp    $0x0,%rax
je     1a65 <load_store_df+0x965>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
mov    -0x178(%rbp),%rax
and    $0x80000,%rax
cmp    $0x0,%rax
je     1a97 <load_store_df+0x997>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x168(%rbp)
ff
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%rax
mov    %rax,-0x180(%rbp)
mov    -0x28(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x28(%rbp)
mov    (%rax),%rax
mov    %rax,-0x188(%rbp)
mov    -0x180(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     1af6 <load_store_df+0x9f6>
movsd  -0x30(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x2,%rax
cmp    $0x0,%rax
je     1b23 <load_store_df+0xa23>
movsd  -0x38(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x4,%rax
cmp    $0x0,%rax
je     1b50 <load_store_df+0xa50>
movsd  -0x40(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x8,%rax
cmp    $0x0,%rax
je     1b7d <load_store_df+0xa7d>
movsd  -0x48(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x10,%rax
cmp    $0x0,%rax
je     1baa <load_store_df+0xaaa>
movsd  -0x50(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x20,%rax
cmp    $0x0,%rax
je     1bd7 <load_store_df+0xad7>
movsd  -0x58(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x40,%rax
cmp    $0x0,%rax
je     1c04 <load_store_df+0xb04>
movsd  -0x60(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x80,%rax
cmp    $0x0,%rax
je     1c33 <load_store_df+0xb33>
movsd  -0x68(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x100,%rax
cmp    $0x0,%rax
je     1c62 <load_store_df+0xb62>
movsd  -0x70(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x200,%rax
cmp    $0x0,%rax
je     1c91 <load_store_df+0xb91>
movsd  -0x78(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x400,%rax
cmp    $0x0,%rax
je     1cc0 <load_store_df+0xbc0>
movsd  -0x80(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x800,%rax
cmp    $0x0,%rax
je     1cf2 <load_store_df+0xbf2>
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x1000,%rax
cmp    $0x0,%rax
je     1d24 <load_store_df+0xc24>
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x2000,%rax
cmp    $0x0,%rax
je     1d56 <load_store_df+0xc56>
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x4000,%rax
cmp    $0x0,%rax
je     1d88 <load_store_df+0xc88>
movsd  -0xa0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x8000,%rax
cmp    $0x0,%rax
je     1dba <load_store_df+0xcba>
movsd  -0xa8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x10000,%rax
cmp    $0x0,%rax
je     1dec <load_store_df+0xcec>
movsd  -0xb0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x20000,%rax
cmp    $0x0,%rax
je     1e1e <load_store_df+0xd1e>
movsd  -0xb8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x40000,%rax
cmp    $0x0,%rax
je     1e50 <load_store_df+0xd50>
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x180(%rbp),%rax
and    $0x80000,%rax
cmp    $0x0,%rax
je     1e82 <load_store_df+0xd82>
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     1eb2 <load_store_df+0xdb2>
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x2,%rax
cmp    $0x0,%rax
je     1ee2 <load_store_df+0xde2>
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x4,%rax
cmp    $0x0,%rax
je     1f12 <load_store_df+0xe12>
movsd  -0xe0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x8,%rax
cmp    $0x0,%rax
je     1f42 <load_store_df+0xe42>
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x10,%rax
cmp    $0x0,%rax
je     1f72 <load_store_df+0xe72>
movsd  -0xf0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x20,%rax
cmp    $0x0,%rax
je     1fa2 <load_store_df+0xea2>
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x40,%rax
cmp    $0x0,%rax
je     1fd2 <load_store_df+0xed2>
movsd  -0x100(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x80,%rax
cmp    $0x0,%rax
je     2004 <load_store_df+0xf04>
movsd  -0x108(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x100,%rax
cmp    $0x0,%rax
je     2036 <load_store_df+0xf36>
movsd  -0x110(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x200,%rax
cmp    $0x0,%rax
je     2068 <load_store_df+0xf68>
movsd  -0x118(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x400,%rax
cmp    $0x0,%rax
je     209a <load_store_df+0xf9a>
movsd  -0x120(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x800,%rax
cmp    $0x0,%rax
je     20cc <load_store_df+0xfcc>
movsd  -0x128(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x1000,%rax
cmp    $0x0,%rax
je     20fe <load_store_df+0xffe>
movsd  -0x130(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x2000,%rax
cmp    $0x0,%rax
je     2130 <load_store_df+0x1030>
movsd  -0x138(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x4000,%rax
cmp    $0x0,%rax
je     2162 <load_store_df+0x1062>
movsd  -0x140(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x8000,%rax
cmp    $0x0,%rax
je     2194 <load_store_df+0x1094>
movsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x10000,%rax
cmp    $0x0,%rax
je     21c6 <load_store_df+0x10c6>
movsd  -0x150(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x20000,%rax
cmp    $0x0,%rax
je     21f8 <load_store_df+0x10f8>
movsd  -0x158(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x40000,%rax
cmp    $0x0,%rax
je     222a <load_store_df+0x112a>
movsd  -0x160(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x188(%rbp),%rax
and    $0x80000,%rax
cmp    $0x0,%rax
je     225c <load_store_df+0x115c>
movsd  -0x168(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
jmp    2261 <load_store_df+0x1161>
mov    -0x190(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x190(%rbp)
jmp    12c1 <load_store_df+0x1c1>
movsd  -0x30(%rbp),%xmm0
addsd  -0x38(%rbp),%xmm0
addsd  -0x40(%rbp),%xmm0
addsd  -0x48(%rbp),%xmm0
addsd  -0x50(%rbp),%xmm0
addsd  -0x58(%rbp),%xmm0
addsd  -0x60(%rbp),%xmm0
addsd  -0x68(%rbp),%xmm0
addsd  -0x70(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
addsd  -0x80(%rbp),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
addsd  -0x90(%rbp),%xmm0
ff
addsd  -0x98(%rbp),%xmm0
ff
addsd  -0xa0(%rbp),%xmm0
ff
addsd  -0xa8(%rbp),%xmm0
ff
addsd  -0xb0(%rbp),%xmm0
ff
addsd  -0xb8(%rbp),%xmm0
ff
addsd  -0xc0(%rbp),%xmm0
ff
addsd  -0xc8(%rbp),%xmm0
ff
addsd  -0xd0(%rbp),%xmm0
ff
addsd  -0xd8(%rbp),%xmm0
ff
addsd  -0xe0(%rbp),%xmm0
ff
addsd  -0xe8(%rbp),%xmm0
ff
addsd  -0xf0(%rbp),%xmm0
ff
addsd  -0xf8(%rbp),%xmm0
ff
addsd  -0x100(%rbp),%xmm0
ff
addsd  -0x108(%rbp),%xmm0
ff
addsd  -0x110(%rbp),%xmm0
ff
addsd  -0x118(%rbp),%xmm0
ff
addsd  -0x120(%rbp),%xmm0
ff
addsd  -0x128(%rbp),%xmm0
ff
addsd  -0x130(%rbp),%xmm0
ff
addsd  -0x138(%rbp),%xmm0
ff
addsd  -0x140(%rbp),%xmm0
ff
addsd  -0x148(%rbp),%xmm0
ff
addsd  -0x150(%rbp),%xmm0
ff
addsd  -0x158(%rbp),%xmm0
ff
addsd  -0x160(%rbp),%xmm0
ff
addsd  -0x168(%rbp),%xmm0
ff
add    $0x110,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<load_store_df>:
test   %rdi,%rdi
je     1dd4 <load_store_df+0xcd4>
sub    $0x48,%rsp
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x40(%rsp)
xor    %r9d,%r9d
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x38(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x30(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x28(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x20(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x18(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x10(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x8(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x8(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x10(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x18(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x20(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x28(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x30(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x38(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x40(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x48(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x50(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x58(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x60(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x68(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rsp)
xorpd  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rsp)
xorpd  %xmm4,%xmm4
xorpd  %xmm5,%xmm5
xorpd  %xmm6,%xmm6
xorpd  %xmm7,%xmm7
xorpd  %xmm1,%xmm1
xorpd  %xmm8,%xmm8
xorpd  %xmm9,%xmm9
xorpd  %xmm10,%xmm10
xorpd  %xmm11,%xmm11
xorpd  %xmm12,%xmm12
xorpd  %xmm13,%xmm13
xorpd  %xmm14,%xmm14
xorpd  %xmm15,%xmm15
xorpd  %xmm2,%xmm2
xorpd  %xmm0,%xmm0
jmp    125e <load_store_df+0x15e>
nop
add    $0x10,%r9
add    $0xffffffffffffffff,%rdi
je     1cfa <load_store_df+0xbfa>
mov    (%rcx,%r9,1),%rax
test   $0x1,%al
jne    15f0 <load_store_df+0x4f0>
test   $0x2,%al
jne    1600 <load_store_df+0x500>
test   $0x4,%al
jne    1610 <load_store_df+0x510>
test   $0x8,%al
jne    1621 <load_store_df+0x521>
test   $0x10,%al
jne    1632 <load_store_df+0x532>
test   $0x20,%al
jne    1643 <load_store_df+0x543>
test   $0x40,%al
jne    1654 <load_store_df+0x554>
test   $0x80,%al
jne    1665 <load_store_df+0x565>
test   $0x100,%eax
jne    1679 <load_store_df+0x579>
test   $0x200,%eax
je     12bd <load_store_df+0x1bd>
movsd  (%rsi),%xmm8
add    $0x8,%rsi
mov    0x8(%rcx,%r9,1),%r10
test   $0x400,%eax
jne    16a0 <load_store_df+0x5a0>
test   $0x800,%eax
jne    16b3 <load_store_df+0x5b3>
test   $0x1000,%eax
jne    16c6 <load_store_df+0x5c6>
test   $0x2000,%eax
jne    16d9 <load_store_df+0x5d9>
test   $0x4000,%eax
jne    16ec <load_store_df+0x5ec>
test   $0x8000,%eax
jne    16ff <load_store_df+0x5ff>
test   $0x10000,%eax
jne    1718 <load_store_df+0x618>
test   $0x20000,%eax
jne    1731 <load_store_df+0x631>
test   $0x40000,%eax
jne    174a <load_store_df+0x64a>
test   $0x80000,%eax
jne    1763 <load_store_df+0x663>
test   $0x1,%r10b
jne    177b <load_store_df+0x67b>
test   $0x2,%r10b
jne    1793 <load_store_df+0x693>
test   $0x4,%r10b
jne    17ab <load_store_df+0x6ab>
test   $0x8,%r10b
jne    17c3 <load_store_df+0x6c3>
test   $0x10,%r10b
jne    17db <load_store_df+0x6db>
test   $0x20,%r10b
jne    17f3 <load_store_df+0x6f3>
test   $0x40,%r10b
jne    180b <load_store_df+0x70b>
test   $0x80,%r10b
jne    1823 <load_store_df+0x723>
test   $0x100,%r10d
jne    183e <load_store_df+0x73e>
test   $0x200,%r10d
jne    1859 <load_store_df+0x759>
test   $0x400,%r10d
jne    1874 <load_store_df+0x774>
test   $0x800,%r10d
jne    188f <load_store_df+0x78f>
test   $0x1000,%r10d
jne    18a9 <load_store_df+0x7a9>
test   $0x2000,%r10d
jne    18c4 <load_store_df+0x7c4>
test   $0x4000,%r10d
jne    18df <load_store_df+0x7df>
test   $0x8000,%r10d
jne    18fa <load_store_df+0x7fa>
test   $0x10000,%r10d
jne    1915 <load_store_df+0x815>
test   $0x20000,%r10d
jne    1930 <load_store_df+0x830>
test   $0x40000,%r10d
jne    194b <load_store_df+0x84b>
test   $0x80000,%r10d
je     1426 <load_store_df+0x326>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x40(%rsp)
add    $0x8,%rsi
mov    (%r8,%r9,1),%rax
mov    0x8(%r8,%r9,1),%r10
test   $0x1,%al
jne    1970 <load_store_df+0x870>
test   $0x2,%al
jne    1980 <load_store_df+0x880>
test   $0x4,%al
jne    1990 <load_store_df+0x890>
test   $0x8,%al
jne    19a1 <load_store_df+0x8a1>
test   $0x10,%al
jne    19b2 <load_store_df+0x8b2>
test   $0x20,%al
jne    19c3 <load_store_df+0x8c3>
test   $0x40,%al
jne    19d4 <load_store_df+0x8d4>
test   $0x80,%al
jne    19e5 <load_store_df+0x8e5>
test   $0x100,%eax
jne    19f9 <load_store_df+0x8f9>
test   $0x200,%eax
jne    1a0d <load_store_df+0x90d>
test   $0x400,%eax
jne    1a21 <load_store_df+0x921>
test   $0x800,%eax
jne    1a34 <load_store_df+0x934>
test   $0x1000,%eax
jne    1a47 <load_store_df+0x947>
test   $0x2000,%eax
jne    1a5a <load_store_df+0x95a>
test   $0x4000,%eax
jne    1a6d <load_store_df+0x96d>
test   $0x8000,%eax
jne    1a80 <load_store_df+0x980>
test   $0x10000,%eax
jne    1a99 <load_store_df+0x999>
test   $0x20000,%eax
jne    1ab2 <load_store_df+0x9b2>
test   $0x40000,%eax
jne    1acb <load_store_df+0x9cb>
test   $0x80000,%eax
jne    1ae4 <load_store_df+0x9e4>
test   $0x1,%r10b
jne    1afc <load_store_df+0x9fc>
test   $0x2,%r10b
jne    1b14 <load_store_df+0xa14>
test   $0x4,%r10b
jne    1b2c <load_store_df+0xa2c>
test   $0x8,%r10b
jne    1b44 <load_store_df+0xa44>
test   $0x10,%r10b
jne    1b5c <load_store_df+0xa5c>
test   $0x20,%r10b
jne    1b74 <load_store_df+0xa74>
test   $0x40,%r10b
jne    1b8c <load_store_df+0xa8c>
test   $0x80,%r10b
jne    1ba4 <load_store_df+0xaa4>
test   $0x100,%r10d
jne    1bbf <load_store_df+0xabf>
test   $0x200,%r10d
jne    1bda <load_store_df+0xada>
test   $0x400,%r10d
jne    1bf5 <load_store_df+0xaf5>
test   $0x800,%r10d
jne    1c10 <load_store_df+0xb10>
test   $0x1000,%r10d
jne    1c2a <load_store_df+0xb2a>
test   $0x2000,%r10d
jne    1c45 <load_store_df+0xb45>
test   $0x4000,%r10d
jne    1c60 <load_store_df+0xb60>
test   $0x8000,%r10d
jne    1c7b <load_store_df+0xb7b>
test   $0x10000,%r10d
jne    1c96 <load_store_df+0xb96>
test   $0x20000,%r10d
jne    1cb1 <load_store_df+0xbb1>
test   $0x40000,%r10d
jne    1ccc <load_store_df+0xbcc>
test   $0x80000,%r10d
je     1250 <load_store_df+0x150>
jmp    1ce7 <load_store_df+0xbe7>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  (%rsi),%xmm0
add    $0x8,%rsi
test   $0x2,%al
je     1272 <load_store_df+0x172>
movsd  (%rsi),%xmm2
add    $0x8,%rsi
test   $0x4,%al
je     127a <load_store_df+0x17a>
movsd  (%rsi),%xmm15
add    $0x8,%rsi
test   $0x8,%al
je     1282 <load_store_df+0x182>
movsd  (%rsi),%xmm14
add    $0x8,%rsi
test   $0x10,%al
je     128a <load_store_df+0x18a>
movsd  (%rsi),%xmm13
add    $0x8,%rsi
test   $0x20,%al
je     1292 <load_store_df+0x192>
movsd  (%rsi),%xmm12
add    $0x8,%rsi
test   $0x40,%al
je     129a <load_store_df+0x19a>
movsd  (%rsi),%xmm11
add    $0x8,%rsi
test   $0x80,%al
je     12a2 <load_store_df+0x1a2>
movsd  (%rsi),%xmm10
add    $0x8,%rsi
test   $0x100,%eax
je     12ad <load_store_df+0x1ad>
movsd  (%rsi),%xmm9
add    $0x8,%rsi
test   $0x200,%eax
jne    12b4 <load_store_df+0x1b4>
jmp    12bd <load_store_df+0x1bd>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  (%rsi),%xmm1
add    $0x8,%rsi
test   $0x800,%eax
je     12d8 <load_store_df+0x1d8>
movsd  (%rsi),%xmm7
add    $0x8,%rsi
test   $0x1000,%eax
je     12e3 <load_store_df+0x1e3>
movsd  (%rsi),%xmm6
add    $0x8,%rsi
test   $0x2000,%eax
je     12ee <load_store_df+0x1ee>
movsd  (%rsi),%xmm5
add    $0x8,%rsi
test   $0x4000,%eax
je     12f9 <load_store_df+0x1f9>
movsd  (%rsi),%xmm4
add    $0x8,%rsi
test   $0x8000,%eax
je     1304 <load_store_df+0x204>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x80(%rsp)
add    $0x8,%rsi
test   $0x10000,%eax
je     130f <load_store_df+0x20f>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x78(%rsp)
add    $0x8,%rsi
test   $0x20000,%eax
je     131a <load_store_df+0x21a>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x70(%rsp)
add    $0x8,%rsi
test   $0x40000,%eax
je     1325 <load_store_df+0x225>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x68(%rsp)
add    $0x8,%rsi
test   $0x80000,%eax
je     1330 <load_store_df+0x230>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x60(%rsp)
add    $0x8,%rsi
test   $0x1,%r10b
je     133a <load_store_df+0x23a>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x58(%rsp)
add    $0x8,%rsi
test   $0x2,%r10b
je     1344 <load_store_df+0x244>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x50(%rsp)
add    $0x8,%rsi
test   $0x4,%r10b
je     134e <load_store_df+0x24e>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x48(%rsp)
add    $0x8,%rsi
test   $0x8,%r10b
je     1358 <load_store_df+0x258>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x40(%rsp)
add    $0x8,%rsi
test   $0x10,%r10b
je     1362 <load_store_df+0x262>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x38(%rsp)
add    $0x8,%rsi
test   $0x20,%r10b
je     136c <load_store_df+0x26c>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x30(%rsp)
add    $0x8,%rsi
test   $0x40,%r10b
je     1376 <load_store_df+0x276>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x28(%rsp)
add    $0x8,%rsi
test   $0x80,%r10b
je     1380 <load_store_df+0x280>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x20(%rsp)
add    $0x8,%rsi
test   $0x100,%r10d
je     138d <load_store_df+0x28d>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x18(%rsp)
add    $0x8,%rsi
test   $0x200,%r10d
je     139a <load_store_df+0x29a>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x10(%rsp)
add    $0x8,%rsi
test   $0x400,%r10d
je     13a7 <load_store_df+0x2a7>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x8(%rsp)
add    $0x8,%rsi
test   $0x800,%r10d
je     13b4 <load_store_df+0x2b4>
movsd  (%rsi),%xmm3
movsd  %xmm3,(%rsp)
add    $0x8,%rsi
test   $0x1000,%r10d
je     13c1 <load_store_df+0x2c1>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x8(%rsp)
add    $0x8,%rsi
test   $0x2000,%r10d
je     13ce <load_store_df+0x2ce>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x10(%rsp)
add    $0x8,%rsi
test   $0x4000,%r10d
je     13db <load_store_df+0x2db>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x18(%rsp)
add    $0x8,%rsi
test   $0x8000,%r10d
je     13e8 <load_store_df+0x2e8>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x20(%rsp)
add    $0x8,%rsi
test   $0x10000,%r10d
je     13f5 <load_store_df+0x2f5>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x28(%rsp)
add    $0x8,%rsi
test   $0x20000,%r10d
je     1402 <load_store_df+0x302>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x30(%rsp)
add    $0x8,%rsi
test   $0x40000,%r10d
je     140f <load_store_df+0x30f>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x38(%rsp)
add    $0x8,%rsi
test   $0x80000,%r10d
jne    1418 <load_store_df+0x318>
jmp    1426 <load_store_df+0x326>
nopl   0x0(%rax,%rax,1)
movsd  %xmm0,(%rdx)
add    $0x8,%rdx
test   $0x2,%al
je     143f <load_store_df+0x33f>
movsd  %xmm2,(%rdx)
add    $0x8,%rdx
test   $0x4,%al
je     1447 <load_store_df+0x347>
movsd  %xmm15,(%rdx)
add    $0x8,%rdx
test   $0x8,%al
je     144f <load_store_df+0x34f>
movsd  %xmm14,(%rdx)
add    $0x8,%rdx
test   $0x10,%al
je     1457 <load_store_df+0x357>
movsd  %xmm13,(%rdx)
add    $0x8,%rdx
test   $0x20,%al
je     145f <load_store_df+0x35f>
movsd  %xmm12,(%rdx)
add    $0x8,%rdx
test   $0x40,%al
je     1467 <load_store_df+0x367>
movsd  %xmm11,(%rdx)
add    $0x8,%rdx
test   $0x80,%al
je     146f <load_store_df+0x36f>
movsd  %xmm10,(%rdx)
add    $0x8,%rdx
test   $0x100,%eax
je     147a <load_store_df+0x37a>
movsd  %xmm9,(%rdx)
add    $0x8,%rdx
test   $0x200,%eax
je     1485 <load_store_df+0x385>
movsd  %xmm8,(%rdx)
add    $0x8,%rdx
test   $0x400,%eax
je     1490 <load_store_df+0x390>
movsd  %xmm1,(%rdx)
add    $0x8,%rdx
test   $0x800,%eax
je     149b <load_store_df+0x39b>
movsd  %xmm7,(%rdx)
add    $0x8,%rdx
test   $0x1000,%eax
je     14a6 <load_store_df+0x3a6>
movsd  %xmm6,(%rdx)
add    $0x8,%rdx
test   $0x2000,%eax
je     14b1 <load_store_df+0x3b1>
movsd  %xmm5,(%rdx)
add    $0x8,%rdx
test   $0x4000,%eax
je     14bc <load_store_df+0x3bc>
movsd  %xmm4,(%rdx)
add    $0x8,%rdx
test   $0x8000,%eax
je     14c7 <load_store_df+0x3c7>
movsd  -0x80(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x10000,%eax
je     14d2 <load_store_df+0x3d2>
movsd  -0x78(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x20000,%eax
je     14dd <load_store_df+0x3dd>
movsd  -0x70(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x40000,%eax
je     14e8 <load_store_df+0x3e8>
movsd  -0x68(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x80000,%eax
je     14f3 <load_store_df+0x3f3>
movsd  -0x60(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x1,%r10b
je     14fd <load_store_df+0x3fd>
movsd  -0x58(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x2,%r10b
je     1507 <load_store_df+0x407>
movsd  -0x50(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x4,%r10b
je     1511 <load_store_df+0x411>
movsd  -0x48(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x8,%r10b
je     151b <load_store_df+0x41b>
movsd  -0x40(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x10,%r10b
je     1525 <load_store_df+0x425>
movsd  -0x38(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x20,%r10b
je     152f <load_store_df+0x42f>
movsd  -0x30(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x40,%r10b
je     1539 <load_store_df+0x439>
movsd  -0x28(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x80,%r10b
je     1543 <load_store_df+0x443>
movsd  -0x20(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x100,%r10d
je     1550 <load_store_df+0x450>
movsd  -0x18(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x200,%r10d
je     155d <load_store_df+0x45d>
movsd  -0x10(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x400,%r10d
je     156a <load_store_df+0x46a>
movsd  -0x8(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x800,%r10d
je     1577 <load_store_df+0x477>
movsd  (%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x1000,%r10d
je     1584 <load_store_df+0x484>
movsd  0x8(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x2000,%r10d
je     1591 <load_store_df+0x491>
movsd  0x10(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x4000,%r10d
je     159e <load_store_df+0x49e>
movsd  0x18(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x8000,%r10d
je     15ab <load_store_df+0x4ab>
movsd  0x20(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x10000,%r10d
je     15b8 <load_store_df+0x4b8>
movsd  0x28(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x20000,%r10d
je     15c5 <load_store_df+0x4c5>
movsd  0x30(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x40000,%r10d
je     15d2 <load_store_df+0x4d2>
movsd  0x38(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x80000,%r10d
je     1250 <load_store_df+0x150>
movsd  0x40(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
jmp    1250 <load_store_df+0x150>
addsd  %xmm2,%xmm0
addsd  %xmm15,%xmm0
addsd  %xmm14,%xmm0
addsd  %xmm13,%xmm0
addsd  %xmm12,%xmm0
addsd  %xmm11,%xmm0
addsd  %xmm10,%xmm0
addsd  %xmm9,%xmm0
addsd  %xmm8,%xmm0
addsd  %xmm1,%xmm0
addsd  %xmm7,%xmm0
addsd  %xmm6,%xmm0
addsd  %xmm5,%xmm0
addsd  %xmm4,%xmm0
addsd  -0x80(%rsp),%xmm0
addsd  -0x78(%rsp),%xmm0
addsd  -0x70(%rsp),%xmm0
addsd  -0x68(%rsp),%xmm0
addsd  -0x60(%rsp),%xmm0
addsd  -0x58(%rsp),%xmm0
addsd  -0x50(%rsp),%xmm0
addsd  -0x48(%rsp),%xmm0
addsd  -0x40(%rsp),%xmm0
addsd  -0x38(%rsp),%xmm0
addsd  -0x30(%rsp),%xmm0
addsd  -0x28(%rsp),%xmm0
addsd  -0x20(%rsp),%xmm0
addsd  -0x18(%rsp),%xmm0
addsd  -0x10(%rsp),%xmm0
addsd  -0x8(%rsp),%xmm0
addsd  (%rsp),%xmm0
addsd  0x8(%rsp),%xmm0
addsd  0x10(%rsp),%xmm0
addsd  0x18(%rsp),%xmm0
addsd  0x20(%rsp),%xmm0
addsd  0x28(%rsp),%xmm0
addsd  0x30(%rsp),%xmm0
addsd  0x38(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
add    $0x48,%rsp
ret
xorps  %xmm0,%xmm0
ret

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

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