void matmul_sub(double ablock[], double bblock[], double cblock[]) {
  cblock[(1 - 1) + 5 * (1 - 1)] =
      cblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(2 - 1) + 5 * (1 - 1)] =
      cblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(3 - 1) + 5 * (1 - 1)] =
      cblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(4 - 1) + 5 * (1 - 1)] =
      cblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(5 - 1) + 5 * (1 - 1)] =
      cblock[(5 - 1) + 5 * (1 - 1)] -
      ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (1 - 1)] -
      ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (1 - 1)] -
      ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (1 - 1)] -
      ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (1 - 1)] -
      ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (1 - 1)];
  cblock[(1 - 1) + 5 * (2 - 1)] =
      cblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(2 - 1) + 5 * (2 - 1)] =
      cblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(3 - 1) + 5 * (2 - 1)] =
      cblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(4 - 1) + 5 * (2 - 1)] =
      cblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(5 - 1) + 5 * (2 - 1)] =
      cblock[(5 - 1) + 5 * (2 - 1)] -
      ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (2 - 1)] -
      ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (2 - 1)] -
      ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (2 - 1)] -
      ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (2 - 1)] -
      ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (2 - 1)];
  cblock[(1 - 1) + 5 * (3 - 1)] =
      cblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(2 - 1) + 5 * (3 - 1)] =
      cblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(3 - 1) + 5 * (3 - 1)] =
      cblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(4 - 1) + 5 * (3 - 1)] =
      cblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(5 - 1) + 5 * (3 - 1)] =
      cblock[(5 - 1) + 5 * (3 - 1)] -
      ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (3 - 1)] -
      ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (3 - 1)] -
      ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (3 - 1)] -
      ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (3 - 1)] -
      ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (3 - 1)];
  cblock[(1 - 1) + 5 * (4 - 1)] =
      cblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(2 - 1) + 5 * (4 - 1)] =
      cblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(3 - 1) + 5 * (4 - 1)] =
      cblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(4 - 1) + 5 * (4 - 1)] =
      cblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(5 - 1) + 5 * (4 - 1)] =
      cblock[(5 - 1) + 5 * (4 - 1)] -
      ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (4 - 1)] -
      ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (4 - 1)] -
      ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (4 - 1)] -
      ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (4 - 1)] -
      ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (4 - 1)];
  cblock[(1 - 1) + 5 * (5 - 1)] =
      cblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(1 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(1 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(1 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(1 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(1 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(2 - 1) + 5 * (5 - 1)] =
      cblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(2 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(2 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(2 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(2 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(2 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(3 - 1) + 5 * (5 - 1)] =
      cblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(3 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(3 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(3 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(3 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(3 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(4 - 1) + 5 * (5 - 1)] =
      cblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(4 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(4 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(4 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(4 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(4 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  cblock[(5 - 1) + 5 * (5 - 1)] =
      cblock[(5 - 1) + 5 * (5 - 1)] -
      ablock[(5 - 1) + 5 * (1 - 1)] * bblock[(1 - 1) + 5 * (5 - 1)] -
      ablock[(5 - 1) + 5 * (2 - 1)] * bblock[(2 - 1) + 5 * (5 - 1)] -
      ablock[(5 - 1) + 5 * (3 - 1)] * bblock[(3 - 1) + 5 * (5 - 1)] -
      ablock[(5 - 1) + 5 * (4 - 1)] * bblock[(4 - 1) + 5 * (5 - 1)] -
      ablock[(5 - 1) + 5 * (5 - 1)] * bblock[(5 - 1) + 5 * (5 - 1)];
  return;
}


x86 assembly (clang, -O0):
<matmul_sub>:
push   %rbp
mov    %rsp,%rbp
mov    %rdi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,(%rax)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x8(%rax)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x10(%rax)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x20(%rax)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x28(%rax)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x30(%rax)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x40(%rax)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x48(%rax)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x50(%rax)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x60(%rax)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x68(%rax)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x70(%rax)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x98(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x78(%rax)
mov    -0x18(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x98(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x80(%rax)
mov    -0x18(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x98(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x88(%rax)
mov    -0x18(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x98(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x90(%rax)
mov    -0x18(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x80(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x88(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0x90(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0x98(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0x98(%rax)
mov    -0x18(%rbp),%rax
movsd  0xa0(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  (%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x28(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x50(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x78(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xb8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xa0(%rax)
mov    -0x18(%rbp),%rax
movsd  0xa8(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x30(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x58(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x80(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xb8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xa8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xa8(%rax)
mov    -0x18(%rbp),%rax
movsd  0xb0(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x10(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x38(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x60(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x88(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xb8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xb0(%rax)
mov    -0x18(%rbp),%rax
movsd  0xb8(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x18(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x40(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x68(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x90(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xb8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xb8(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xb8(%rax)
mov    -0x18(%rbp),%rax
movsd  0xc0(%rax),%xmm1
mov    -0x8(%rbp),%rax
movsd  0x20(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xa0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x48(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xa8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0x70(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xb0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x8(%rbp),%rax
movsd  0x98(%rax),%xmm1
mov    -0x10(%rbp),%rax
movsd  0xb8(%rax),%xmm2
movq   %xmm1,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm1
mulsd  %xmm2,%xmm1
addsd  %xmm0,%xmm1
mov    -0x8(%rbp),%rax
movsd  0xc0(%rax),%xmm0
mov    -0x10(%rbp),%rax
movsd  0xc0(%rax),%xmm2
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
mov    -0x18(%rbp),%rax
movsd  %xmm0,0xc0(%rax)
pop    %rbp
ret

x86 assembly (clang, -O2):
<matmul_sub>:
movsd  (%rdi),%xmm0
movsd  0x28(%rdi),%xmm1
mulsd  (%rsi),%xmm0
movsd  (%rdx),%xmm2
subsd  %xmm0,%xmm2
movsd  0x8(%rdx),%xmm0
mulsd  0x8(%rsi),%xmm1
subsd  %xmm1,%xmm2
movsd  0x50(%rdi),%xmm1
mulsd  0x10(%rsi),%xmm1
subsd  %xmm1,%xmm2
movsd  0x78(%rdi),%xmm1
mulsd  0x18(%rsi),%xmm1
subsd  %xmm1,%xmm2
movsd  0xa0(%rdi),%xmm1
mulsd  0x20(%rsi),%xmm1
subsd  %xmm1,%xmm2
movsd  %xmm2,(%rdx)
movsd  0x8(%rdi),%xmm1
mulsd  (%rsi),%xmm1
movsd  0x30(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x58(%rdi),%xmm1
mulsd  0x10(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x80(%rdi),%xmm1
mulsd  0x18(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa8(%rdi),%xmm1
mulsd  0x20(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x8(%rdx)
movsd  0x10(%rdx),%xmm0
movsd  0x10(%rdi),%xmm1
movsd  0x38(%rdi),%xmm2
mulsd  (%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x60(%rdi),%xmm1
mulsd  0x10(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x88(%rdi),%xmm1
mulsd  0x18(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb0(%rdi),%xmm1
mulsd  0x20(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x10(%rdx)
movsd  0x18(%rdx),%xmm0
movsd  0x18(%rdi),%xmm1
mulsd  (%rsi),%xmm1
movsd  0x40(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x68(%rdi),%xmm1
mulsd  0x10(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x90(%rdi),%xmm1
mulsd  0x18(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb8(%rdi),%xmm1
mulsd  0x20(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x18(%rdx)
movsd  0x20(%rdx),%xmm0
movsd  0x20(%rdi),%xmm1
movsd  0x48(%rdi),%xmm2
mulsd  (%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x70(%rdi),%xmm1
mulsd  0x10(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x98(%rdi),%xmm1
mulsd  0x18(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xc0(%rdi),%xmm1
mulsd  0x20(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x20(%rdx)
movsd  0x28(%rdx),%xmm0
movsd  (%rdi),%xmm1
mulsd  0x28(%rsi),%xmm1
movsd  0x28(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x30(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x50(%rdi),%xmm1
mulsd  0x38(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x78(%rdi),%xmm1
mulsd  0x40(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa0(%rdi),%xmm1
mulsd  0x48(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x28(%rdx)
movsd  0x30(%rdx),%xmm0
movsd  0x8(%rdi),%xmm1
movsd  0x30(%rdi),%xmm2
mulsd  0x28(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x30(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x58(%rdi),%xmm1
mulsd  0x38(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x80(%rdi),%xmm1
mulsd  0x40(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa8(%rdi),%xmm1
mulsd  0x48(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x30(%rdx)
movsd  0x38(%rdx),%xmm0
movsd  0x10(%rdi),%xmm1
mulsd  0x28(%rsi),%xmm1
movsd  0x38(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x30(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x60(%rdi),%xmm1
mulsd  0x38(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x88(%rdi),%xmm1
mulsd  0x40(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb0(%rdi),%xmm1
mulsd  0x48(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x38(%rdx)
movsd  0x40(%rdx),%xmm0
movsd  0x18(%rdi),%xmm1
movsd  0x40(%rdi),%xmm2
mulsd  0x28(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x30(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x68(%rdi),%xmm1
mulsd  0x38(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x90(%rdi),%xmm1
mulsd  0x40(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb8(%rdi),%xmm1
mulsd  0x48(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x40(%rdx)
movsd  0x48(%rdx),%xmm0
movsd  0x20(%rdi),%xmm1
mulsd  0x28(%rsi),%xmm1
movsd  0x48(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x30(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x70(%rdi),%xmm1
mulsd  0x38(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x98(%rdi),%xmm1
mulsd  0x40(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xc0(%rdi),%xmm1
mulsd  0x48(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x48(%rdx)
movsd  0x50(%rdx),%xmm0
movsd  (%rdi),%xmm1
movsd  0x28(%rdi),%xmm2
mulsd  0x50(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x58(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x50(%rdi),%xmm1
mulsd  0x60(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x78(%rdi),%xmm1
mulsd  0x68(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa0(%rdi),%xmm1
mulsd  0x70(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x50(%rdx)
movsd  0x58(%rdx),%xmm0
movsd  0x8(%rdi),%xmm1
mulsd  0x50(%rsi),%xmm1
movsd  0x30(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x58(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x58(%rdi),%xmm1
mulsd  0x60(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x80(%rdi),%xmm1
mulsd  0x68(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa8(%rdi),%xmm1
mulsd  0x70(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x58(%rdx)
movsd  0x60(%rdx),%xmm0
movsd  0x10(%rdi),%xmm1
movsd  0x38(%rdi),%xmm2
mulsd  0x50(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x58(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x60(%rdi),%xmm1
mulsd  0x60(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x88(%rdi),%xmm1
mulsd  0x68(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb0(%rdi),%xmm1
mulsd  0x70(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x60(%rdx)
movsd  0x68(%rdx),%xmm0
movsd  0x18(%rdi),%xmm1
mulsd  0x50(%rsi),%xmm1
movsd  0x40(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x58(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x68(%rdi),%xmm1
mulsd  0x60(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x90(%rdi),%xmm1
mulsd  0x68(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb8(%rdi),%xmm1
mulsd  0x70(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x68(%rdx)
movsd  0x70(%rdx),%xmm0
movsd  0x20(%rdi),%xmm1
movsd  0x48(%rdi),%xmm2
mulsd  0x50(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x58(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x70(%rdi),%xmm1
mulsd  0x60(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x98(%rdi),%xmm1
mulsd  0x68(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xc0(%rdi),%xmm1
mulsd  0x70(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x70(%rdx)
movsd  0x78(%rdx),%xmm0
movsd  (%rdi),%xmm1
mulsd  0x78(%rsi),%xmm1
movsd  0x28(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x80(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x50(%rdi),%xmm1
mulsd  0x88(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x78(%rdi),%xmm1
mulsd  0x90(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa0(%rdi),%xmm1
mulsd  0x98(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x78(%rdx)
movsd  0x80(%rdx),%xmm0
movsd  0x8(%rdi),%xmm1
movsd  0x30(%rdi),%xmm2
mulsd  0x78(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x80(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x58(%rdi),%xmm1
mulsd  0x88(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x80(%rdi),%xmm1
mulsd  0x90(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa8(%rdi),%xmm1
mulsd  0x98(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x80(%rdx)
movsd  0x88(%rdx),%xmm0
movsd  0x10(%rdi),%xmm1
mulsd  0x78(%rsi),%xmm1
movsd  0x38(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x80(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x60(%rdi),%xmm1
mulsd  0x88(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x88(%rdi),%xmm1
mulsd  0x90(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb0(%rdi),%xmm1
mulsd  0x98(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x88(%rdx)
movsd  0x90(%rdx),%xmm0
movsd  0x18(%rdi),%xmm1
movsd  0x40(%rdi),%xmm2
mulsd  0x78(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0x80(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x68(%rdi),%xmm1
mulsd  0x88(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x90(%rdi),%xmm1
mulsd  0x90(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb8(%rdi),%xmm1
mulsd  0x98(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x90(%rdx)
movsd  0x98(%rdx),%xmm0
movsd  0x20(%rdi),%xmm1
mulsd  0x78(%rsi),%xmm1
movsd  0x48(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0x80(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x70(%rdi),%xmm1
mulsd  0x88(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x98(%rdi),%xmm1
mulsd  0x90(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xc0(%rdi),%xmm1
mulsd  0x98(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0x98(%rdx)
movsd  0xa0(%rdx),%xmm0
movsd  (%rdi),%xmm1
movsd  0x28(%rdi),%xmm2
mulsd  0xa0(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0xa8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x50(%rdi),%xmm1
mulsd  0xb0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x78(%rdi),%xmm1
mulsd  0xb8(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa0(%rdi),%xmm1
mulsd  0xc0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0xa0(%rdx)
movsd  0xa8(%rdx),%xmm0
movsd  0x8(%rdi),%xmm1
mulsd  0xa0(%rsi),%xmm1
movsd  0x30(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0xa8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x58(%rdi),%xmm1
mulsd  0xb0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x80(%rdi),%xmm1
mulsd  0xb8(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xa8(%rdi),%xmm1
mulsd  0xc0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0xa8(%rdx)
movsd  0xb0(%rdx),%xmm0
movsd  0x10(%rdi),%xmm1
movsd  0x38(%rdi),%xmm2
mulsd  0xa0(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0xa8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x60(%rdi),%xmm1
mulsd  0xb0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x88(%rdi),%xmm1
mulsd  0xb8(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb0(%rdi),%xmm1
mulsd  0xc0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0xb0(%rdx)
movsd  0xb8(%rdx),%xmm0
movsd  0x18(%rdi),%xmm1
mulsd  0xa0(%rsi),%xmm1
movsd  0x40(%rdi),%xmm2
subsd  %xmm1,%xmm0
mulsd  0xa8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x68(%rdi),%xmm1
mulsd  0xb0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x90(%rdi),%xmm1
mulsd  0xb8(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xb8(%rdi),%xmm1
mulsd  0xc0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0xb8(%rdx)
movsd  0xc0(%rdx),%xmm0
movsd  0x20(%rdi),%xmm1
movsd  0x48(%rdi),%xmm2
mulsd  0xa0(%rsi),%xmm1
subsd  %xmm1,%xmm0
mulsd  0xa8(%rsi),%xmm2
subsd  %xmm2,%xmm0
movsd  0x70(%rdi),%xmm1
mulsd  0xb0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0x98(%rdi),%xmm1
mulsd  0xb8(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  0xc0(%rdi),%xmm1
mulsd  0xc0(%rsi),%xmm1
subsd  %xmm1,%xmm0
movsd  %xmm0,0xc0(%rdx)
ret

LLVM IR (-O0):
define void @matmul_sub(double* %0, double* %1, double* %2) {
%4 = alloca double*
%5 = alloca double*
%6 = alloca double*
store double* %0, double** %4
store double* %1, double** %5
store double* %2, double** %6
%7 = load double*, double** %6
%8 = getelementptr inbounds double, double* %7, i64 0
%9 = load double, double* %8
%10 = load double*, double** %4
%11 = getelementptr inbounds double, double* %10, i64 0
%12 = load double, double* %11
%13 = load double*, double** %5
%14 = getelementptr inbounds double, double* %13, i64 0
%15 = load double, double* %14
%16 = fneg double %12
%17 = call double @llvm.fmuladd.f64(double %16, double %15, double %9)
%18 = load double*, double** %4
%19 = getelementptr inbounds double, double* %18, i64 5
%20 = load double, double* %19
%21 = load double*, double** %5
%22 = getelementptr inbounds double, double* %21, i64 1
%23 = load double, double* %22
%24 = fneg double %20
%25 = call double @llvm.fmuladd.f64(double %24, double %23, double %17)
%26 = load double*, double** %4
%27 = getelementptr inbounds double, double* %26, i64 10
%28 = load double, double* %27
%29 = load double*, double** %5
%30 = getelementptr inbounds double, double* %29, i64 2
%31 = load double, double* %30
%32 = fneg double %28
%33 = call double @llvm.fmuladd.f64(double %32, double %31, double %25)
%34 = load double*, double** %4
%35 = getelementptr inbounds double, double* %34, i64 15
%36 = load double, double* %35
%37 = load double*, double** %5
%38 = getelementptr inbounds double, double* %37, i64 3
%39 = load double, double* %38
%40 = fneg double %36
%41 = call double @llvm.fmuladd.f64(double %40, double %39, double %33)
%42 = load double*, double** %4
%43 = getelementptr inbounds double, double* %42, i64 20
%44 = load double, double* %43
%45 = load double*, double** %5
%46 = getelementptr inbounds double, double* %45, i64 4
%47 = load double, double* %46
%48 = fneg double %44
%49 = call double @llvm.fmuladd.f64(double %48, double %47, double %41)
%50 = load double*, double** %6
%51 = getelementptr inbounds double, double* %50, i64 0
store double %49, double* %51
%52 = load double*, double** %6
%53 = getelementptr inbounds double, double* %52, i64 1
%54 = load double, double* %53
%55 = load double*, double** %4
%56 = getelementptr inbounds double, double* %55, i64 1
%57 = load double, double* %56
%58 = load double*, double** %5
%59 = getelementptr inbounds double, double* %58, i64 0
%60 = load double, double* %59
%61 = fneg double %57
%62 = call double @llvm.fmuladd.f64(double %61, double %60, double %54)
%63 = load double*, double** %4
%64 = getelementptr inbounds double, double* %63, i64 6
%65 = load double, double* %64
%66 = load double*, double** %5
%67 = getelementptr inbounds double, double* %66, i64 1
%68 = load double, double* %67
%69 = fneg double %65
%70 = call double @llvm.fmuladd.f64(double %69, double %68, double %62)
%71 = load double*, double** %4
%72 = getelementptr inbounds double, double* %71, i64 11
%73 = load double, double* %72
%74 = load double*, double** %5
%75 = getelementptr inbounds double, double* %74, i64 2
%76 = load double, double* %75
%77 = fneg double %73
%78 = call double @llvm.fmuladd.f64(double %77, double %76, double %70)
%79 = load double*, double** %4
%80 = getelementptr inbounds double, double* %79, i64 16
%81 = load double, double* %80
%82 = load double*, double** %5
%83 = getelementptr inbounds double, double* %82, i64 3
%84 = load double, double* %83
%85 = fneg double %81
%86 = call double @llvm.fmuladd.f64(double %85, double %84, double %78)
%87 = load double*, double** %4
%88 = getelementptr inbounds double, double* %87, i64 21
%89 = load double, double* %88
%90 = load double*, double** %5
%91 = getelementptr inbounds double, double* %90, i64 4
%92 = load double, double* %91
%93 = fneg double %89
%94 = call double @llvm.fmuladd.f64(double %93, double %92, double %86)
%95 = load double*, double** %6
%96 = getelementptr inbounds double, double* %95, i64 1
store double %94, double* %96
%97 = load double*, double** %6
%98 = getelementptr inbounds double, double* %97, i64 2
%99 = load double, double* %98
%100 = load double*, double** %4
%101 = getelementptr inbounds double, double* %100, i64 2
%102 = load double, double* %101
%103 = load double*, double** %5
%104 = getelementptr inbounds double, double* %103, i64 0
%105 = load double, double* %104
%106 = fneg double %102
%107 = call double @llvm.fmuladd.f64(double %106, double %105, double %99)
%108 = load double*, double** %4
%109 = getelementptr inbounds double, double* %108, i64 7
%110 = load double, double* %109
%111 = load double*, double** %5
%112 = getelementptr inbounds double, double* %111, i64 1
%113 = load double, double* %112
%114 = fneg double %110
%115 = call double @llvm.fmuladd.f64(double %114, double %113, double %107)
%116 = load double*, double** %4
%117 = getelementptr inbounds double, double* %116, i64 12
%118 = load double, double* %117
%119 = load double*, double** %5
%120 = getelementptr inbounds double, double* %119, i64 2
%121 = load double, double* %120
%122 = fneg double %118
%123 = call double @llvm.fmuladd.f64(double %122, double %121, double %115)
%124 = load double*, double** %4
%125 = getelementptr inbounds double, double* %124, i64 17
%126 = load double, double* %125
%127 = load double*, double** %5
%128 = getelementptr inbounds double, double* %127, i64 3
%129 = load double, double* %128
%130 = fneg double %126
%131 = call double @llvm.fmuladd.f64(double %130, double %129, double %123)
%132 = load double*, double** %4
%133 = getelementptr inbounds double, double* %132, i64 22
%134 = load double, double* %133
%135 = load double*, double** %5
%136 = getelementptr inbounds double, double* %135, i64 4
%137 = load double, double* %136
%138 = fneg double %134
%139 = call double @llvm.fmuladd.f64(double %138, double %137, double %131)
%140 = load double*, double** %6
%141 = getelementptr inbounds double, double* %140, i64 2
store double %139, double* %141
%142 = load double*, double** %6
%143 = getelementptr inbounds double, double* %142, i64 3
%144 = load double, double* %143
%145 = load double*, double** %4
%146 = getelementptr inbounds double, double* %145, i64 3
%147 = load double, double* %146
%148 = load double*, double** %5
%149 = getelementptr inbounds double, double* %148, i64 0
%150 = load double, double* %149
%151 = fneg double %147
%152 = call double @llvm.fmuladd.f64(double %151, double %150, double %144)
%153 = load double*, double** %4
%154 = getelementptr inbounds double, double* %153, i64 8
%155 = load double, double* %154
%156 = load double*, double** %5
%157 = getelementptr inbounds double, double* %156, i64 1
%158 = load double, double* %157
%159 = fneg double %155
%160 = call double @llvm.fmuladd.f64(double %159, double %158, double %152)
%161 = load double*, double** %4
%162 = getelementptr inbounds double, double* %161, i64 13
%163 = load double, double* %162
%164 = load double*, double** %5
%165 = getelementptr inbounds double, double* %164, i64 2
%166 = load double, double* %165
%167 = fneg double %163
%168 = call double @llvm.fmuladd.f64(double %167, double %166, double %160)
%169 = load double*, double** %4
%170 = getelementptr inbounds double, double* %169, i64 18
%171 = load double, double* %170
%172 = load double*, double** %5
%173 = getelementptr inbounds double, double* %172, i64 3
%174 = load double, double* %173
%175 = fneg double %171
%176 = call double @llvm.fmuladd.f64(double %175, double %174, double %168)
%177 = load double*, double** %4
%178 = getelementptr inbounds double, double* %177, i64 23
%179 = load double, double* %178
%180 = load double*, double** %5
%181 = getelementptr inbounds double, double* %180, i64 4
%182 = load double, double* %181
%183 = fneg double %179
%184 = call double @llvm.fmuladd.f64(double %183, double %182, double %176)
%185 = load double*, double** %6
%186 = getelementptr inbounds double, double* %185, i64 3
store double %184, double* %186
%187 = load double*, double** %6
%188 = getelementptr inbounds double, double* %187, i64 4
%189 = load double, double* %188
%190 = load double*, double** %4
%191 = getelementptr inbounds double, double* %190, i64 4
%192 = load double, double* %191
%193 = load double*, double** %5
%194 = getelementptr inbounds double, double* %193, i64 0
%195 = load double, double* %194
%196 = fneg double %192
%197 = call double @llvm.fmuladd.f64(double %196, double %195, double %189)
%198 = load double*, double** %4
%199 = getelementptr inbounds double, double* %198, i64 9
%200 = load double, double* %199
%201 = load double*, double** %5
%202 = getelementptr inbounds double, double* %201, i64 1
%203 = load double, double* %202
%204 = fneg double %200
%205 = call double @llvm.fmuladd.f64(double %204, double %203, double %197)
%206 = load double*, double** %4
%207 = getelementptr inbounds double, double* %206, i64 14
%208 = load double, double* %207
%209 = load double*, double** %5
%210 = getelementptr inbounds double, double* %209, i64 2
%211 = load double, double* %210
%212 = fneg double %208
%213 = call double @llvm.fmuladd.f64(double %212, double %211, double %205)
%214 = load double*, double** %4
%215 = getelementptr inbounds double, double* %214, i64 19
%216 = load double, double* %215
%217 = load double*, double** %5
%218 = getelementptr inbounds double, double* %217, i64 3
%219 = load double, double* %218
%220 = fneg double %216
%221 = call double @llvm.fmuladd.f64(double %220, double %219, double %213)
%222 = load double*, double** %4
%223 = getelementptr inbounds double, double* %222, i64 24
%224 = load double, double* %223
%225 = load double*, double** %5
%226 = getelementptr inbounds double, double* %225, i64 4
%227 = load double, double* %226
%228 = fneg double %224
%229 = call double @llvm.fmuladd.f64(double %228, double %227, double %221)
%230 = load double*, double** %6
%231 = getelementptr inbounds double, double* %230, i64 4
store double %229, double* %231
%232 = load double*, double** %6
%233 = getelementptr inbounds double, double* %232, i64 5
%234 = load double, double* %233
%235 = load double*, double** %4
%236 = getelementptr inbounds double, double* %235, i64 0
%237 = load double, double* %236
%238 = load double*, double** %5
%239 = getelementptr inbounds double, double* %238, i64 5
%240 = load double, double* %239
%241 = fneg double %237
%242 = call double @llvm.fmuladd.f64(double %241, double %240, double %234)
%243 = load double*, double** %4
%244 = getelementptr inbounds double, double* %243, i64 5
%245 = load double, double* %244
%246 = load double*, double** %5
%247 = getelementptr inbounds double, double* %246, i64 6
%248 = load double, double* %247
%249 = fneg double %245
%250 = call double @llvm.fmuladd.f64(double %249, double %248, double %242)
%251 = load double*, double** %4
%252 = getelementptr inbounds double, double* %251, i64 10
%253 = load double, double* %252
%254 = load double*, double** %5
%255 = getelementptr inbounds double, double* %254, i64 7
%256 = load double, double* %255
%257 = fneg double %253
%258 = call double @llvm.fmuladd.f64(double %257, double %256, double %250)
%259 = load double*, double** %4
%260 = getelementptr inbounds double, double* %259, i64 15
%261 = load double, double* %260
%262 = load double*, double** %5
%263 = getelementptr inbounds double, double* %262, i64 8
%264 = load double, double* %263
%265 = fneg double %261
%266 = call double @llvm.fmuladd.f64(double %265, double %264, double %258)
%267 = load double*, double** %4
%268 = getelementptr inbounds double, double* %267, i64 20
%269 = load double, double* %268
%270 = load double*, double** %5
%271 = getelementptr inbounds double, double* %270, i64 9
%272 = load double, double* %271
%273 = fneg double %269
%274 = call double @llvm.fmuladd.f64(double %273, double %272, double %266)
%275 = load double*, double** %6
%276 = getelementptr inbounds double, double* %275, i64 5
store double %274, double* %276
%277 = load double*, double** %6
%278 = getelementptr inbounds double, double* %277, i64 6
%279 = load double, double* %278
%280 = load double*, double** %4
%281 = getelementptr inbounds double, double* %280, i64 1
%282 = load double, double* %281
%283 = load double*, double** %5
%284 = getelementptr inbounds double, double* %283, i64 5
%285 = load double, double* %284
%286 = fneg double %282
%287 = call double @llvm.fmuladd.f64(double %286, double %285, double %279)
%288 = load double*, double** %4
%289 = getelementptr inbounds double, double* %288, i64 6
%290 = load double, double* %289
%291 = load double*, double** %5
%292 = getelementptr inbounds double, double* %291, i64 6
%293 = load double, double* %292
%294 = fneg double %290
%295 = call double @llvm.fmuladd.f64(double %294, double %293, double %287)
%296 = load double*, double** %4
%297 = getelementptr inbounds double, double* %296, i64 11
%298 = load double, double* %297
%299 = load double*, double** %5
%300 = getelementptr inbounds double, double* %299, i64 7
%301 = load double, double* %300
%302 = fneg double %298
%303 = call double @llvm.fmuladd.f64(double %302, double %301, double %295)
%304 = load double*, double** %4
%305 = getelementptr inbounds double, double* %304, i64 16
%306 = load double, double* %305
%307 = load double*, double** %5
%308 = getelementptr inbounds double, double* %307, i64 8
%309 = load double, double* %308
%310 = fneg double %306
%311 = call double @llvm.fmuladd.f64(double %310, double %309, double %303)
%312 = load double*, double** %4
%313 = getelementptr inbounds double, double* %312, i64 21
%314 = load double, double* %313
%315 = load double*, double** %5
%316 = getelementptr inbounds double, double* %315, i64 9
%317 = load double, double* %316
%318 = fneg double %314
%319 = call double @llvm.fmuladd.f64(double %318, double %317, double %311)
%320 = load double*, double** %6
%321 = getelementptr inbounds double, double* %320, i64 6
store double %319, double* %321
%322 = load double*, double** %6
%323 = getelementptr inbounds double, double* %322, i64 7
%324 = load double, double* %323
%325 = load double*, double** %4
%326 = getelementptr inbounds double, double* %325, i64 2
%327 = load double, double* %326
%328 = load double*, double** %5
%329 = getelementptr inbounds double, double* %328, i64 5
%330 = load double, double* %329
%331 = fneg double %327
%332 = call double @llvm.fmuladd.f64(double %331, double %330, double %324)
%333 = load double*, double** %4
%334 = getelementptr inbounds double, double* %333, i64 7
%335 = load double, double* %334
%336 = load double*, double** %5
%337 = getelementptr inbounds double, double* %336, i64 6
%338 = load double, double* %337
%339 = fneg double %335
%340 = call double @llvm.fmuladd.f64(double %339, double %338, double %332)
%341 = load double*, double** %4
%342 = getelementptr inbounds double, double* %341, i64 12
%343 = load double, double* %342
%344 = load double*, double** %5
%345 = getelementptr inbounds double, double* %344, i64 7
%346 = load double, double* %345
%347 = fneg double %343
%348 = call double @llvm.fmuladd.f64(double %347, double %346, double %340)
%349 = load double*, double** %4
%350 = getelementptr inbounds double, double* %349, i64 17
%351 = load double, double* %350
%352 = load double*, double** %5
%353 = getelementptr inbounds double, double* %352, i64 8
%354 = load double, double* %353
%355 = fneg double %351
%356 = call double @llvm.fmuladd.f64(double %355, double %354, double %348)
%357 = load double*, double** %4
%358 = getelementptr inbounds double, double* %357, i64 22
%359 = load double, double* %358
%360 = load double*, double** %5
%361 = getelementptr inbounds double, double* %360, i64 9
%362 = load double, double* %361
%363 = fneg double %359
%364 = call double @llvm.fmuladd.f64(double %363, double %362, double %356)
%365 = load double*, double** %6
%366 = getelementptr inbounds double, double* %365, i64 7
store double %364, double* %366
%367 = load double*, double** %6
%368 = getelementptr inbounds double, double* %367, i64 8
%369 = load double, double* %368
%370 = load double*, double** %4
%371 = getelementptr inbounds double, double* %370, i64 3
%372 = load double, double* %371
%373 = load double*, double** %5
%374 = getelementptr inbounds double, double* %373, i64 5
%375 = load double, double* %374
%376 = fneg double %372
%377 = call double @llvm.fmuladd.f64(double %376, double %375, double %369)
%378 = load double*, double** %4
%379 = getelementptr inbounds double, double* %378, i64 8
%380 = load double, double* %379
%381 = load double*, double** %5
%382 = getelementptr inbounds double, double* %381, i64 6
%383 = load double, double* %382
%384 = fneg double %380
%385 = call double @llvm.fmuladd.f64(double %384, double %383, double %377)
%386 = load double*, double** %4
%387 = getelementptr inbounds double, double* %386, i64 13
%388 = load double, double* %387
%389 = load double*, double** %5
%390 = getelementptr inbounds double, double* %389, i64 7
%391 = load double, double* %390
%392 = fneg double %388
%393 = call double @llvm.fmuladd.f64(double %392, double %391, double %385)
%394 = load double*, double** %4
%395 = getelementptr inbounds double, double* %394, i64 18
%396 = load double, double* %395
%397 = load double*, double** %5
%398 = getelementptr inbounds double, double* %397, i64 8
%399 = load double, double* %398
%400 = fneg double %396
%401 = call double @llvm.fmuladd.f64(double %400, double %399, double %393)
%402 = load double*, double** %4
%403 = getelementptr inbounds double, double* %402, i64 23
%404 = load double, double* %403
%405 = load double*, double** %5
%406 = getelementptr inbounds double, double* %405, i64 9
%407 = load double, double* %406
%408 = fneg double %404
%409 = call double @llvm.fmuladd.f64(double %408, double %407, double %401)
%410 = load double*, double** %6
%411 = getelementptr inbounds double, double* %410, i64 8
store double %409, double* %411
%412 = load double*, double** %6
%413 = getelementptr inbounds double, double* %412, i64 9
%414 = load double, double* %413
%415 = load double*, double** %4
%416 = getelementptr inbounds double, double* %415, i64 4
%417 = load double, double* %416
%418 = load double*, double** %5
%419 = getelementptr inbounds double, double* %418, i64 5
%420 = load double, double* %419
%421 = fneg double %417
%422 = call double @llvm.fmuladd.f64(double %421, double %420, double %414)
%423 = load double*, double** %4
%424 = getelementptr inbounds double, double* %423, i64 9
%425 = load double, double* %424
%426 = load double*, double** %5
%427 = getelementptr inbounds double, double* %426, i64 6
%428 = load double, double* %427
%429 = fneg double %425
%430 = call double @llvm.fmuladd.f64(double %429, double %428, double %422)
%431 = load double*, double** %4
%432 = getelementptr inbounds double, double* %431, i64 14
%433 = load double, double* %432
%434 = load double*, double** %5
%435 = getelementptr inbounds double, double* %434, i64 7
%436 = load double, double* %435
%437 = fneg double %433
%438 = call double @llvm.fmuladd.f64(double %437, double %436, double %430)
%439 = load double*, double** %4
%440 = getelementptr inbounds double, double* %439, i64 19
%441 = load double, double* %440
%442 = load double*, double** %5
%443 = getelementptr inbounds double, double* %442, i64 8
%444 = load double, double* %443
%445 = fneg double %441
%446 = call double @llvm.fmuladd.f64(double %445, double %444, double %438)
%447 = load double*, double** %4
%448 = getelementptr inbounds double, double* %447, i64 24
%449 = load double, double* %448
%450 = load double*, double** %5
%451 = getelementptr inbounds double, double* %450, i64 9
%452 = load double, double* %451
%453 = fneg double %449
%454 = call double @llvm.fmuladd.f64(double %453, double %452, double %446)
%455 = load double*, double** %6
%456 = getelementptr inbounds double, double* %455, i64 9
store double %454, double* %456
%457 = load double*, double** %6
%458 = getelementptr inbounds double, double* %457, i64 10
%459 = load double, double* %458
%460 = load double*, double** %4
%461 = getelementptr inbounds double, double* %460, i64 0
%462 = load double, double* %461
%463 = load double*, double** %5
%464 = getelementptr inbounds double, double* %463, i64 10
%465 = load double, double* %464
%466 = fneg double %462
%467 = call double @llvm.fmuladd.f64(double %466, double %465, double %459)
%468 = load double*, double** %4
%469 = getelementptr inbounds double, double* %468, i64 5
%470 = load double, double* %469
%471 = load double*, double** %5
%472 = getelementptr inbounds double, double* %471, i64 11
%473 = load double, double* %472
%474 = fneg double %470
%475 = call double @llvm.fmuladd.f64(double %474, double %473, double %467)
%476 = load double*, double** %4
%477 = getelementptr inbounds double, double* %476, i64 10
%478 = load double, double* %477
%479 = load double*, double** %5
%480 = getelementptr inbounds double, double* %479, i64 12
%481 = load double, double* %480
%482 = fneg double %478
%483 = call double @llvm.fmuladd.f64(double %482, double %481, double %475)
%484 = load double*, double** %4
%485 = getelementptr inbounds double, double* %484, i64 15
%486 = load double, double* %485
%487 = load double*, double** %5
%488 = getelementptr inbounds double, double* %487, i64 13
%489 = load double, double* %488
%490 = fneg double %486
%491 = call double @llvm.fmuladd.f64(double %490, double %489, double %483)
%492 = load double*, double** %4
%493 = getelementptr inbounds double, double* %492, i64 20
%494 = load double, double* %493
%495 = load double*, double** %5
%496 = getelementptr inbounds double, double* %495, i64 14
%497 = load double, double* %496
%498 = fneg double %494
%499 = call double @llvm.fmuladd.f64(double %498, double %497, double %491)
%500 = load double*, double** %6
%501 = getelementptr inbounds double, double* %500, i64 10
store double %499, double* %501
%502 = load double*, double** %6
%503 = getelementptr inbounds double, double* %502, i64 11
%504 = load double, double* %503
%505 = load double*, double** %4
%506 = getelementptr inbounds double, double* %505, i64 1
%507 = load double, double* %506
%508 = load double*, double** %5
%509 = getelementptr inbounds double, double* %508, i64 10
%510 = load double, double* %509
%511 = fneg double %507
%512 = call double @llvm.fmuladd.f64(double %511, double %510, double %504)
%513 = load double*, double** %4
%514 = getelementptr inbounds double, double* %513, i64 6
%515 = load double, double* %514
%516 = load double*, double** %5
%517 = getelementptr inbounds double, double* %516, i64 11
%518 = load double, double* %517
%519 = fneg double %515
%520 = call double @llvm.fmuladd.f64(double %519, double %518, double %512)
%521 = load double*, double** %4
%522 = getelementptr inbounds double, double* %521, i64 11
%523 = load double, double* %522
%524 = load double*, double** %5
%525 = getelementptr inbounds double, double* %524, i64 12
%526 = load double, double* %525
%527 = fneg double %523
%528 = call double @llvm.fmuladd.f64(double %527, double %526, double %520)
%529 = load double*, double** %4
%530 = getelementptr inbounds double, double* %529, i64 16
%531 = load double, double* %530
%532 = load double*, double** %5
%533 = getelementptr inbounds double, double* %532, i64 13
%534 = load double, double* %533
%535 = fneg double %531
%536 = call double @llvm.fmuladd.f64(double %535, double %534, double %528)
%537 = load double*, double** %4
%538 = getelementptr inbounds double, double* %537, i64 21
%539 = load double, double* %538
%540 = load double*, double** %5
%541 = getelementptr inbounds double, double* %540, i64 14
%542 = load double, double* %541
%543 = fneg double %539
%544 = call double @llvm.fmuladd.f64(double %543, double %542, double %536)
%545 = load double*, double** %6
%546 = getelementptr inbounds double, double* %545, i64 11
store double %544, double* %546
%547 = load double*, double** %6
%548 = getelementptr inbounds double, double* %547, i64 12
%549 = load double, double* %548
%550 = load double*, double** %4
%551 = getelementptr inbounds double, double* %550, i64 2
%552 = load double, double* %551
%553 = load double*, double** %5
%554 = getelementptr inbounds double, double* %553, i64 10
%555 = load double, double* %554
%556 = fneg double %552
%557 = call double @llvm.fmuladd.f64(double %556, double %555, double %549)
%558 = load double*, double** %4
%559 = getelementptr inbounds double, double* %558, i64 7
%560 = load double, double* %559
%561 = load double*, double** %5
%562 = getelementptr inbounds double, double* %561, i64 11
%563 = load double, double* %562
%564 = fneg double %560
%565 = call double @llvm.fmuladd.f64(double %564, double %563, double %557)
%566 = load double*, double** %4
%567 = getelementptr inbounds double, double* %566, i64 12
%568 = load double, double* %567
%569 = load double*, double** %5
%570 = getelementptr inbounds double, double* %569, i64 12
%571 = load double, double* %570
%572 = fneg double %568
%573 = call double @llvm.fmuladd.f64(double %572, double %571, double %565)
%574 = load double*, double** %4
%575 = getelementptr inbounds double, double* %574, i64 17
%576 = load double, double* %575
%577 = load double*, double** %5
%578 = getelementptr inbounds double, double* %577, i64 13
%579 = load double, double* %578
%580 = fneg double %576
%581 = call double @llvm.fmuladd.f64(double %580, double %579, double %573)
%582 = load double*, double** %4
%583 = getelementptr inbounds double, double* %582, i64 22
%584 = load double, double* %583
%585 = load double*, double** %5
%586 = getelementptr inbounds double, double* %585, i64 14
%587 = load double, double* %586
%588 = fneg double %584
%589 = call double @llvm.fmuladd.f64(double %588, double %587, double %581)
%590 = load double*, double** %6
%591 = getelementptr inbounds double, double* %590, i64 12
store double %589, double* %591
%592 = load double*, double** %6
%593 = getelementptr inbounds double, double* %592, i64 13
%594 = load double, double* %593
%595 = load double*, double** %4
%596 = getelementptr inbounds double, double* %595, i64 3
%597 = load double, double* %596
%598 = load double*, double** %5
%599 = getelementptr inbounds double, double* %598, i64 10
%600 = load double, double* %599
%601 = fneg double %597
%602 = call double @llvm.fmuladd.f64(double %601, double %600, double %594)
%603 = load double*, double** %4
%604 = getelementptr inbounds double, double* %603, i64 8
%605 = load double, double* %604
%606 = load double*, double** %5
%607 = getelementptr inbounds double, double* %606, i64 11
%608 = load double, double* %607
%609 = fneg double %605
%610 = call double @llvm.fmuladd.f64(double %609, double %608, double %602)
%611 = load double*, double** %4
%612 = getelementptr inbounds double, double* %611, i64 13
%613 = load double, double* %612
%614 = load double*, double** %5
%615 = getelementptr inbounds double, double* %614, i64 12
%616 = load double, double* %615
%617 = fneg double %613
%618 = call double @llvm.fmuladd.f64(double %617, double %616, double %610)
%619 = load double*, double** %4
%620 = getelementptr inbounds double, double* %619, i64 18
%621 = load double, double* %620
%622 = load double*, double** %5
%623 = getelementptr inbounds double, double* %622, i64 13
%624 = load double, double* %623
%625 = fneg double %621
%626 = call double @llvm.fmuladd.f64(double %625, double %624, double %618)
%627 = load double*, double** %4
%628 = getelementptr inbounds double, double* %627, i64 23
%629 = load double, double* %628
%630 = load double*, double** %5
%631 = getelementptr inbounds double, double* %630, i64 14
%632 = load double, double* %631
%633 = fneg double %629
%634 = call double @llvm.fmuladd.f64(double %633, double %632, double %626)
%635 = load double*, double** %6
%636 = getelementptr inbounds double, double* %635, i64 13
store double %634, double* %636
%637 = load double*, double** %6
%638 = getelementptr inbounds double, double* %637, i64 14
%639 = load double, double* %638
%640 = load double*, double** %4
%641 = getelementptr inbounds double, double* %640, i64 4
%642 = load double, double* %641
%643 = load double*, double** %5
%644 = getelementptr inbounds double, double* %643, i64 10
%645 = load double, double* %644
%646 = fneg double %642
%647 = call double @llvm.fmuladd.f64(double %646, double %645, double %639)
%648 = load double*, double** %4
%649 = getelementptr inbounds double, double* %648, i64 9
%650 = load double, double* %649
%651 = load double*, double** %5
%652 = getelementptr inbounds double, double* %651, i64 11
%653 = load double, double* %652
%654 = fneg double %650
%655 = call double @llvm.fmuladd.f64(double %654, double %653, double %647)
%656 = load double*, double** %4
%657 = getelementptr inbounds double, double* %656, i64 14
%658 = load double, double* %657
%659 = load double*, double** %5
%660 = getelementptr inbounds double, double* %659, i64 12
%661 = load double, double* %660
%662 = fneg double %658
%663 = call double @llvm.fmuladd.f64(double %662, double %661, double %655)
%664 = load double*, double** %4
%665 = getelementptr inbounds double, double* %664, i64 19
%666 = load double, double* %665
%667 = load double*, double** %5
%668 = getelementptr inbounds double, double* %667, i64 13
%669 = load double, double* %668
%670 = fneg double %666
%671 = call double @llvm.fmuladd.f64(double %670, double %669, double %663)
%672 = load double*, double** %4
%673 = getelementptr inbounds double, double* %672, i64 24
%674 = load double, double* %673
%675 = load double*, double** %5
%676 = getelementptr inbounds double, double* %675, i64 14
%677 = load double, double* %676
%678 = fneg double %674
%679 = call double @llvm.fmuladd.f64(double %678, double %677, double %671)
%680 = load double*, double** %6
%681 = getelementptr inbounds double, double* %680, i64 14
store double %679, double* %681
%682 = load double*, double** %6
%683 = getelementptr inbounds double, double* %682, i64 15
%684 = load double, double* %683
%685 = load double*, double** %4
%686 = getelementptr inbounds double, double* %685, i64 0
%687 = load double, double* %686
%688 = load double*, double** %5
%689 = getelementptr inbounds double, double* %688, i64 15
%690 = load double, double* %689
%691 = fneg double %687
%692 = call double @llvm.fmuladd.f64(double %691, double %690, double %684)
%693 = load double*, double** %4
%694 = getelementptr inbounds double, double* %693, i64 5
%695 = load double, double* %694
%696 = load double*, double** %5
%697 = getelementptr inbounds double, double* %696, i64 16
%698 = load double, double* %697
%699 = fneg double %695
%700 = call double @llvm.fmuladd.f64(double %699, double %698, double %692)
%701 = load double*, double** %4
%702 = getelementptr inbounds double, double* %701, i64 10
%703 = load double, double* %702
%704 = load double*, double** %5
%705 = getelementptr inbounds double, double* %704, i64 17
%706 = load double, double* %705
%707 = fneg double %703
%708 = call double @llvm.fmuladd.f64(double %707, double %706, double %700)
%709 = load double*, double** %4
%710 = getelementptr inbounds double, double* %709, i64 15
%711 = load double, double* %710
%712 = load double*, double** %5
%713 = getelementptr inbounds double, double* %712, i64 18
%714 = load double, double* %713
%715 = fneg double %711
%716 = call double @llvm.fmuladd.f64(double %715, double %714, double %708)
%717 = load double*, double** %4
%718 = getelementptr inbounds double, double* %717, i64 20
%719 = load double, double* %718
%720 = load double*, double** %5
%721 = getelementptr inbounds double, double* %720, i64 19
%722 = load double, double* %721
%723 = fneg double %719
%724 = call double @llvm.fmuladd.f64(double %723, double %722, double %716)
%725 = load double*, double** %6
%726 = getelementptr inbounds double, double* %725, i64 15
store double %724, double* %726
%727 = load double*, double** %6
%728 = getelementptr inbounds double, double* %727, i64 16
%729 = load double, double* %728
%730 = load double*, double** %4
%731 = getelementptr inbounds double, double* %730, i64 1
%732 = load double, double* %731
%733 = load double*, double** %5
%734 = getelementptr inbounds double, double* %733, i64 15
%735 = load double, double* %734
%736 = fneg double %732
%737 = call double @llvm.fmuladd.f64(double %736, double %735, double %729)
%738 = load double*, double** %4
%739 = getelementptr inbounds double, double* %738, i64 6
%740 = load double, double* %739
%741 = load double*, double** %5
%742 = getelementptr inbounds double, double* %741, i64 16
%743 = load double, double* %742
%744 = fneg double %740
%745 = call double @llvm.fmuladd.f64(double %744, double %743, double %737)
%746 = load double*, double** %4
%747 = getelementptr inbounds double, double* %746, i64 11
%748 = load double, double* %747
%749 = load double*, double** %5
%750 = getelementptr inbounds double, double* %749, i64 17
%751 = load double, double* %750
%752 = fneg double %748
%753 = call double @llvm.fmuladd.f64(double %752, double %751, double %745)
%754 = load double*, double** %4
%755 = getelementptr inbounds double, double* %754, i64 16
%756 = load double, double* %755
%757 = load double*, double** %5
%758 = getelementptr inbounds double, double* %757, i64 18
%759 = load double, double* %758
%760 = fneg double %756
%761 = call double @llvm.fmuladd.f64(double %760, double %759, double %753)
%762 = load double*, double** %4
%763 = getelementptr inbounds double, double* %762, i64 21
%764 = load double, double* %763
%765 = load double*, double** %5
%766 = getelementptr inbounds double, double* %765, i64 19
%767 = load double, double* %766
%768 = fneg double %764
%769 = call double @llvm.fmuladd.f64(double %768, double %767, double %761)
%770 = load double*, double** %6
%771 = getelementptr inbounds double, double* %770, i64 16
store double %769, double* %771
%772 = load double*, double** %6
%773 = getelementptr inbounds double, double* %772, i64 17
%774 = load double, double* %773
%775 = load double*, double** %4
%776 = getelementptr inbounds double, double* %775, i64 2
%777 = load double, double* %776
%778 = load double*, double** %5
%779 = getelementptr inbounds double, double* %778, i64 15
%780 = load double, double* %779
%781 = fneg double %777
%782 = call double @llvm.fmuladd.f64(double %781, double %780, double %774)
%783 = load double*, double** %4
%784 = getelementptr inbounds double, double* %783, i64 7
%785 = load double, double* %784
%786 = load double*, double** %5
%787 = getelementptr inbounds double, double* %786, i64 16
%788 = load double, double* %787
%789 = fneg double %785
%790 = call double @llvm.fmuladd.f64(double %789, double %788, double %782)
%791 = load double*, double** %4
%792 = getelementptr inbounds double, double* %791, i64 12
%793 = load double, double* %792
%794 = load double*, double** %5
%795 = getelementptr inbounds double, double* %794, i64 17
%796 = load double, double* %795
%797 = fneg double %793
%798 = call double @llvm.fmuladd.f64(double %797, double %796, double %790)
%799 = load double*, double** %4
%800 = getelementptr inbounds double, double* %799, i64 17
%801 = load double, double* %800
%802 = load double*, double** %5
%803 = getelementptr inbounds double, double* %802, i64 18
%804 = load double, double* %803
%805 = fneg double %801
%806 = call double @llvm.fmuladd.f64(double %805, double %804, double %798)
%807 = load double*, double** %4
%808 = getelementptr inbounds double, double* %807, i64 22
%809 = load double, double* %808
%810 = load double*, double** %5
%811 = getelementptr inbounds double, double* %810, i64 19
%812 = load double, double* %811
%813 = fneg double %809
%814 = call double @llvm.fmuladd.f64(double %813, double %812, double %806)
%815 = load double*, double** %6
%816 = getelementptr inbounds double, double* %815, i64 17
store double %814, double* %816
%817 = load double*, double** %6
%818 = getelementptr inbounds double, double* %817, i64 18
%819 = load double, double* %818
%820 = load double*, double** %4
%821 = getelementptr inbounds double, double* %820, i64 3
%822 = load double, double* %821
%823 = load double*, double** %5
%824 = getelementptr inbounds double, double* %823, i64 15
%825 = load double, double* %824
%826 = fneg double %822
%827 = call double @llvm.fmuladd.f64(double %826, double %825, double %819)
%828 = load double*, double** %4
%829 = getelementptr inbounds double, double* %828, i64 8
%830 = load double, double* %829
%831 = load double*, double** %5
%832 = getelementptr inbounds double, double* %831, i64 16
%833 = load double, double* %832
%834 = fneg double %830
%835 = call double @llvm.fmuladd.f64(double %834, double %833, double %827)
%836 = load double*, double** %4
%837 = getelementptr inbounds double, double* %836, i64 13
%838 = load double, double* %837
%839 = load double*, double** %5
%840 = getelementptr inbounds double, double* %839, i64 17
%841 = load double, double* %840
%842 = fneg double %838
%843 = call double @llvm.fmuladd.f64(double %842, double %841, double %835)
%844 = load double*, double** %4
%845 = getelementptr inbounds double, double* %844, i64 18
%846 = load double, double* %845
%847 = load double*, double** %5
%848 = getelementptr inbounds double, double* %847, i64 18
%849 = load double, double* %848
%850 = fneg double %846
%851 = call double @llvm.fmuladd.f64(double %850, double %849, double %843)
%852 = load double*, double** %4
%853 = getelementptr inbounds double, double* %852, i64 23
%854 = load double, double* %853
%855 = load double*, double** %5
%856 = getelementptr inbounds double, double* %855, i64 19
%857 = load double, double* %856
%858 = fneg double %854
%859 = call double @llvm.fmuladd.f64(double %858, double %857, double %851)
%860 = load double*, double** %6
%861 = getelementptr inbounds double, double* %860, i64 18
store double %859, double* %861
%862 = load double*, double** %6
%863 = getelementptr inbounds double, double* %862, i64 19
%864 = load double, double* %863
%865 = load double*, double** %4
%866 = getelementptr inbounds double, double* %865, i64 4
%867 = load double, double* %866
%868 = load double*, double** %5
%869 = getelementptr inbounds double, double* %868, i64 15
%870 = load double, double* %869
%871 = fneg double %867
%872 = call double @llvm.fmuladd.f64(double %871, double %870, double %864)
%873 = load double*, double** %4
%874 = getelementptr inbounds double, double* %873, i64 9
%875 = load double, double* %874
%876 = load double*, double** %5
%877 = getelementptr inbounds double, double* %876, i64 16
%878 = load double, double* %877
%879 = fneg double %875
%880 = call double @llvm.fmuladd.f64(double %879, double %878, double %872)
%881 = load double*, double** %4
%882 = getelementptr inbounds double, double* %881, i64 14
%883 = load double, double* %882
%884 = load double*, double** %5
%885 = getelementptr inbounds double, double* %884, i64 17
%886 = load double, double* %885
%887 = fneg double %883
%888 = call double @llvm.fmuladd.f64(double %887, double %886, double %880)
%889 = load double*, double** %4
%890 = getelementptr inbounds double, double* %889, i64 19
%891 = load double, double* %890
%892 = load double*, double** %5
%893 = getelementptr inbounds double, double* %892, i64 18
%894 = load double, double* %893
%895 = fneg double %891
%896 = call double @llvm.fmuladd.f64(double %895, double %894, double %888)
%897 = load double*, double** %4
%898 = getelementptr inbounds double, double* %897, i64 24
%899 = load double, double* %898
%900 = load double*, double** %5
%901 = getelementptr inbounds double, double* %900, i64 19
%902 = load double, double* %901
%903 = fneg double %899
%904 = call double @llvm.fmuladd.f64(double %903, double %902, double %896)
%905 = load double*, double** %6
%906 = getelementptr inbounds double, double* %905, i64 19
store double %904, double* %906
%907 = load double*, double** %6
%908 = getelementptr inbounds double, double* %907, i64 20
%909 = load double, double* %908
%910 = load double*, double** %4
%911 = getelementptr inbounds double, double* %910, i64 0
%912 = load double, double* %911
%913 = load double*, double** %5
%914 = getelementptr inbounds double, double* %913, i64 20
%915 = load double, double* %914
%916 = fneg double %912
%917 = call double @llvm.fmuladd.f64(double %916, double %915, double %909)
%918 = load double*, double** %4
%919 = getelementptr inbounds double, double* %918, i64 5
%920 = load double, double* %919
%921 = load double*, double** %5
%922 = getelementptr inbounds double, double* %921, i64 21
%923 = load double, double* %922
%924 = fneg double %920
%925 = call double @llvm.fmuladd.f64(double %924, double %923, double %917)
%926 = load double*, double** %4
%927 = getelementptr inbounds double, double* %926, i64 10
%928 = load double, double* %927
%929 = load double*, double** %5
%930 = getelementptr inbounds double, double* %929, i64 22
%931 = load double, double* %930
%932 = fneg double %928
%933 = call double @llvm.fmuladd.f64(double %932, double %931, double %925)
%934 = load double*, double** %4
%935 = getelementptr inbounds double, double* %934, i64 15
%936 = load double, double* %935
%937 = load double*, double** %5
%938 = getelementptr inbounds double, double* %937, i64 23
%939 = load double, double* %938
%940 = fneg double %936
%941 = call double @llvm.fmuladd.f64(double %940, double %939, double %933)
%942 = load double*, double** %4
%943 = getelementptr inbounds double, double* %942, i64 20
%944 = load double, double* %943
%945 = load double*, double** %5
%946 = getelementptr inbounds double, double* %945, i64 24
%947 = load double, double* %946
%948 = fneg double %944
%949 = call double @llvm.fmuladd.f64(double %948, double %947, double %941)
%950 = load double*, double** %6
%951 = getelementptr inbounds double, double* %950, i64 20
store double %949, double* %951
%952 = load double*, double** %6
%953 = getelementptr inbounds double, double* %952, i64 21
%954 = load double, double* %953
%955 = load double*, double** %4
%956 = getelementptr inbounds double, double* %955, i64 1
%957 = load double, double* %956
%958 = load double*, double** %5
%959 = getelementptr inbounds double, double* %958, i64 20
%960 = load double, double* %959
%961 = fneg double %957
%962 = call double @llvm.fmuladd.f64(double %961, double %960, double %954)
%963 = load double*, double** %4
%964 = getelementptr inbounds double, double* %963, i64 6
%965 = load double, double* %964
%966 = load double*, double** %5
%967 = getelementptr inbounds double, double* %966, i64 21
%968 = load double, double* %967
%969 = fneg double %965
%970 = call double @llvm.fmuladd.f64(double %969, double %968, double %962)
%971 = load double*, double** %4
%972 = getelementptr inbounds double, double* %971, i64 11
%973 = load double, double* %972
%974 = load double*, double** %5
%975 = getelementptr inbounds double, double* %974, i64 22
%976 = load double, double* %975
%977 = fneg double %973
%978 = call double @llvm.fmuladd.f64(double %977, double %976, double %970)
%979 = load double*, double** %4
%980 = getelementptr inbounds double, double* %979, i64 16
%981 = load double, double* %980
%982 = load double*, double** %5
%983 = getelementptr inbounds double, double* %982, i64 23
%984 = load double, double* %983
%985 = fneg double %981
%986 = call double @llvm.fmuladd.f64(double %985, double %984, double %978)
%987 = load double*, double** %4
%988 = getelementptr inbounds double, double* %987, i64 21
%989 = load double, double* %988
%990 = load double*, double** %5
%991 = getelementptr inbounds double, double* %990, i64 24
%992 = load double, double* %991
%993 = fneg double %989
%994 = call double @llvm.fmuladd.f64(double %993, double %992, double %986)
%995 = load double*, double** %6
%996 = getelementptr inbounds double, double* %995, i64 21
store double %994, double* %996
%997 = load double*, double** %6
%998 = getelementptr inbounds double, double* %997, i64 22
%999 = load double, double* %998
%1000 = load double*, double** %4
%1001 = getelementptr inbounds double, double* %1000, i64 2
%1002 = load double, double* %1001
%1003 = load double*, double** %5
%1004 = getelementptr inbounds double, double* %1003, i64 20
%1005 = load double, double* %1004
%1006 = fneg double %1002
%1007 = call double @llvm.fmuladd.f64(double %1006, double %1005, double %999)
%1008 = load double*, double** %4
%1009 = getelementptr inbounds double, double* %1008, i64 7
%1010 = load double, double* %1009
%1011 = load double*, double** %5
%1012 = getelementptr inbounds double, double* %1011, i64 21
%1013 = load double, double* %1012
%1014 = fneg double %1010
%1015 = call double @llvm.fmuladd.f64(double %1014, double %1013, double %1007)
%1016 = load double*, double** %4
%1017 = getelementptr inbounds double, double* %1016, i64 12
%1018 = load double, double* %1017
%1019 = load double*, double** %5
%1020 = getelementptr inbounds double, double* %1019, i64 22
%1021 = load double, double* %1020
%1022 = fneg double %1018
%1023 = call double @llvm.fmuladd.f64(double %1022, double %1021, double %1015)
%1024 = load double*, double** %4
%1025 = getelementptr inbounds double, double* %1024, i64 17
%1026 = load double, double* %1025
%1027 = load double*, double** %5
%1028 = getelementptr inbounds double, double* %1027, i64 23
%1029 = load double, double* %1028
%1030 = fneg double %1026
%1031 = call double @llvm.fmuladd.f64(double %1030, double %1029, double %1023)
%1032 = load double*, double** %4
%1033 = getelementptr inbounds double, double* %1032, i64 22
%1034 = load double, double* %1033
%1035 = load double*, double** %5
%1036 = getelementptr inbounds double, double* %1035, i64 24
%1037 = load double, double* %1036
%1038 = fneg double %1034
%1039 = call double @llvm.fmuladd.f64(double %1038, double %1037, double %1031)
%1040 = load double*, double** %6
%1041 = getelementptr inbounds double, double* %1040, i64 22
store double %1039, double* %1041
%1042 = load double*, double** %6
%1043 = getelementptr inbounds double, double* %1042, i64 23
%1044 = load double, double* %1043
%1045 = load double*, double** %4
%1046 = getelementptr inbounds double, double* %1045, i64 3
%1047 = load double, double* %1046
%1048 = load double*, double** %5
%1049 = getelementptr inbounds double, double* %1048, i64 20
%1050 = load double, double* %1049
%1051 = fneg double %1047
%1052 = call double @llvm.fmuladd.f64(double %1051, double %1050, double %1044)
%1053 = load double*, double** %4
%1054 = getelementptr inbounds double, double* %1053, i64 8
%1055 = load double, double* %1054
%1056 = load double*, double** %5
%1057 = getelementptr inbounds double, double* %1056, i64 21
%1058 = load double, double* %1057
%1059 = fneg double %1055
%1060 = call double @llvm.fmuladd.f64(double %1059, double %1058, double %1052)
%1061 = load double*, double** %4
%1062 = getelementptr inbounds double, double* %1061, i64 13
%1063 = load double, double* %1062
%1064 = load double*, double** %5
%1065 = getelementptr inbounds double, double* %1064, i64 22
%1066 = load double, double* %1065
%1067 = fneg double %1063
%1068 = call double @llvm.fmuladd.f64(double %1067, double %1066, double %1060)
%1069 = load double*, double** %4
%1070 = getelementptr inbounds double, double* %1069, i64 18
%1071 = load double, double* %1070
%1072 = load double*, double** %5
%1073 = getelementptr inbounds double, double* %1072, i64 23
%1074 = load double, double* %1073
%1075 = fneg double %1071
%1076 = call double @llvm.fmuladd.f64(double %1075, double %1074, double %1068)
%1077 = load double*, double** %4
%1078 = getelementptr inbounds double, double* %1077, i64 23
%1079 = load double, double* %1078
%1080 = load double*, double** %5
%1081 = getelementptr inbounds double, double* %1080, i64 24
%1082 = load double, double* %1081
%1083 = fneg double %1079
%1084 = call double @llvm.fmuladd.f64(double %1083, double %1082, double %1076)
%1085 = load double*, double** %6
%1086 = getelementptr inbounds double, double* %1085, i64 23
store double %1084, double* %1086
%1087 = load double*, double** %6
%1088 = getelementptr inbounds double, double* %1087, i64 24
%1089 = load double, double* %1088
%1090 = load double*, double** %4
%1091 = getelementptr inbounds double, double* %1090, i64 4
%1092 = load double, double* %1091
%1093 = load double*, double** %5
%1094 = getelementptr inbounds double, double* %1093, i64 20
%1095 = load double, double* %1094
%1096 = fneg double %1092
%1097 = call double @llvm.fmuladd.f64(double %1096, double %1095, double %1089)
%1098 = load double*, double** %4
%1099 = getelementptr inbounds double, double* %1098, i64 9
%1100 = load double, double* %1099
%1101 = load double*, double** %5
%1102 = getelementptr inbounds double, double* %1101, i64 21
%1103 = load double, double* %1102
%1104 = fneg double %1100
%1105 = call double @llvm.fmuladd.f64(double %1104, double %1103, double %1097)
%1106 = load double*, double** %4
%1107 = getelementptr inbounds double, double* %1106, i64 14
%1108 = load double, double* %1107
%1109 = load double*, double** %5
%1110 = getelementptr inbounds double, double* %1109, i64 22
%1111 = load double, double* %1110
%1112 = fneg double %1108
%1113 = call double @llvm.fmuladd.f64(double %1112, double %1111, double %1105)
%1114 = load double*, double** %4
%1115 = getelementptr inbounds double, double* %1114, i64 19
%1116 = load double, double* %1115
%1117 = load double*, double** %5
%1118 = getelementptr inbounds double, double* %1117, i64 23
%1119 = load double, double* %1118
%1120 = fneg double %1116
%1121 = call double @llvm.fmuladd.f64(double %1120, double %1119, double %1113)
%1122 = load double*, double** %4
%1123 = getelementptr inbounds double, double* %1122, i64 24
%1124 = load double, double* %1123
%1125 = load double*, double** %5
%1126 = getelementptr inbounds double, double* %1125, i64 24
%1127 = load double, double* %1126
%1128 = fneg double %1124
%1129 = call double @llvm.fmuladd.f64(double %1128, double %1127, double %1121)
%1130 = load double*, double** %6
%1131 = getelementptr inbounds double, double* %1130, i64 24
store double %1129, double* %1131
ret void
}

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