void da_mul_da_d(const double *a, double b, double *c) {
  double f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, e;
  f10 = 0.0;
  f9 = dd_two_prod(a[9], b, &e);
  f10 += e;
  f8 = dd_two_prod(a[8], b, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f7 = dd_two_prod(a[7], b, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f6 = dd_two_prod(a[6], b, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f5 = dd_two_prod(a[5], b, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f4 = dd_two_prod(a[4], b, &e);
  f5 = dd_two_sum(f5, e, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f3 = dd_two_prod(a[3], b, &e);
  f4 = dd_two_sum(f4, e, &e);
  f5 = dd_two_sum(f5, e, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f2 = dd_two_prod(a[2], b, &e);
  f3 = dd_two_sum(f3, e, &e);
  f4 = dd_two_sum(f4, e, &e);
  f5 = dd_two_sum(f5, e, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f1 = dd_two_prod(a[1], b, &e);
  f2 = dd_two_sum(f2, e, &e);
  f3 = dd_two_sum(f3, e, &e);
  f4 = dd_two_sum(f4, e, &e);
  f5 = dd_two_sum(f5, e, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  f0 = dd_two_prod(a[0], b, &e);
  f1 = dd_two_sum(f1, e, &e);
  f2 = dd_two_sum(f2, e, &e);
  f3 = dd_two_sum(f3, e, &e);
  f4 = dd_two_sum(f4, e, &e);
  f5 = dd_two_sum(f5, e, &e);
  f6 = dd_two_sum(f6, e, &e);
  f7 = dd_two_sum(f7, e, &e);
  f8 = dd_two_sum(f8, e, &e);
  f9 = dd_two_sum(f9, e, &e);
  f10 += e;
  da_fast_renorm(f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, &c[0], &c[1],
                 &c[2], &c[3], &c[4], &c[5], &c[6], &c[7], &c[8], &c[9]);
}


x86 assembly (clang, -O0):
<da_mul_da_d>:
push   %rbp
mov    %rsp,%rbp
push   %rbx
sub    $0xb8,%rsp
mov    %rdi,-0x10(%rbp)
movsd  %xmm0,-0x18(%rbp)
mov    %rsi,-0x20(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  -0x18(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x28(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x30(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x38(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x40(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x48(%rbp)
movsd  -0x50(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x60(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x68(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x70(%rbp),%xmm0
movsd  -0x80(%rbp),%xmm1
lea    -0x80(%rbp),%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
cvtsi2sd %eax,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x80(%rbp),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x28(%rbp),%xmm0
movsd  -0x30(%rbp),%xmm1
movsd  -0x38(%rbp),%xmm2
movsd  -0x40(%rbp),%xmm3
movsd  -0x48(%rbp),%xmm4
movsd  -0x50(%rbp),%xmm5
movsd  -0x58(%rbp),%xmm6
movsd  -0x60(%rbp),%xmm7
movsd  -0x68(%rbp),%xmm10
movsd  -0x70(%rbp),%xmm9
movsd  -0x78(%rbp),%xmm8
mov    -0x20(%rbp),%rdi
mov    -0x20(%rbp),%rsi
add    $0x8,%rsi
mov    -0x20(%rbp),%rdx
add    $0x10,%rdx
mov    -0x20(%rbp),%rcx
add    $0x18,%rcx
mov    -0x20(%rbp),%r8
add    $0x20,%r8
mov    -0x20(%rbp),%r9
add    $0x28,%r9
mov    -0x20(%rbp),%rbx
add    $0x30,%rbx
mov    -0x20(%rbp),%r11
add    $0x38,%r11
mov    -0x20(%rbp),%r10
add    $0x40,%r10
mov    -0x20(%rbp),%rax
add    $0x48,%rax
movsd  %xmm10,(%rsp)
movsd  %xmm9,0x8(%rsp)
movsd  %xmm8,0x10(%rsp)
mov    %rbx,0x18(%rsp)
mov    %r11,0x20(%rsp)
mov    %r10,0x28(%rsp)
mov    %rax,0x30(%rsp)
mov    $0x8,%al
call   1050 <da_fast_renorm@plt>
add    $0xb8,%rsp
pop    %rbx
pop    %rbp
ret

x86 assembly (clang, -O2):
<da_mul_da_d>:
push   %r15
push   %r14
push   %rbx
sub    $0xa0,%rsp
mov    %rsi,%r14
movaps %xmm0,%xmm1
movsd  %xmm0,0x90(%rsp)
mov    %rdi,%r15
movsd  0x48(%rdi),%xmm0
lea    0x40(%rsp),%rbx
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
xorpd  %xmm0,%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x40(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x88(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x38(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x80(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x78(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x30(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x88(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x68(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x28(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x80(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x78(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x60(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x58(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x20(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x88(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x68(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x50(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x98(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x18(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x80(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x78(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x60(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x58(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x50(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x98(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x10(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x88(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x68(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x60(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x58(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x50(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x98(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  0x8(%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x80(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x78(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x68(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x60(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x58(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x50(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x98(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x98(%rsp)
movsd  0x48(%rsp),%xmm0
addsd  0x40(%rsp),%xmm0
movsd  %xmm0,0x48(%rsp)
movsd  (%r15),%xmm0
movsd  0x90(%rsp),%xmm1
mov    %rbx,%rdi
mov    $0x2,%al
call   1030 <dd_two_prod@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x90(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x88(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x88(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x80(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x80(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x78(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x78(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x70(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x70(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x68(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x68(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x60(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x60(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x58(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x58(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x50(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  %xmm0,0x50(%rsp)
movsd  0x40(%rsp),%xmm1
movsd  0x98(%rsp),%xmm0
mov    %rbx,%rdi
mov    $0x2,%al
call   1040 <dd_two_sum@plt>
xorps  %xmm0,%xmm0
cvtsi2sd %eax,%xmm0
movsd  0x48(%rsp),%xmm1
addsd  0x40(%rsp),%xmm1
lea    0x8(%r14),%rsi
lea    0x10(%r14),%rdx
lea    0x18(%r14),%rcx
lea    0x20(%r14),%r8
lea    0x28(%r14),%r9
lea    0x30(%r14),%r10
lea    0x38(%r14),%rdi
lea    0x40(%r14),%rbx
lea    0x48(%r14),%rax
mov    %rax,0x30(%rsp)
mov    %rbx,0x28(%rsp)
mov    %rdi,0x20(%rsp)
mov    %r10,0x18(%rsp)
movsd  %xmm1,0x10(%rsp)
movsd  %xmm0,0x8(%rsp)
movsd  0x50(%rsp),%xmm0
movsd  %xmm0,(%rsp)
movsd  0x90(%rsp),%xmm0
movsd  0x88(%rsp),%xmm1
movsd  0x80(%rsp),%xmm2
movsd  0x78(%rsp),%xmm3
movsd  0x70(%rsp),%xmm4
movsd  0x68(%rsp),%xmm5
movsd  0x60(%rsp),%xmm6
movsd  0x58(%rsp),%xmm7
mov    %r14,%rdi
mov    $0x8,%al
call   1050 <da_fast_renorm@plt>
add    $0xa0,%rsp
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
define void @da_mul_da_d(double* %0, double %1, double* %2) {
%4 = alloca double*
%5 = alloca double
%6 = alloca double*
%7 = alloca double
%8 = alloca double
%9 = alloca double
%10 = alloca double
%11 = alloca double
%12 = alloca double
%13 = alloca double
%14 = alloca double
%15 = alloca double
%16 = alloca double
%17 = alloca double
%18 = alloca double
store double* %0, double** %4
store double %1, double* %5
store double* %2, double** %6
store double 0.000000e+00, double* %17
%19 = load double*, double** %4
%20 = getelementptr inbounds double, double* %19, i64 9
%21 = load double, double* %20
%22 = load double, double* %5
%23 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %21, double %22, double* %18)
%24 = sitofp i32 %23 to double
store double %24, double* %16
%25 = load double, double* %18
%26 = load double, double* %17
%27 = fadd double %26, %25
store double %27, double* %17
%28 = load double*, double** %4
%29 = getelementptr inbounds double, double* %28, i64 8
%30 = load double, double* %29
%31 = load double, double* %5
%32 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %30, double %31, double* %18)
%33 = sitofp i32 %32 to double
store double %33, double* %15
%34 = load double, double* %16
%35 = load double, double* %18
%36 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %34, double %35, double* %18)
%37 = sitofp i32 %36 to double
store double %37, double* %16
%38 = load double, double* %18
%39 = load double, double* %17
%40 = fadd double %39, %38
store double %40, double* %17
%41 = load double*, double** %4
%42 = getelementptr inbounds double, double* %41, i64 7
%43 = load double, double* %42
%44 = load double, double* %5
%45 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %43, double %44, double* %18)
%46 = sitofp i32 %45 to double
store double %46, double* %14
%47 = load double, double* %15
%48 = load double, double* %18
%49 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %47, double %48, double* %18)
%50 = sitofp i32 %49 to double
store double %50, double* %15
%51 = load double, double* %16
%52 = load double, double* %18
%53 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %51, double %52, double* %18)
%54 = sitofp i32 %53 to double
store double %54, double* %16
%55 = load double, double* %18
%56 = load double, double* %17
%57 = fadd double %56, %55
store double %57, double* %17
%58 = load double*, double** %4
%59 = getelementptr inbounds double, double* %58, i64 6
%60 = load double, double* %59
%61 = load double, double* %5
%62 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %60, double %61, double* %18)
%63 = sitofp i32 %62 to double
store double %63, double* %13
%64 = load double, double* %14
%65 = load double, double* %18
%66 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %64, double %65, double* %18)
%67 = sitofp i32 %66 to double
store double %67, double* %14
%68 = load double, double* %15
%69 = load double, double* %18
%70 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %68, double %69, double* %18)
%71 = sitofp i32 %70 to double
store double %71, double* %15
%72 = load double, double* %16
%73 = load double, double* %18
%74 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %72, double %73, double* %18)
%75 = sitofp i32 %74 to double
store double %75, double* %16
%76 = load double, double* %18
%77 = load double, double* %17
%78 = fadd double %77, %76
store double %78, double* %17
%79 = load double*, double** %4
%80 = getelementptr inbounds double, double* %79, i64 5
%81 = load double, double* %80
%82 = load double, double* %5
%83 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %81, double %82, double* %18)
%84 = sitofp i32 %83 to double
store double %84, double* %12
%85 = load double, double* %13
%86 = load double, double* %18
%87 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %85, double %86, double* %18)
%88 = sitofp i32 %87 to double
store double %88, double* %13
%89 = load double, double* %14
%90 = load double, double* %18
%91 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %89, double %90, double* %18)
%92 = sitofp i32 %91 to double
store double %92, double* %14
%93 = load double, double* %15
%94 = load double, double* %18
%95 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %93, double %94, double* %18)
%96 = sitofp i32 %95 to double
store double %96, double* %15
%97 = load double, double* %16
%98 = load double, double* %18
%99 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %97, double %98, double* %18)
%100 = sitofp i32 %99 to double
store double %100, double* %16
%101 = load double, double* %18
%102 = load double, double* %17
%103 = fadd double %102, %101
store double %103, double* %17
%104 = load double*, double** %4
%105 = getelementptr inbounds double, double* %104, i64 4
%106 = load double, double* %105
%107 = load double, double* %5
%108 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %106, double %107, double* %18)
%109 = sitofp i32 %108 to double
store double %109, double* %11
%110 = load double, double* %12
%111 = load double, double* %18
%112 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %110, double %111, double* %18)
%113 = sitofp i32 %112 to double
store double %113, double* %12
%114 = load double, double* %13
%115 = load double, double* %18
%116 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %114, double %115, double* %18)
%117 = sitofp i32 %116 to double
store double %117, double* %13
%118 = load double, double* %14
%119 = load double, double* %18
%120 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %118, double %119, double* %18)
%121 = sitofp i32 %120 to double
store double %121, double* %14
%122 = load double, double* %15
%123 = load double, double* %18
%124 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %122, double %123, double* %18)
%125 = sitofp i32 %124 to double
store double %125, double* %15
%126 = load double, double* %16
%127 = load double, double* %18
%128 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %126, double %127, double* %18)
%129 = sitofp i32 %128 to double
store double %129, double* %16
%130 = load double, double* %18
%131 = load double, double* %17
%132 = fadd double %131, %130
store double %132, double* %17
%133 = load double*, double** %4
%134 = getelementptr inbounds double, double* %133, i64 3
%135 = load double, double* %134
%136 = load double, double* %5
%137 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %135, double %136, double* %18)
%138 = sitofp i32 %137 to double
store double %138, double* %10
%139 = load double, double* %11
%140 = load double, double* %18
%141 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %139, double %140, double* %18)
%142 = sitofp i32 %141 to double
store double %142, double* %11
%143 = load double, double* %12
%144 = load double, double* %18
%145 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %143, double %144, double* %18)
%146 = sitofp i32 %145 to double
store double %146, double* %12
%147 = load double, double* %13
%148 = load double, double* %18
%149 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %147, double %148, double* %18)
%150 = sitofp i32 %149 to double
store double %150, double* %13
%151 = load double, double* %14
%152 = load double, double* %18
%153 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %151, double %152, double* %18)
%154 = sitofp i32 %153 to double
store double %154, double* %14
%155 = load double, double* %15
%156 = load double, double* %18
%157 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %155, double %156, double* %18)
%158 = sitofp i32 %157 to double
store double %158, double* %15
%159 = load double, double* %16
%160 = load double, double* %18
%161 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %159, double %160, double* %18)
%162 = sitofp i32 %161 to double
store double %162, double* %16
%163 = load double, double* %18
%164 = load double, double* %17
%165 = fadd double %164, %163
store double %165, double* %17
%166 = load double*, double** %4
%167 = getelementptr inbounds double, double* %166, i64 2
%168 = load double, double* %167
%169 = load double, double* %5
%170 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %168, double %169, double* %18)
%171 = sitofp i32 %170 to double
store double %171, double* %9
%172 = load double, double* %10
%173 = load double, double* %18
%174 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %172, double %173, double* %18)
%175 = sitofp i32 %174 to double
store double %175, double* %10
%176 = load double, double* %11
%177 = load double, double* %18
%178 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %176, double %177, double* %18)
%179 = sitofp i32 %178 to double
store double %179, double* %11
%180 = load double, double* %12
%181 = load double, double* %18
%182 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %180, double %181, double* %18)
%183 = sitofp i32 %182 to double
store double %183, double* %12
%184 = load double, double* %13
%185 = load double, double* %18
%186 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %184, double %185, double* %18)
%187 = sitofp i32 %186 to double
store double %187, double* %13
%188 = load double, double* %14
%189 = load double, double* %18
%190 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %188, double %189, double* %18)
%191 = sitofp i32 %190 to double
store double %191, double* %14
%192 = load double, double* %15
%193 = load double, double* %18
%194 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %192, double %193, double* %18)
%195 = sitofp i32 %194 to double
store double %195, double* %15
%196 = load double, double* %16
%197 = load double, double* %18
%198 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %196, double %197, double* %18)
%199 = sitofp i32 %198 to double
store double %199, double* %16
%200 = load double, double* %18
%201 = load double, double* %17
%202 = fadd double %201, %200
store double %202, double* %17
%203 = load double*, double** %4
%204 = getelementptr inbounds double, double* %203, i64 1
%205 = load double, double* %204
%206 = load double, double* %5
%207 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %205, double %206, double* %18)
%208 = sitofp i32 %207 to double
store double %208, double* %8
%209 = load double, double* %9
%210 = load double, double* %18
%211 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %209, double %210, double* %18)
%212 = sitofp i32 %211 to double
store double %212, double* %9
%213 = load double, double* %10
%214 = load double, double* %18
%215 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %213, double %214, double* %18)
%216 = sitofp i32 %215 to double
store double %216, double* %10
%217 = load double, double* %11
%218 = load double, double* %18
%219 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %217, double %218, double* %18)
%220 = sitofp i32 %219 to double
store double %220, double* %11
%221 = load double, double* %12
%222 = load double, double* %18
%223 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %221, double %222, double* %18)
%224 = sitofp i32 %223 to double
store double %224, double* %12
%225 = load double, double* %13
%226 = load double, double* %18
%227 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %225, double %226, double* %18)
%228 = sitofp i32 %227 to double
store double %228, double* %13
%229 = load double, double* %14
%230 = load double, double* %18
%231 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %229, double %230, double* %18)
%232 = sitofp i32 %231 to double
store double %232, double* %14
%233 = load double, double* %15
%234 = load double, double* %18
%235 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %233, double %234, double* %18)
%236 = sitofp i32 %235 to double
store double %236, double* %15
%237 = load double, double* %16
%238 = load double, double* %18
%239 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %237, double %238, double* %18)
%240 = sitofp i32 %239 to double
store double %240, double* %16
%241 = load double, double* %18
%242 = load double, double* %17
%243 = fadd double %242, %241
store double %243, double* %17
%244 = load double*, double** %4
%245 = getelementptr inbounds double, double* %244, i64 0
%246 = load double, double* %245
%247 = load double, double* %5
%248 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %246, double %247, double* %18)
%249 = sitofp i32 %248 to double
store double %249, double* %7
%250 = load double, double* %8
%251 = load double, double* %18
%252 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %250, double %251, double* %18)
%253 = sitofp i32 %252 to double
store double %253, double* %8
%254 = load double, double* %9
%255 = load double, double* %18
%256 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %254, double %255, double* %18)
%257 = sitofp i32 %256 to double
store double %257, double* %9
%258 = load double, double* %10
%259 = load double, double* %18
%260 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %258, double %259, double* %18)
%261 = sitofp i32 %260 to double
store double %261, double* %10
%262 = load double, double* %11
%263 = load double, double* %18
%264 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %262, double %263, double* %18)
%265 = sitofp i32 %264 to double
store double %265, double* %11
%266 = load double, double* %12
%267 = load double, double* %18
%268 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %266, double %267, double* %18)
%269 = sitofp i32 %268 to double
store double %269, double* %12
%270 = load double, double* %13
%271 = load double, double* %18
%272 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %270, double %271, double* %18)
%273 = sitofp i32 %272 to double
store double %273, double* %13
%274 = load double, double* %14
%275 = load double, double* %18
%276 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %274, double %275, double* %18)
%277 = sitofp i32 %276 to double
store double %277, double* %14
%278 = load double, double* %15
%279 = load double, double* %18
%280 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %278, double %279, double* %18)
%281 = sitofp i32 %280 to double
store double %281, double* %15
%282 = load double, double* %16
%283 = load double, double* %18
%284 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %282, double %283, double* %18)
%285 = sitofp i32 %284 to double
store double %285, double* %16
%286 = load double, double* %18
%287 = load double, double* %17
%288 = fadd double %287, %286
store double %288, double* %17
%289 = load double, double* %7
%290 = load double, double* %8
%291 = load double, double* %9
%292 = load double, double* %10
%293 = load double, double* %11
%294 = load double, double* %12
%295 = load double, double* %13
%296 = load double, double* %14
%297 = load double, double* %15
%298 = load double, double* %16
%299 = load double, double* %17
%300 = load double*, double** %6
%301 = getelementptr inbounds double, double* %300, i64 0
%302 = load double*, double** %6
%303 = getelementptr inbounds double, double* %302, i64 1
%304 = load double*, double** %6
%305 = getelementptr inbounds double, double* %304, i64 2
%306 = load double*, double** %6
%307 = getelementptr inbounds double, double* %306, i64 3
%308 = load double*, double** %6
%309 = getelementptr inbounds double, double* %308, i64 4
%310 = load double*, double** %6
%311 = getelementptr inbounds double, double* %310, i64 5
%312 = load double*, double** %6
%313 = getelementptr inbounds double, double* %312, i64 6
%314 = load double*, double** %6
%315 = getelementptr inbounds double, double* %314, i64 7
%316 = load double*, double** %6
%317 = getelementptr inbounds double, double* %316, i64 8
%318 = load double*, double** %6
%319 = getelementptr inbounds double, double* %318, i64 9
%320 = call i32 (double, double, double, double, double, double, double, double, double, double, double, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @da_fast_renorm to i32 (double, double, double, double, double, double, double, double, double, double, double, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, ...)*)(double %289, double %290, double %291, double %292, double %293, double %294, double %295, double %296, double %297, double %298, double %299, double* %301, double* %303, double* %305, double* %307, double* %309, double* %311, double* %313, double* %315, double* %317, double* %319)
ret void
}

LLVM IR (-O2):
define void @da_mul_da_d(double* nocapture %0, double %1, double* %2) {
%4 = alloca double
%5 = bitcast double* %4 to i8*
%6 = getelementptr inbounds double, double* %0, i64 9
%7 = load double, double* %6
%8 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %7, double %1, double* %4)
%9 = sitofp i32 %8 to double
%10 = load double, double* %4
%11 = fadd double %10, 0.000000e+00
%12 = getelementptr inbounds double, double* %0, i64 8
%13 = load double, double* %12
%14 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %13, double %1, double* %4)
%15 = sitofp i32 %14 to double
%16 = load double, double* %4
%17 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %9, double %16, double* %4)
%18 = sitofp i32 %17 to double
%19 = load double, double* %4
%20 = fadd double %11, %19
%21 = getelementptr inbounds double, double* %0, i64 7
%22 = load double, double* %21
%23 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %22, double %1, double* %4)
%24 = sitofp i32 %23 to double
%25 = load double, double* %4
%26 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %15, double %25, double* %4)
%27 = sitofp i32 %26 to double
%28 = load double, double* %4
%29 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %18, double %28, double* %4)
%30 = sitofp i32 %29 to double
%31 = load double, double* %4
%32 = fadd double %20, %31
%33 = getelementptr inbounds double, double* %0, i64 6
%34 = load double, double* %33
%35 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %34, double %1, double* %4)
%36 = sitofp i32 %35 to double
%37 = load double, double* %4
%38 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %24, double %37, double* %4)
%39 = sitofp i32 %38 to double
%40 = load double, double* %4
%41 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %27, double %40, double* %4)
%42 = sitofp i32 %41 to double
%43 = load double, double* %4
%44 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %30, double %43, double* %4)
%45 = sitofp i32 %44 to double
%46 = load double, double* %4
%47 = fadd double %32, %46
%48 = getelementptr inbounds double, double* %0, i64 5
%49 = load double, double* %48
%50 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %49, double %1, double* %4)
%51 = sitofp i32 %50 to double
%52 = load double, double* %4
%53 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %36, double %52, double* %4)
%54 = sitofp i32 %53 to double
%55 = load double, double* %4
%56 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %39, double %55, double* %4)
%57 = sitofp i32 %56 to double
%58 = load double, double* %4
%59 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %42, double %58, double* %4)
%60 = sitofp i32 %59 to double
%61 = load double, double* %4
%62 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %45, double %61, double* %4)
%63 = sitofp i32 %62 to double
%64 = load double, double* %4
%65 = fadd double %47, %64
%66 = getelementptr inbounds double, double* %0, i64 4
%67 = load double, double* %66
%68 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %67, double %1, double* %4)
%69 = sitofp i32 %68 to double
%70 = load double, double* %4
%71 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %51, double %70, double* %4)
%72 = sitofp i32 %71 to double
%73 = load double, double* %4
%74 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %54, double %73, double* %4)
%75 = sitofp i32 %74 to double
%76 = load double, double* %4
%77 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %57, double %76, double* %4)
%78 = sitofp i32 %77 to double
%79 = load double, double* %4
%80 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %60, double %79, double* %4)
%81 = sitofp i32 %80 to double
%82 = load double, double* %4
%83 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %63, double %82, double* %4)
%84 = sitofp i32 %83 to double
%85 = load double, double* %4
%86 = fadd double %65, %85
%87 = getelementptr inbounds double, double* %0, i64 3
%88 = load double, double* %87
%89 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %88, double %1, double* %4)
%90 = sitofp i32 %89 to double
%91 = load double, double* %4
%92 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %69, double %91, double* %4)
%93 = sitofp i32 %92 to double
%94 = load double, double* %4
%95 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %72, double %94, double* %4)
%96 = sitofp i32 %95 to double
%97 = load double, double* %4
%98 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %75, double %97, double* %4)
%99 = sitofp i32 %98 to double
%100 = load double, double* %4
%101 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %78, double %100, double* %4)
%102 = sitofp i32 %101 to double
%103 = load double, double* %4
%104 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %81, double %103, double* %4)
%105 = sitofp i32 %104 to double
%106 = load double, double* %4
%107 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %84, double %106, double* %4)
%108 = sitofp i32 %107 to double
%109 = load double, double* %4
%110 = fadd double %86, %109
%111 = getelementptr inbounds double, double* %0, i64 2
%112 = load double, double* %111
%113 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %112, double %1, double* %4)
%114 = sitofp i32 %113 to double
%115 = load double, double* %4
%116 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %90, double %115, double* %4)
%117 = sitofp i32 %116 to double
%118 = load double, double* %4
%119 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %93, double %118, double* %4)
%120 = sitofp i32 %119 to double
%121 = load double, double* %4
%122 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %96, double %121, double* %4)
%123 = sitofp i32 %122 to double
%124 = load double, double* %4
%125 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %99, double %124, double* %4)
%126 = sitofp i32 %125 to double
%127 = load double, double* %4
%128 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %102, double %127, double* %4)
%129 = sitofp i32 %128 to double
%130 = load double, double* %4
%131 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %105, double %130, double* %4)
%132 = sitofp i32 %131 to double
%133 = load double, double* %4
%134 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %108, double %133, double* %4)
%135 = sitofp i32 %134 to double
%136 = load double, double* %4
%137 = fadd double %110, %136
%138 = getelementptr inbounds double, double* %0, i64 1
%139 = load double, double* %138
%140 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %139, double %1, double* %4)
%141 = sitofp i32 %140 to double
%142 = load double, double* %4
%143 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %114, double %142, double* %4)
%144 = sitofp i32 %143 to double
%145 = load double, double* %4
%146 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %117, double %145, double* %4)
%147 = sitofp i32 %146 to double
%148 = load double, double* %4
%149 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %120, double %148, double* %4)
%150 = sitofp i32 %149 to double
%151 = load double, double* %4
%152 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %123, double %151, double* %4)
%153 = sitofp i32 %152 to double
%154 = load double, double* %4
%155 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %126, double %154, double* %4)
%156 = sitofp i32 %155 to double
%157 = load double, double* %4
%158 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %129, double %157, double* %4)
%159 = sitofp i32 %158 to double
%160 = load double, double* %4
%161 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %132, double %160, double* %4)
%162 = sitofp i32 %161 to double
%163 = load double, double* %4
%164 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %135, double %163, double* %4)
%165 = sitofp i32 %164 to double
%166 = load double, double* %4
%167 = fadd double %137, %166
%168 = load double, double* %0
%169 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_prod to i32 (double, double, double*, ...)*)(double %168, double %1, double* %4)
%170 = sitofp i32 %169 to double
%171 = load double, double* %4
%172 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %141, double %171, double* %4)
%173 = sitofp i32 %172 to double
%174 = load double, double* %4
%175 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %144, double %174, double* %4)
%176 = sitofp i32 %175 to double
%177 = load double, double* %4
%178 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %147, double %177, double* %4)
%179 = sitofp i32 %178 to double
%180 = load double, double* %4
%181 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %150, double %180, double* %4)
%182 = sitofp i32 %181 to double
%183 = load double, double* %4
%184 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %153, double %183, double* %4)
%185 = sitofp i32 %184 to double
%186 = load double, double* %4
%187 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %156, double %186, double* %4)
%188 = sitofp i32 %187 to double
%189 = load double, double* %4
%190 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %159, double %189, double* %4)
%191 = sitofp i32 %190 to double
%192 = load double, double* %4
%193 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %162, double %192, double* %4)
%194 = sitofp i32 %193 to double
%195 = load double, double* %4
%196 = call i32 (double, double, double*, ...) bitcast (i32 (...)* @dd_two_sum to i32 (double, double, double*, ...)*)(double %165, double %195, double* %4)
%197 = sitofp i32 %196 to double
%198 = load double, double* %4
%199 = fadd double %167, %198
%200 = getelementptr inbounds double, double* %2, i64 1
%201 = getelementptr inbounds double, double* %2, i64 2
%202 = getelementptr inbounds double, double* %2, i64 3
%203 = getelementptr inbounds double, double* %2, i64 4
%204 = getelementptr inbounds double, double* %2, i64 5
%205 = getelementptr inbounds double, double* %2, i64 6
%206 = getelementptr inbounds double, double* %2, i64 7
%207 = getelementptr inbounds double, double* %2, i64 8
%208 = getelementptr inbounds double, double* %2, i64 9
%209 = call i32 (double, double, double, double, double, double, double, double, double, double, double, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, ...) bitcast (i32 (...)* @da_fast_renorm to i32 (double, double, double, double, double, double, double, double, double, double, double, double*, double*, double*, double*, double*, double*, double*, double*, double*, double*, ...)*)(double %170, double %173, double %176, double %179, double %182, double %185, double %188, double %191, double %194, double %197, double %199, double* %2, double* %200, double* %201, double* %202, double* %203, double* %204, double* %205, double* %206, double* %207, double* %208)
ret void
}