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;
  unsigned long out_mask;
  unsigned long i;
  for (i = 0; i < num; i++) {
    in_mask = *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_mask & (1L << 20)) != 0L)
      value20 = *from_ptr++;
    if ((in_mask & (1L << 21)) != 0L)
      value21 = *from_ptr++;
    if ((in_mask & (1L << 22)) != 0L)
      value22 = *from_ptr++;
    if ((in_mask & (1L << 23)) != 0L)
      value23 = *from_ptr++;
    if ((in_mask & (1L << 24)) != 0L)
      value24 = *from_ptr++;
    if ((in_mask & (1L << 25)) != 0L)
      value25 = *from_ptr++;
    if ((in_mask & (1L << 26)) != 0L)
      value26 = *from_ptr++;
    if ((in_mask & (1L << 27)) != 0L)
      value27 = *from_ptr++;
    if ((in_mask & (1L << 28)) != 0L)
      value28 = *from_ptr++;
    if ((in_mask & (1L << 29)) != 0L)
      value29 = *from_ptr++;
    if ((in_mask & (1L << 30)) != 0L)
      value30 = *from_ptr++;
    if ((in_mask & (1L << 31)) != 0L)
      value31 = *from_ptr++;
    if ((in_mask & (1L << 32)) != 0L)
      value32 = *from_ptr++;
    if ((in_mask & (1L << 33)) != 0L)
      value33 = *from_ptr++;
    if ((in_mask & (1L << 34)) != 0L)
      value34 = *from_ptr++;
    if ((in_mask & (1L << 35)) != 0L)
      value35 = *from_ptr++;
    if ((in_mask & (1L << 36)) != 0L)
      value36 = *from_ptr++;
    if ((in_mask & (1L << 37)) != 0L)
      value37 = *from_ptr++;
    if ((in_mask & (1L << 38)) != 0L)
      value38 = *from_ptr++;
    if ((in_mask & (1L << 39)) != 0L)
      value39 = *from_ptr++;
    out_mask = *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_mask & (1L << 20)) != 0L)
      *to_ptr++ = value20;
    if ((out_mask & (1L << 21)) != 0L)
      *to_ptr++ = value21;
    if ((out_mask & (1L << 22)) != 0L)
      *to_ptr++ = value22;
    if ((out_mask & (1L << 23)) != 0L)
      *to_ptr++ = value23;
    if ((out_mask & (1L << 24)) != 0L)
      *to_ptr++ = value24;
    if ((out_mask & (1L << 25)) != 0L)
      *to_ptr++ = value25;
    if ((out_mask & (1L << 26)) != 0L)
      *to_ptr++ = value26;
    if ((out_mask & (1L << 27)) != 0L)
      *to_ptr++ = value27;
    if ((out_mask & (1L << 28)) != 0L)
      *to_ptr++ = value28;
    if ((out_mask & (1L << 29)) != 0L)
      *to_ptr++ = value29;
    if ((out_mask & (1L << 30)) != 0L)
      *to_ptr++ = value30;
    if ((out_mask & (1L << 31)) != 0L)
      *to_ptr++ = value31;
    if ((out_mask & (1L << 32)) != 0L)
      *to_ptr++ = value32;
    if ((out_mask & (1L << 33)) != 0L)
      *to_ptr++ = value33;
    if ((out_mask & (1L << 34)) != 0L)
      *to_ptr++ = value34;
    if ((out_mask & (1L << 35)) != 0L)
      *to_ptr++ = value35;
    if ((out_mask & (1L << 36)) != 0L)
      *to_ptr++ = value36;
    if ((out_mask & (1L << 37)) != 0L)
      *to_ptr++ = value37;
    if ((out_mask & (1L << 38)) != 0L)
      *to_ptr++ = value38;
    if ((out_mask & (1L << 39)) != 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    $0x100,%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,-0x180(%rbp)
mov    -0x180(%rbp),%rax
cmp    -0x8(%rbp),%rax
jae    22aa <load_store_df+0x11aa>
mov    -0x20(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x20(%rbp)
mov    (%rax),%rax
mov    %rax,-0x170(%rbp)
mov    -0x170(%rbp),%rax
and    $0x1,%rax
cmp    $0x0,%rax
je     1318 <load_store_df+0x218>
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     1345 <load_store_df+0x245>
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     1372 <load_store_df+0x272>
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     139f <load_store_df+0x29f>
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     13cc <load_store_df+0x2cc>
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     13f9 <load_store_df+0x2f9>
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     1426 <load_store_df+0x326>
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     1455 <load_store_df+0x355>
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     1484 <load_store_df+0x384>
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     14b3 <load_store_df+0x3b3>
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     14e2 <load_store_df+0x3e2>
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     1514 <load_store_df+0x414>
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     1546 <load_store_df+0x446>
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     1578 <load_store_df+0x478>
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     15aa <load_store_df+0x4aa>
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     15dc <load_store_df+0x4dc>
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     160e <load_store_df+0x50e>
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     1640 <load_store_df+0x540>
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     1672 <load_store_df+0x572>
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     16a4 <load_store_df+0x5a4>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x100000,%rax
cmp    $0x0,%rax
je     16d6 <load_store_df+0x5d6>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x200000,%rax
cmp    $0x0,%rax
je     1708 <load_store_df+0x608>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x400000,%rax
cmp    $0x0,%rax
je     173a <load_store_df+0x63a>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x800000,%rax
cmp    $0x0,%rax
je     176c <load_store_df+0x66c>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x1000000,%rax
cmp    $0x0,%rax
je     179e <load_store_df+0x69e>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x2000000,%rax
cmp    $0x0,%rax
je     17d0 <load_store_df+0x6d0>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x4000000,%rax
cmp    $0x0,%rax
je     1802 <load_store_df+0x702>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x8000000,%rax
cmp    $0x0,%rax
je     1834 <load_store_df+0x734>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x10000000,%rax
cmp    $0x0,%rax
je     1866 <load_store_df+0x766>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x20000000,%rax
cmp    $0x0,%rax
je     1898 <load_store_df+0x798>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x170(%rbp),%rax
and    $0x40000000,%rax
cmp    $0x0,%rax
je     18ca <load_store_df+0x7ca>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movabs $0x80000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1900 <load_store_df+0x800>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movabs $0x100000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1936 <load_store_df+0x836>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movabs $0x200000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     196c <load_store_df+0x86c>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movabs $0x400000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     19a2 <load_store_df+0x8a2>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movabs $0x800000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     19d8 <load_store_df+0x8d8>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movabs $0x1000000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1a0e <load_store_df+0x90e>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x150(%rbp)
ff
movabs $0x2000000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1a44 <load_store_df+0x944>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x158(%rbp)
ff
movabs $0x4000000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1a7a <load_store_df+0x97a>
mov    -0x10(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x10(%rbp)
movsd  (%rax),%xmm0
movsd  %xmm0,-0x160(%rbp)
ff
movabs $0x8000000000,%rax
and    -0x170(%rbp),%rax
cmp    $0x0,%rax
je     1ab0 <load_store_df+0x9b0>
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,-0x178(%rbp)
mov    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%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    -0x178(%rbp),%rax
and    $0x100000,%rax
cmp    $0x0,%rax
je     1eb4 <load_store_df+0xdb4>
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x200000,%rax
cmp    $0x0,%rax
je     1ee6 <load_store_df+0xde6>
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x400000,%rax
cmp    $0x0,%rax
je     1f18 <load_store_df+0xe18>
movsd  -0xe0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x800000,%rax
cmp    $0x0,%rax
je     1f4a <load_store_df+0xe4a>
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x1000000,%rax
cmp    $0x0,%rax
je     1f7c <load_store_df+0xe7c>
movsd  -0xf0(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x2000000,%rax
cmp    $0x0,%rax
je     1fae <load_store_df+0xeae>
movsd  -0xf8(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x4000000,%rax
cmp    $0x0,%rax
je     1fe0 <load_store_df+0xee0>
movsd  -0x100(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x8000000,%rax
cmp    $0x0,%rax
je     2012 <load_store_df+0xf12>
movsd  -0x108(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x10000000,%rax
cmp    $0x0,%rax
je     2044 <load_store_df+0xf44>
movsd  -0x110(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x20000000,%rax
cmp    $0x0,%rax
je     2076 <load_store_df+0xf76>
movsd  -0x118(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
mov    -0x178(%rbp),%rax
and    $0x40000000,%rax
cmp    $0x0,%rax
je     20a8 <load_store_df+0xfa8>
movsd  -0x120(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x80000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     20de <load_store_df+0xfde>
movsd  -0x128(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x100000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     2114 <load_store_df+0x1014>
movsd  -0x130(%rbp),%xmm0
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x200000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     214a <load_store_df+0x104a>
movsd  -0x138(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x400000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     2180 <load_store_df+0x1080>
movsd  -0x140(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x800000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     21b6 <load_store_df+0x10b6>
movsd  -0x148(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x1000000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     21ec <load_store_df+0x10ec>
movsd  -0x150(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x2000000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     2222 <load_store_df+0x1122>
movsd  -0x158(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x4000000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     2258 <load_store_df+0x1158>
movsd  -0x160(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
movabs $0x8000000000,%rax
and    -0x178(%rbp),%rax
cmp    $0x0,%rax
je     228e <load_store_df+0x118e>
movsd  -0x168(%rbp),%xmm0
ff
mov    -0x18(%rbp),%rax
mov    %rax,%rcx
add    $0x8,%rcx
mov    %rcx,-0x18(%rbp)
movsd  %xmm0,(%rax)
jmp    2293 <load_store_df+0x1193>
mov    -0x180(%rbp),%rax
add    $0x1,%rax
mov    %rax,-0x180(%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
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    $0x100,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<load_store_df>:
test   %rdi,%rdi
je     1e54 <load_store_df+0xd54>
push   %rbp
push   %r15
push   %r14
push   %r13
push   %r12
push   %rbx
sub    $0x48,%rsp
movabs $0x8000000000,%r9
movabs $0x4000000000,%r10
movabs $0x2000000000,%r11
movabs $0x1000000000,%r14
movabs $0x800000000,%r15
movabs $0x400000000,%r12
movabs $0x200000000,%r13
xorpd  %xmm0,%xmm0
movsd  %xmm0,0x40(%rsp)
movabs $0x100000000,%rax
xor    %ebx,%ebx
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    12bd <load_store_df+0x1bd>
nopl   0x0(%rax,%rax,1)
add    $0x1,%rbx
cmp    %rbx,%rdi
je     1d70 <load_store_df+0xc70>
mov    (%rcx,%rbx,8),%rbp
test   $0x1,%bpl
jne    1650 <load_store_df+0x550>
test   $0x2,%bpl
jne    1662 <load_store_df+0x562>
test   $0x4,%bpl
jne    1674 <load_store_df+0x574>
test   $0x8,%bpl
jne    1687 <load_store_df+0x587>
test   $0x10,%bpl
jne    169a <load_store_df+0x59a>
test   $0x20,%bpl
jne    16ad <load_store_df+0x5ad>
test   $0x40,%bpl
jne    16c0 <load_store_df+0x5c0>
test   $0x80,%bpl
jne    16d3 <load_store_df+0x5d3>
test   $0x100,%ebp
jne    16e8 <load_store_df+0x5e8>
test   $0x200,%ebp
jne    16fd <load_store_df+0x5fd>
test   $0x400,%ebp
jne    1712 <load_store_df+0x612>
test   $0x800,%ebp
jne    1726 <load_store_df+0x626>
test   $0x1000,%ebp
jne    173a <load_store_df+0x63a>
test   $0x2000,%ebp
jne    174e <load_store_df+0x64e>
test   $0x4000,%ebp
jne    1762 <load_store_df+0x662>
test   $0x8000,%ebp
jne    1776 <load_store_df+0x676>
test   $0x10000,%ebp
jne    1790 <load_store_df+0x690>
test   $0x20000,%ebp
jne    17aa <load_store_df+0x6aa>
test   $0x40000,%ebp
jne    17c4 <load_store_df+0x6c4>
test   $0x80000,%ebp
jne    17de <load_store_df+0x6de>
test   $0x100000,%ebp
jne    17f8 <load_store_df+0x6f8>
test   $0x200000,%ebp
jne    1812 <load_store_df+0x712>
test   $0x400000,%ebp
jne    182c <load_store_df+0x72c>
test   $0x800000,%ebp
jne    1846 <load_store_df+0x746>
test   $0x1000000,%ebp
jne    1860 <load_store_df+0x760>
test   $0x2000000,%ebp
jne    187a <load_store_df+0x77a>
test   $0x4000000,%ebp
jne    1894 <load_store_df+0x794>
test   $0x8000000,%ebp
jne    18ae <load_store_df+0x7ae>
test   $0x10000000,%ebp
jne    18c8 <load_store_df+0x7c8>
test   $0x20000000,%ebp
jne    18e2 <load_store_df+0x7e2>
test   $0x40000000,%ebp
jne    18fc <load_store_df+0x7fc>
test   $0x80000000,%ebp
jne    1916 <load_store_df+0x816>
test   %rax,%rbp
jne    192c <load_store_df+0x82c>
test   %r13,%rbp
jne    1943 <load_store_df+0x843>
test   %r12,%rbp
jne    195a <load_store_df+0x85a>
test   %r15,%rbp
jne    1971 <load_store_df+0x871>
test   %r14,%rbp
jne    1988 <load_store_df+0x888>
test   %r11,%rbp
jne    199f <load_store_df+0x89f>
test   %r10,%rbp
jne    19b6 <load_store_df+0x8b6>
test   %r9,%rbp
je     1483 <load_store_df+0x383>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x40(%rsp)
add    $0x8,%rsi
mov    (%r8,%rbx,8),%rbp
test   $0x1,%bpl
jne    19e0 <load_store_df+0x8e0>
test   $0x2,%bpl
jne    19f2 <load_store_df+0x8f2>
test   $0x4,%bpl
jne    1a04 <load_store_df+0x904>
test   $0x8,%bpl
jne    1a17 <load_store_df+0x917>
test   $0x10,%bpl
jne    1a2a <load_store_df+0x92a>
test   $0x20,%bpl
jne    1a3d <load_store_df+0x93d>
test   $0x40,%bpl
jne    1a50 <load_store_df+0x950>
test   $0x80,%bpl
jne    1a63 <load_store_df+0x963>
test   $0x100,%ebp
jne    1a78 <load_store_df+0x978>
test   $0x200,%ebp
jne    1a8d <load_store_df+0x98d>
test   $0x400,%ebp
jne    1aa2 <load_store_df+0x9a2>
test   $0x800,%ebp
jne    1ab6 <load_store_df+0x9b6>
test   $0x1000,%ebp
jne    1aca <load_store_df+0x9ca>
test   $0x2000,%ebp
jne    1ade <load_store_df+0x9de>
test   $0x4000,%ebp
jne    1af2 <load_store_df+0x9f2>
test   $0x8000,%ebp
jne    1b06 <load_store_df+0xa06>
test   $0x10000,%ebp
jne    1b20 <load_store_df+0xa20>
test   $0x20000,%ebp
jne    1b3a <load_store_df+0xa3a>
test   $0x40000,%ebp
jne    1b54 <load_store_df+0xa54>
test   $0x80000,%ebp
jne    1b6e <load_store_df+0xa6e>
test   $0x100000,%ebp
jne    1b88 <load_store_df+0xa88>
test   $0x200000,%ebp
jne    1ba2 <load_store_df+0xaa2>
test   $0x400000,%ebp
jne    1bbc <load_store_df+0xabc>
test   $0x800000,%ebp
jne    1bd6 <load_store_df+0xad6>
test   $0x1000000,%ebp
jne    1bf0 <load_store_df+0xaf0>
test   $0x2000000,%ebp
jne    1c0a <load_store_df+0xb0a>
test   $0x4000000,%ebp
jne    1c24 <load_store_df+0xb24>
test   $0x8000000,%ebp
jne    1c3e <load_store_df+0xb3e>
test   $0x10000000,%ebp
jne    1c58 <load_store_df+0xb58>
test   $0x20000000,%ebp
jne    1c72 <load_store_df+0xb72>
test   $0x40000000,%ebp
jne    1c8c <load_store_df+0xb8c>
test   $0x80000000,%ebp
jne    1ca6 <load_store_df+0xba6>
test   %rax,%rbp
jne    1cbc <load_store_df+0xbbc>
test   %r13,%rbp
jne    1cd3 <load_store_df+0xbd3>
test   %r12,%rbp
jne    1cea <load_store_df+0xbea>
test   %r15,%rbp
jne    1d01 <load_store_df+0xc01>
test   %r14,%rbp
jne    1d18 <load_store_df+0xc18>
test   %r11,%rbp
jne    1d2f <load_store_df+0xc2f>
test   %r10,%rbp
jne    1d46 <load_store_df+0xc46>
test   %r9,%rbp
je     12b0 <load_store_df+0x1b0>
jmp    1d5d <load_store_df+0xc5d>
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movsd  (%rsi),%xmm0
add    $0x8,%rsi
test   $0x2,%bpl
je     12d5 <load_store_df+0x1d5>
movsd  (%rsi),%xmm2
add    $0x8,%rsi
test   $0x4,%bpl
je     12df <load_store_df+0x1df>
movsd  (%rsi),%xmm15
add    $0x8,%rsi
test   $0x8,%bpl
je     12e9 <load_store_df+0x1e9>
movsd  (%rsi),%xmm14
add    $0x8,%rsi
test   $0x10,%bpl
je     12f3 <load_store_df+0x1f3>
movsd  (%rsi),%xmm13
add    $0x8,%rsi
test   $0x20,%bpl
je     12fd <load_store_df+0x1fd>
movsd  (%rsi),%xmm12
add    $0x8,%rsi
test   $0x40,%bpl
je     1307 <load_store_df+0x207>
movsd  (%rsi),%xmm11
add    $0x8,%rsi
test   $0x80,%bpl
je     1311 <load_store_df+0x211>
movsd  (%rsi),%xmm10
add    $0x8,%rsi
test   $0x100,%ebp
je     131d <load_store_df+0x21d>
movsd  (%rsi),%xmm9
add    $0x8,%rsi
test   $0x200,%ebp
je     1329 <load_store_df+0x229>
movsd  (%rsi),%xmm8
add    $0x8,%rsi
test   $0x400,%ebp
je     1335 <load_store_df+0x235>
movsd  (%rsi),%xmm1
add    $0x8,%rsi
test   $0x800,%ebp
je     1341 <load_store_df+0x241>
movsd  (%rsi),%xmm7
add    $0x8,%rsi
test   $0x1000,%ebp
je     134d <load_store_df+0x24d>
movsd  (%rsi),%xmm6
add    $0x8,%rsi
test   $0x2000,%ebp
je     1359 <load_store_df+0x259>
movsd  (%rsi),%xmm5
add    $0x8,%rsi
test   $0x4000,%ebp
je     1365 <load_store_df+0x265>
movsd  (%rsi),%xmm4
add    $0x8,%rsi
test   $0x8000,%ebp
je     1371 <load_store_df+0x271>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x80(%rsp)
add    $0x8,%rsi
test   $0x10000,%ebp
je     137d <load_store_df+0x27d>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x78(%rsp)
add    $0x8,%rsi
test   $0x20000,%ebp
je     1389 <load_store_df+0x289>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x70(%rsp)
add    $0x8,%rsi
test   $0x40000,%ebp
je     1395 <load_store_df+0x295>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x68(%rsp)
add    $0x8,%rsi
test   $0x80000,%ebp
je     13a1 <load_store_df+0x2a1>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x60(%rsp)
add    $0x8,%rsi
test   $0x100000,%ebp
je     13ad <load_store_df+0x2ad>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x58(%rsp)
add    $0x8,%rsi
test   $0x200000,%ebp
je     13b9 <load_store_df+0x2b9>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x50(%rsp)
add    $0x8,%rsi
test   $0x400000,%ebp
je     13c5 <load_store_df+0x2c5>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x48(%rsp)
add    $0x8,%rsi
test   $0x800000,%ebp
je     13d1 <load_store_df+0x2d1>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x40(%rsp)
add    $0x8,%rsi
test   $0x1000000,%ebp
je     13dd <load_store_df+0x2dd>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x38(%rsp)
add    $0x8,%rsi
test   $0x2000000,%ebp
je     13e9 <load_store_df+0x2e9>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x30(%rsp)
add    $0x8,%rsi
test   $0x4000000,%ebp
je     13f5 <load_store_df+0x2f5>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x28(%rsp)
add    $0x8,%rsi
test   $0x8000000,%ebp
je     1401 <load_store_df+0x301>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x20(%rsp)
add    $0x8,%rsi
test   $0x10000000,%ebp
je     140d <load_store_df+0x30d>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x18(%rsp)
add    $0x8,%rsi
test   $0x20000000,%ebp
je     1419 <load_store_df+0x319>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x10(%rsp)
add    $0x8,%rsi
test   $0x40000000,%ebp
je     1425 <load_store_df+0x325>
movsd  (%rsi),%xmm3
movsd  %xmm3,-0x8(%rsp)
add    $0x8,%rsi
test   $0x80000000,%ebp
je     1431 <load_store_df+0x331>
movsd  (%rsi),%xmm3
movsd  %xmm3,(%rsp)
add    $0x8,%rsi
test   %rax,%rbp
je     143a <load_store_df+0x33a>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x8(%rsp)
add    $0x8,%rsi
test   %r13,%rbp
je     1443 <load_store_df+0x343>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x10(%rsp)
add    $0x8,%rsi
test   %r12,%rbp
je     144c <load_store_df+0x34c>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x18(%rsp)
add    $0x8,%rsi
test   %r15,%rbp
je     1455 <load_store_df+0x355>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x20(%rsp)
add    $0x8,%rsi
test   %r14,%rbp
je     145e <load_store_df+0x35e>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x28(%rsp)
add    $0x8,%rsi
test   %r11,%rbp
je     1467 <load_store_df+0x367>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x30(%rsp)
add    $0x8,%rsi
test   %r10,%rbp
je     1470 <load_store_df+0x370>
movsd  (%rsi),%xmm3
movsd  %xmm3,0x38(%rsp)
add    $0x8,%rsi
test   %r9,%rbp
jne    1475 <load_store_df+0x375>
jmp    1483 <load_store_df+0x383>
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movsd  %xmm0,(%rdx)
add    $0x8,%rdx
test   $0x2,%bpl
je     149b <load_store_df+0x39b>
movsd  %xmm2,(%rdx)
add    $0x8,%rdx
test   $0x4,%bpl
je     14a5 <load_store_df+0x3a5>
movsd  %xmm15,(%rdx)
add    $0x8,%rdx
test   $0x8,%bpl
je     14af <load_store_df+0x3af>
movsd  %xmm14,(%rdx)
add    $0x8,%rdx
test   $0x10,%bpl
je     14b9 <load_store_df+0x3b9>
movsd  %xmm13,(%rdx)
add    $0x8,%rdx
test   $0x20,%bpl
je     14c3 <load_store_df+0x3c3>
movsd  %xmm12,(%rdx)
add    $0x8,%rdx
test   $0x40,%bpl
je     14cd <load_store_df+0x3cd>
movsd  %xmm11,(%rdx)
add    $0x8,%rdx
test   $0x80,%bpl
je     14d7 <load_store_df+0x3d7>
movsd  %xmm10,(%rdx)
add    $0x8,%rdx
test   $0x100,%ebp
je     14e3 <load_store_df+0x3e3>
movsd  %xmm9,(%rdx)
add    $0x8,%rdx
test   $0x200,%ebp
je     14ef <load_store_df+0x3ef>
movsd  %xmm8,(%rdx)
add    $0x8,%rdx
test   $0x400,%ebp
je     14fb <load_store_df+0x3fb>
movsd  %xmm1,(%rdx)
add    $0x8,%rdx
test   $0x800,%ebp
je     1507 <load_store_df+0x407>
movsd  %xmm7,(%rdx)
add    $0x8,%rdx
test   $0x1000,%ebp
je     1513 <load_store_df+0x413>
movsd  %xmm6,(%rdx)
add    $0x8,%rdx
test   $0x2000,%ebp
je     151f <load_store_df+0x41f>
movsd  %xmm5,(%rdx)
add    $0x8,%rdx
test   $0x4000,%ebp
je     152b <load_store_df+0x42b>
movsd  %xmm4,(%rdx)
add    $0x8,%rdx
test   $0x8000,%ebp
je     1537 <load_store_df+0x437>
movsd  -0x80(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x10000,%ebp
je     1543 <load_store_df+0x443>
movsd  -0x78(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x20000,%ebp
je     154f <load_store_df+0x44f>
movsd  -0x70(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x40000,%ebp
je     155b <load_store_df+0x45b>
movsd  -0x68(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x80000,%ebp
je     1567 <load_store_df+0x467>
movsd  -0x60(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x100000,%ebp
je     1573 <load_store_df+0x473>
movsd  -0x58(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x200000,%ebp
je     157f <load_store_df+0x47f>
movsd  -0x50(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x400000,%ebp
je     158b <load_store_df+0x48b>
movsd  -0x48(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x800000,%ebp
je     1597 <load_store_df+0x497>
movsd  -0x40(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x1000000,%ebp
je     15a3 <load_store_df+0x4a3>
movsd  -0x38(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x2000000,%ebp
je     15af <load_store_df+0x4af>
movsd  -0x30(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x4000000,%ebp
je     15bb <load_store_df+0x4bb>
movsd  -0x28(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x8000000,%ebp
je     15c7 <load_store_df+0x4c7>
movsd  -0x20(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x10000000,%ebp
je     15d3 <load_store_df+0x4d3>
movsd  -0x18(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x20000000,%ebp
je     15df <load_store_df+0x4df>
movsd  -0x10(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x40000000,%ebp
je     15eb <load_store_df+0x4eb>
movsd  -0x8(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   $0x80000000,%ebp
je     15f7 <load_store_df+0x4f7>
movsd  (%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %rax,%rbp
je     1600 <load_store_df+0x500>
movsd  0x8(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r13,%rbp
je     1609 <load_store_df+0x509>
movsd  0x10(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r12,%rbp
je     1612 <load_store_df+0x512>
movsd  0x18(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r15,%rbp
je     161b <load_store_df+0x51b>
movsd  0x20(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r14,%rbp
je     1624 <load_store_df+0x524>
movsd  0x28(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r11,%rbp
je     162d <load_store_df+0x52d>
movsd  0x30(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r10,%rbp
je     1636 <load_store_df+0x536>
movsd  0x38(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
test   %r9,%rbp
je     12b0 <load_store_df+0x1b0>
movsd  0x40(%rsp),%xmm3
movsd  %xmm3,(%rdx)
add    $0x8,%rdx
jmp    12b0 <load_store_df+0x1b0>
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
pop    %rbx
pop    %r12
pop    %r13
pop    %r14
pop    %r15
pop    %rbp
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
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* %53
br label %54
54: ; preds = %705, %5
%55 = load i64, i64* %53
%56 = load i64, i64* %6
%57 = icmp ult i64 %55, %56
br i1 %57, label %58, label %708
58: ; preds = %54
%59 = load i64*, i64** %9
%60 = getelementptr inbounds i64, i64* %59, i32 1
store i64* %60, i64** %9
%61 = load i64, i64* %59
store i64 %61, i64* %51
%62 = load i64, i64* %51
%63 = and i64 %62, 1
%64 = icmp ne i64 %63, 0
br i1 %64, label %65, label %69
65: ; preds = %58
%66 = load double*, double** %7
%67 = getelementptr inbounds double, double* %66, i32 1
store double* %67, double** %7
%68 = load double, double* %66
store double %68, double* %11
br label %69
69: ; preds = %65, %58
%70 = load i64, i64* %51
%71 = and i64 %70, 2
%72 = icmp ne i64 %71, 0
br i1 %72, label %73, label %77
73: ; preds = %69
%74 = load double*, double** %7
%75 = getelementptr inbounds double, double* %74, i32 1
store double* %75, double** %7
%76 = load double, double* %74
store double %76, double* %12
br label %77
77: ; preds = %73, %69
%78 = load i64, i64* %51
%79 = and i64 %78, 4
%80 = icmp ne i64 %79, 0
br i1 %80, label %81, label %85
81: ; preds = %77
%82 = load double*, double** %7
%83 = getelementptr inbounds double, double* %82, i32 1
store double* %83, double** %7
%84 = load double, double* %82
store double %84, double* %13
br label %85
85: ; preds = %81, %77
%86 = load i64, i64* %51
%87 = and i64 %86, 8
%88 = icmp ne i64 %87, 0
br i1 %88, label %89, label %93
89: ; preds = %85
%90 = load double*, double** %7
%91 = getelementptr inbounds double, double* %90, i32 1
store double* %91, double** %7
%92 = load double, double* %90
store double %92, double* %14
br label %93
93: ; preds = %89, %85
%94 = load i64, i64* %51
%95 = and i64 %94, 16
%96 = icmp ne i64 %95, 0
br i1 %96, label %97, label %101
97: ; preds = %93
%98 = load double*, double** %7
%99 = getelementptr inbounds double, double* %98, i32 1
store double* %99, double** %7
%100 = load double, double* %98
store double %100, double* %15
br label %101
101: ; preds = %97, %93
%102 = load i64, i64* %51
%103 = and i64 %102, 32
%104 = icmp ne i64 %103, 0
br i1 %104, label %105, label %109
105: ; preds = %101
%106 = load double*, double** %7
%107 = getelementptr inbounds double, double* %106, i32 1
store double* %107, double** %7
%108 = load double, double* %106
store double %108, double* %16
br label %109
109: ; preds = %105, %101
%110 = load i64, i64* %51
%111 = and i64 %110, 64
%112 = icmp ne i64 %111, 0
br i1 %112, label %113, label %117
113: ; preds = %109
%114 = load double*, double** %7
%115 = getelementptr inbounds double, double* %114, i32 1
store double* %115, double** %7
%116 = load double, double* %114
store double %116, double* %17
br label %117
117: ; preds = %113, %109
%118 = load i64, i64* %51
%119 = and i64 %118, 128
%120 = icmp ne i64 %119, 0
br i1 %120, label %121, label %125
121: ; preds = %117
%122 = load double*, double** %7
%123 = getelementptr inbounds double, double* %122, i32 1
store double* %123, double** %7
%124 = load double, double* %122
store double %124, double* %18
br label %125
125: ; preds = %121, %117
%126 = load i64, i64* %51
%127 = and i64 %126, 256
%128 = icmp ne i64 %127, 0
br i1 %128, label %129, label %133
129: ; preds = %125
%130 = load double*, double** %7
%131 = getelementptr inbounds double, double* %130, i32 1
store double* %131, double** %7
%132 = load double, double* %130
store double %132, double* %19
br label %133
133: ; preds = %129, %125
%134 = load i64, i64* %51
%135 = and i64 %134, 512
%136 = icmp ne i64 %135, 0
br i1 %136, label %137, label %141
137: ; preds = %133
%138 = load double*, double** %7
%139 = getelementptr inbounds double, double* %138, i32 1
store double* %139, double** %7
%140 = load double, double* %138
store double %140, double* %20
br label %141
141: ; preds = %137, %133
%142 = load i64, i64* %51
%143 = and i64 %142, 1024
%144 = icmp ne i64 %143, 0
br i1 %144, label %145, label %149
145: ; preds = %141
%146 = load double*, double** %7
%147 = getelementptr inbounds double, double* %146, i32 1
store double* %147, double** %7
%148 = load double, double* %146
store double %148, double* %21
br label %149
149: ; preds = %145, %141
%150 = load i64, i64* %51
%151 = and i64 %150, 2048
%152 = icmp ne i64 %151, 0
br i1 %152, label %153, label %157
153: ; preds = %149
%154 = load double*, double** %7
%155 = getelementptr inbounds double, double* %154, i32 1
store double* %155, double** %7
%156 = load double, double* %154
store double %156, double* %22
br label %157
157: ; preds = %153, %149
%158 = load i64, i64* %51
%159 = and i64 %158, 4096
%160 = icmp ne i64 %159, 0
br i1 %160, label %161, label %165
161: ; preds = %157
%162 = load double*, double** %7
%163 = getelementptr inbounds double, double* %162, i32 1
store double* %163, double** %7
%164 = load double, double* %162
store double %164, double* %23
br label %165
165: ; preds = %161, %157
%166 = load i64, i64* %51
%167 = and i64 %166, 8192
%168 = icmp ne i64 %167, 0
br i1 %168, label %169, label %173
169: ; preds = %165
%170 = load double*, double** %7
%171 = getelementptr inbounds double, double* %170, i32 1
store double* %171, double** %7
%172 = load double, double* %170
store double %172, double* %24
br label %173
173: ; preds = %169, %165
%174 = load i64, i64* %51
%175 = and i64 %174, 16384
%176 = icmp ne i64 %175, 0
br i1 %176, label %177, label %181
177: ; preds = %173
%178 = load double*, double** %7
%179 = getelementptr inbounds double, double* %178, i32 1
store double* %179, double** %7
%180 = load double, double* %178
store double %180, double* %25
br label %181
181: ; preds = %177, %173
%182 = load i64, i64* %51
%183 = and i64 %182, 32768
%184 = icmp ne i64 %183, 0
br i1 %184, label %185, label %189
185: ; preds = %181
%186 = load double*, double** %7
%187 = getelementptr inbounds double, double* %186, i32 1
store double* %187, double** %7
%188 = load double, double* %186
store double %188, double* %26
br label %189
189: ; preds = %185, %181
%190 = load i64, i64* %51
%191 = and i64 %190, 65536
%192 = icmp ne i64 %191, 0
br i1 %192, label %193, label %197
193: ; preds = %189
%194 = load double*, double** %7
%195 = getelementptr inbounds double, double* %194, i32 1
store double* %195, double** %7
%196 = load double, double* %194
store double %196, double* %27
br label %197
197: ; preds = %193, %189
%198 = load i64, i64* %51
%199 = and i64 %198, 131072
%200 = icmp ne i64 %199, 0
br i1 %200, label %201, label %205
201: ; preds = %197
%202 = load double*, double** %7
%203 = getelementptr inbounds double, double* %202, i32 1
store double* %203, double** %7
%204 = load double, double* %202
store double %204, double* %28
br label %205
205: ; preds = %201, %197
%206 = load i64, i64* %51
%207 = and i64 %206, 262144
%208 = icmp ne i64 %207, 0
br i1 %208, label %209, label %213
209: ; preds = %205
%210 = load double*, double** %7
%211 = getelementptr inbounds double, double* %210, i32 1
store double* %211, double** %7
%212 = load double, double* %210
store double %212, double* %29
br label %213
213: ; preds = %209, %205
%214 = load i64, i64* %51
%215 = and i64 %214, 524288
%216 = icmp ne i64 %215, 0
br i1 %216, label %217, label %221
217: ; preds = %213
%218 = load double*, double** %7
%219 = getelementptr inbounds double, double* %218, i32 1
store double* %219, double** %7
%220 = load double, double* %218
store double %220, double* %30
br label %221
221: ; preds = %217, %213
%222 = load i64, i64* %51
%223 = and i64 %222, 1048576
%224 = icmp ne i64 %223, 0
br i1 %224, label %225, label %229
225: ; preds = %221
%226 = load double*, double** %7
%227 = getelementptr inbounds double, double* %226, i32 1
store double* %227, double** %7
%228 = load double, double* %226
store double %228, double* %31
br label %229
229: ; preds = %225, %221
%230 = load i64, i64* %51
%231 = and i64 %230, 2097152
%232 = icmp ne i64 %231, 0
br i1 %232, label %233, label %237
233: ; preds = %229
%234 = load double*, double** %7
%235 = getelementptr inbounds double, double* %234, i32 1
store double* %235, double** %7
%236 = load double, double* %234
store double %236, double* %32
br label %237
237: ; preds = %233, %229
%238 = load i64, i64* %51
%239 = and i64 %238, 4194304
%240 = icmp ne i64 %239, 0
br i1 %240, label %241, label %245
241: ; preds = %237
%242 = load double*, double** %7
%243 = getelementptr inbounds double, double* %242, i32 1
store double* %243, double** %7
%244 = load double, double* %242
store double %244, double* %33
br label %245
245: ; preds = %241, %237
%246 = load i64, i64* %51
%247 = and i64 %246, 8388608
%248 = icmp ne i64 %247, 0
br i1 %248, label %249, label %253
249: ; preds = %245
%250 = load double*, double** %7
%251 = getelementptr inbounds double, double* %250, i32 1
store double* %251, double** %7
%252 = load double, double* %250
store double %252, double* %34
br label %253
253: ; preds = %249, %245
%254 = load i64, i64* %51
%255 = and i64 %254, 16777216
%256 = icmp ne i64 %255, 0
br i1 %256, label %257, label %261
257: ; preds = %253
%258 = load double*, double** %7
%259 = getelementptr inbounds double, double* %258, i32 1
store double* %259, double** %7
%260 = load double, double* %258
store double %260, double* %35
br label %261
261: ; preds = %257, %253
%262 = load i64, i64* %51
%263 = and i64 %262, 33554432
%264 = icmp ne i64 %263, 0
br i1 %264, label %265, label %269
265: ; preds = %261
%266 = load double*, double** %7
%267 = getelementptr inbounds double, double* %266, i32 1
store double* %267, double** %7
%268 = load double, double* %266
store double %268, double* %36
br label %269
269: ; preds = %265, %261
%270 = load i64, i64* %51
%271 = and i64 %270, 67108864
%272 = icmp ne i64 %271, 0
br i1 %272, label %273, label %277
273: ; preds = %269
%274 = load double*, double** %7
%275 = getelementptr inbounds double, double* %274, i32 1
store double* %275, double** %7
%276 = load double, double* %274
store double %276, double* %37
br label %277
277: ; preds = %273, %269
%278 = load i64, i64* %51
%279 = and i64 %278, 134217728
%280 = icmp ne i64 %279, 0
br i1 %280, label %281, label %285
281: ; preds = %277
%282 = load double*, double** %7
%283 = getelementptr inbounds double, double* %282, i32 1
store double* %283, double** %7
%284 = load double, double* %282
store double %284, double* %38
br label %285
285: ; preds = %281, %277
%286 = load i64, i64* %51
%287 = and i64 %286, 268435456
%288 = icmp ne i64 %287, 0
br i1 %288, label %289, label %293
289: ; preds = %285
%290 = load double*, double** %7
%291 = getelementptr inbounds double, double* %290, i32 1
store double* %291, double** %7
%292 = load double, double* %290
store double %292, double* %39
br label %293
293: ; preds = %289, %285
%294 = load i64, i64* %51
%295 = and i64 %294, 536870912
%296 = icmp ne i64 %295, 0
br i1 %296, label %297, label %301
297: ; preds = %293
%298 = load double*, double** %7
%299 = getelementptr inbounds double, double* %298, i32 1
store double* %299, double** %7
%300 = load double, double* %298
store double %300, double* %40
br label %301
301: ; preds = %297, %293
%302 = load i64, i64* %51
%303 = and i64 %302, 1073741824
%304 = icmp ne i64 %303, 0
br i1 %304, label %305, label %309
305: ; preds = %301
%306 = load double*, double** %7
%307 = getelementptr inbounds double, double* %306, i32 1
store double* %307, double** %7
%308 = load double, double* %306
store double %308, double* %41
br label %309
309: ; preds = %305, %301
%310 = load i64, i64* %51
%311 = and i64 %310, 2147483648
%312 = icmp ne i64 %311, 0
br i1 %312, label %313, label %317
313: ; preds = %309
%314 = load double*, double** %7
%315 = getelementptr inbounds double, double* %314, i32 1
store double* %315, double** %7
%316 = load double, double* %314
store double %316, double* %42
br label %317
317: ; preds = %313, %309
%318 = load i64, i64* %51
%319 = and i64 %318, 4294967296
%320 = icmp ne i64 %319, 0
br i1 %320, label %321, label %325
321: ; preds = %317
%322 = load double*, double** %7
%323 = getelementptr inbounds double, double* %322, i32 1
store double* %323, double** %7
%324 = load double, double* %322
store double %324, double* %43
br label %325
325: ; preds = %321, %317
%326 = load i64, i64* %51
%327 = and i64 %326, 8589934592
%328 = icmp ne i64 %327, 0
br i1 %328, label %329, label %333
329: ; preds = %325
%330 = load double*, double** %7
%331 = getelementptr inbounds double, double* %330, i32 1
store double* %331, double** %7
%332 = load double, double* %330
store double %332, double* %44
br label %333
333: ; preds = %329, %325
%334 = load i64, i64* %51
%335 = and i64 %334, 17179869184
%336 = icmp ne i64 %335, 0
br i1 %336, label %337, label %341
337: ; preds = %333
%338 = load double*, double** %7
%339 = getelementptr inbounds double, double* %338, i32 1
store double* %339, double** %7
%340 = load double, double* %338
store double %340, double* %45
br label %341
341: ; preds = %337, %333
%342 = load i64, i64* %51
%343 = and i64 %342, 34359738368
%344 = icmp ne i64 %343, 0
br i1 %344, label %345, label %349
345: ; preds = %341
%346 = load double*, double** %7
%347 = getelementptr inbounds double, double* %346, i32 1
store double* %347, double** %7
%348 = load double, double* %346
store double %348, double* %46
br label %349
349: ; preds = %345, %341
%350 = load i64, i64* %51
%351 = and i64 %350, 68719476736
%352 = icmp ne i64 %351, 0
br i1 %352, label %353, label %357
353: ; preds = %349
%354 = load double*, double** %7
%355 = getelementptr inbounds double, double* %354, i32 1
store double* %355, double** %7
%356 = load double, double* %354
store double %356, double* %47
br label %357
357: ; preds = %353, %349
%358 = load i64, i64* %51
%359 = and i64 %358, 137438953472
%360 = icmp ne i64 %359, 0
br i1 %360, label %361, label %365
361: ; preds = %357
%362 = load double*, double** %7
%363 = getelementptr inbounds double, double* %362, i32 1
store double* %363, double** %7
%364 = load double, double* %362
store double %364, double* %48
br label %365
365: ; preds = %361, %357
%366 = load i64, i64* %51
%367 = and i64 %366, 274877906944
%368 = icmp ne i64 %367, 0
br i1 %368, label %369, label %373
369: ; preds = %365
%370 = load double*, double** %7
%371 = getelementptr inbounds double, double* %370, i32 1
store double* %371, double** %7
%372 = load double, double* %370
store double %372, double* %49
br label %373
373: ; preds = %369, %365
%374 = load i64, i64* %51
%375 = and i64 %374, 549755813888
%376 = icmp ne i64 %375, 0
br i1 %376, label %377, label %381
377: ; preds = %373
%378 = load double*, double** %7
%379 = getelementptr inbounds double, double* %378, i32 1
store double* %379, double** %7
%380 = load double, double* %378
store double %380, double* %50
br label %381
381: ; preds = %377, %373
%382 = load i64*, i64** %10
%383 = getelementptr inbounds i64, i64* %382, i32 1
store i64* %383, i64** %10
%384 = load i64, i64* %382
store i64 %384, i64* %52
%385 = load i64, i64* %52
%386 = and i64 %385, 1
%387 = icmp ne i64 %386, 0
br i1 %387, label %388, label %392
388: ; preds = %381
%389 = load double, double* %11
%390 = load double*, double** %8
%391 = getelementptr inbounds double, double* %390, i32 1
store double* %391, double** %8
store double %389, double* %390
br label %392
392: ; preds = %388, %381
%393 = load i64, i64* %52
%394 = and i64 %393, 2
%395 = icmp ne i64 %394, 0
br i1 %395, label %396, label %400
396: ; preds = %392
%397 = load double, double* %12
%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, %392
%401 = load i64, i64* %52
%402 = and i64 %401, 4
%403 = icmp ne i64 %402, 0
br i1 %403, label %404, label %408
404: ; preds = %400
%405 = load double, double* %13
%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* %52
%410 = and i64 %409, 8
%411 = icmp ne i64 %410, 0
br i1 %411, label %412, label %416
412: ; preds = %408
%413 = load double, double* %14
%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* %52
%418 = and i64 %417, 16
%419 = icmp ne i64 %418, 0
br i1 %419, label %420, label %424
420: ; preds = %416
%421 = load double, double* %15
%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* %52
%426 = and i64 %425, 32
%427 = icmp ne i64 %426, 0
br i1 %427, label %428, label %432
428: ; preds = %424
%429 = load double, double* %16
%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* %52
%434 = and i64 %433, 64
%435 = icmp ne i64 %434, 0
br i1 %435, label %436, label %440
436: ; preds = %432
%437 = load double, double* %17
%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* %52
%442 = and i64 %441, 128
%443 = icmp ne i64 %442, 0
br i1 %443, label %444, label %448
444: ; preds = %440
%445 = load double, double* %18
%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* %52
%450 = and i64 %449, 256
%451 = icmp ne i64 %450, 0
br i1 %451, label %452, label %456
452: ; preds = %448
%453 = load double, double* %19
%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* %52
%458 = and i64 %457, 512
%459 = icmp ne i64 %458, 0
br i1 %459, label %460, label %464
460: ; preds = %456
%461 = load double, double* %20
%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* %52
%466 = and i64 %465, 1024
%467 = icmp ne i64 %466, 0
br i1 %467, label %468, label %472
468: ; preds = %464
%469 = load double, double* %21
%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* %52
%474 = and i64 %473, 2048
%475 = icmp ne i64 %474, 0
br i1 %475, label %476, label %480
476: ; preds = %472
%477 = load double, double* %22
%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* %52
%482 = and i64 %481, 4096
%483 = icmp ne i64 %482, 0
br i1 %483, label %484, label %488
484: ; preds = %480
%485 = load double, double* %23
%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* %52
%490 = and i64 %489, 8192
%491 = icmp ne i64 %490, 0
br i1 %491, label %492, label %496
492: ; preds = %488
%493 = load double, double* %24
%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* %52
%498 = and i64 %497, 16384
%499 = icmp ne i64 %498, 0
br i1 %499, label %500, label %504
500: ; preds = %496
%501 = load double, double* %25
%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* %52
%506 = and i64 %505, 32768
%507 = icmp ne i64 %506, 0
br i1 %507, label %508, label %512
508: ; preds = %504
%509 = load double, double* %26
%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* %52
%514 = and i64 %513, 65536
%515 = icmp ne i64 %514, 0
br i1 %515, label %516, label %520
516: ; preds = %512
%517 = load double, double* %27
%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* %52
%522 = and i64 %521, 131072
%523 = icmp ne i64 %522, 0
br i1 %523, label %524, label %528
524: ; preds = %520
%525 = load double, double* %28
%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* %52
%530 = and i64 %529, 262144
%531 = icmp ne i64 %530, 0
br i1 %531, label %532, label %536
532: ; preds = %528
%533 = load double, double* %29
%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* %52
%538 = and i64 %537, 524288
%539 = icmp ne i64 %538, 0
br i1 %539, label %540, label %544
540: ; preds = %536
%541 = load double, double* %30
%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* %52
%546 = and i64 %545, 1048576
%547 = icmp ne i64 %546, 0
br i1 %547, label %548, label %552
548: ; preds = %544
%549 = load double, double* %31
%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* %52
%554 = and i64 %553, 2097152
%555 = icmp ne i64 %554, 0
br i1 %555, label %556, label %560
556: ; preds = %552
%557 = load double, double* %32
%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* %52
%562 = and i64 %561, 4194304
%563 = icmp ne i64 %562, 0
br i1 %563, label %564, label %568
564: ; preds = %560
%565 = load double, double* %33
%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* %52
%570 = and i64 %569, 8388608
%571 = icmp ne i64 %570, 0
br i1 %571, label %572, label %576
572: ; preds = %568
%573 = load double, double* %34
%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* %52
%578 = and i64 %577, 16777216
%579 = icmp ne i64 %578, 0
br i1 %579, label %580, label %584
580: ; preds = %576
%581 = load double, double* %35
%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* %52
%586 = and i64 %585, 33554432
%587 = icmp ne i64 %586, 0
br i1 %587, label %588, label %592
588: ; preds = %584
%589 = load double, double* %36
%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* %52
%594 = and i64 %593, 67108864
%595 = icmp ne i64 %594, 0
br i1 %595, label %596, label %600
596: ; preds = %592
%597 = load double, double* %37
%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* %52
%602 = and i64 %601, 134217728
%603 = icmp ne i64 %602, 0
br i1 %603, label %604, label %608
604: ; preds = %600
%605 = load double, double* %38
%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* %52
%610 = and i64 %609, 268435456
%611 = icmp ne i64 %610, 0
br i1 %611, label %612, label %616
612: ; preds = %608
%613 = load double, double* %39
%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* %52
%618 = and i64 %617, 536870912
%619 = icmp ne i64 %618, 0
br i1 %619, label %620, label %624
620: ; preds = %616
%621 = load double, double* %40
%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* %52
%626 = and i64 %625, 1073741824
%627 = icmp ne i64 %626, 0
br i1 %627, label %628, label %632
628: ; preds = %624
%629 = load double, double* %41
%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* %52
%634 = and i64 %633, 2147483648
%635 = icmp ne i64 %634, 0
br i1 %635, label %636, label %640
636: ; preds = %632
%637 = load double, double* %42
%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* %52
%642 = and i64 %641, 4294967296
%643 = icmp ne i64 %642, 0
br i1 %643, label %644, label %648
644: ; preds = %640
%645 = load double, double* %43
%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* %52
%650 = and i64 %649, 8589934592
%651 = icmp ne i64 %650, 0
br i1 %651, label %652, label %656
652: ; preds = %648
%653 = load double, double* %44
%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* %52
%658 = and i64 %657, 17179869184
%659 = icmp ne i64 %658, 0
br i1 %659, label %660, label %664
660: ; preds = %656
%661 = load double, double* %45
%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* %52
%666 = and i64 %665, 34359738368
%667 = icmp ne i64 %666, 0
br i1 %667, label %668, label %672
668: ; preds = %664
%669 = load double, double* %46
%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* %52
%674 = and i64 %673, 68719476736
%675 = icmp ne i64 %674, 0
br i1 %675, label %676, label %680
676: ; preds = %672
%677 = load double, double* %47
%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* %52
%682 = and i64 %681, 137438953472
%683 = icmp ne i64 %682, 0
br i1 %683, label %684, label %688
684: ; preds = %680
%685 = load double, double* %48
%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* %52
%690 = and i64 %689, 274877906944
%691 = icmp ne i64 %690, 0
br i1 %691, label %692, label %696
692: ; preds = %688
%693 = load double, double* %49
%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* %52
%698 = and i64 %697, 549755813888
%699 = icmp ne i64 %698, 0
br i1 %699, label %700, label %704
700: ; preds = %696
%701 = load double, double* %50
%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
br label %705
705: ; preds = %704
%706 = load i64, i64* %53
%707 = add i64 %706, 1
store i64 %707, i64* %53
br label %54
708: ; preds = %54
%709 = load double, double* %11
%710 = load double, double* %12
%711 = fadd double %709, %710
%712 = load double, double* %13
%713 = fadd double %711, %712
%714 = load double, double* %14
%715 = fadd double %713, %714
%716 = load double, double* %15
%717 = fadd double %715, %716
%718 = load double, double* %16
%719 = fadd double %717, %718
%720 = load double, double* %17
%721 = fadd double %719, %720
%722 = load double, double* %18
%723 = fadd double %721, %722
%724 = load double, double* %19
%725 = fadd double %723, %724
%726 = load double, double* %20
%727 = fadd double %725, %726
%728 = load double, double* %21
%729 = fadd double %727, %728
%730 = load double, double* %22
%731 = fadd double %729, %730
%732 = load double, double* %23
%733 = fadd double %731, %732
%734 = load double, double* %24
%735 = fadd double %733, %734
%736 = load double, double* %25
%737 = fadd double %735, %736
%738 = load double, double* %26
%739 = fadd double %737, %738
%740 = load double, double* %27
%741 = fadd double %739, %740
%742 = load double, double* %28
%743 = fadd double %741, %742
%744 = load double, double* %29
%745 = fadd double %743, %744
%746 = load double, double* %30
%747 = fadd double %745, %746
%748 = load double, double* %31
%749 = fadd double %747, %748
%750 = load double, double* %32
%751 = fadd double %749, %750
%752 = load double, double* %33
%753 = fadd double %751, %752
%754 = load double, double* %34
%755 = fadd double %753, %754
%756 = load double, double* %35
%757 = fadd double %755, %756
%758 = load double, double* %36
%759 = fadd double %757, %758
%760 = load double, double* %37
%761 = fadd double %759, %760
%762 = load double, double* %38
%763 = fadd double %761, %762
%764 = load double, double* %39
%765 = fadd double %763, %764
%766 = load double, double* %40
%767 = fadd double %765, %766
%768 = load double, double* %41
%769 = fadd double %767, %768
%770 = load double, double* %42
%771 = fadd double %769, %770
%772 = load double, double* %43
%773 = fadd double %771, %772
%774 = load double, double* %44
%775 = fadd double %773, %774
%776 = load double, double* %45
%777 = fadd double %775, %776
%778 = load double, double* %46
%779 = fadd double %777, %778
%780 = load double, double* %47
%781 = fadd double %779, %780
%782 = load double, double* %48
%783 = fadd double %781, %782
%784 = load double, double* %49
%785 = fadd double %783, %784
%786 = load double, double* %50
%787 = fadd double %785, %786
ret double %787
}

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