void kernel_dttmm_ll_nt_4x4_lib4(int kmax, double *A, double *B, double *C) {
  const int bs = 4;
  int k = 0;
  double a_0, a_1, a_2, a_3, b_0, b_1, b_2, b_3,
      c_00 = 0, c_01 = 0, c_02 = 0, c_03 = 0, c_10 = 0, c_11 = 0, c_12 = 0,
      c_13 = 0, c_20 = 0, c_21 = 0, c_22 = 0, c_23 = 0, c_30 = 0, c_31 = 0,
      c_32 = 0, c_33 = 0;
  a_0 = A[0 + bs * 0];
  a_1 = A[1 + bs * 0];
  a_2 = A[2 + bs * 0];
  a_3 = A[3 + bs * 0];
  b_0 = B[0 + bs * 0];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  a_0 = A[0 + bs * 1];
  a_1 = A[1 + bs * 1];
  a_2 = A[2 + bs * 1];
  a_3 = A[3 + bs * 1];
  b_0 = B[0 + bs * 1];
  b_1 = B[1 + bs * 1];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  a_0 = A[0 + bs * 2];
  a_1 = A[1 + bs * 2];
  a_2 = A[2 + bs * 2];
  a_3 = A[3 + bs * 2];
  b_0 = B[0 + bs * 2];
  b_1 = B[1 + bs * 2];
  b_2 = B[2 + bs * 2];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  a_0 = A[0 + bs * 3];
  a_1 = A[1 + bs * 3];
  a_2 = A[2 + bs * 3];
  a_3 = A[3 + bs * 3];
  b_0 = B[0 + bs * 3];
  b_1 = B[1 + bs * 3];
  b_2 = B[2 + bs * 3];
  b_3 = B[3 + bs * 3];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  c_23 += a_2 * b_3;
  c_33 += a_3 * b_3;
  A += 4 * bs;
  B += 4 * bs;
  k = 4;
  for (; k < kmax - 4; k += 4) {
    a_0 = A[0 + bs * 0];
    a_1 = A[1 + bs * 0];
    a_2 = A[2 + bs * 0];
    a_3 = A[3 + bs * 0];
    b_0 = B[0 + bs * 0];
    b_1 = B[1 + bs * 0];
    b_2 = B[2 + bs * 0];
    b_3 = B[3 + bs * 0];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + bs * 1];
    a_1 = A[1 + bs * 1];
    a_2 = A[2 + bs * 1];
    a_3 = A[3 + bs * 1];
    b_0 = B[0 + bs * 1];
    b_1 = B[1 + bs * 1];
    b_2 = B[2 + bs * 1];
    b_3 = B[3 + bs * 1];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + bs * 2];
    a_1 = A[1 + bs * 2];
    a_2 = A[2 + bs * 2];
    a_3 = A[3 + bs * 2];
    b_0 = B[0 + bs * 2];
    b_1 = B[1 + bs * 2];
    b_2 = B[2 + bs * 2];
    b_3 = B[3 + bs * 2];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    a_0 = A[0 + bs * 3];
    a_1 = A[1 + bs * 3];
    a_2 = A[2 + bs * 3];
    a_3 = A[3 + bs * 3];
    b_0 = B[0 + bs * 3];
    b_1 = B[1 + bs * 3];
    b_2 = B[2 + bs * 3];
    b_3 = B[3 + bs * 3];
    c_00 += a_0 * b_0;
    c_10 += a_1 * b_0;
    c_20 += a_2 * b_0;
    c_30 += a_3 * b_0;
    c_01 += a_0 * b_1;
    c_11 += a_1 * b_1;
    c_21 += a_2 * b_1;
    c_31 += a_3 * b_1;
    c_02 += a_0 * b_2;
    c_12 += a_1 * b_2;
    c_22 += a_2 * b_2;
    c_32 += a_3 * b_2;
    c_03 += a_0 * b_3;
    c_13 += a_1 * b_3;
    c_23 += a_2 * b_3;
    c_33 += a_3 * b_3;
    A += 4 * bs;
    B += 4 * bs;
  }
  a_0 = A[0 + bs * 0];
  a_1 = A[1 + bs * 0];
  a_2 = A[2 + bs * 0];
  a_3 = A[3 + bs * 0];
  b_0 = B[0 + bs * 0];
  b_1 = B[1 + bs * 0];
  b_2 = B[2 + bs * 0];
  b_3 = B[3 + bs * 0];
  c_00 += a_0 * b_0;
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  c_23 += a_2 * b_3;
  c_33 += a_3 * b_3;
  a_1 = A[1 + bs * 1];
  a_2 = A[2 + bs * 1];
  a_3 = A[3 + bs * 1];
  b_0 = B[0 + bs * 1];
  b_1 = B[1 + bs * 1];
  b_2 = B[2 + bs * 1];
  b_3 = B[3 + bs * 1];
  c_10 += a_1 * b_0;
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  c_13 += a_1 * b_3;
  c_23 += a_2 * b_3;
  c_33 += a_3 * b_3;
  a_2 = A[2 + bs * 2];
  a_3 = A[3 + bs * 2];
  b_0 = B[0 + bs * 2];
  b_1 = B[1 + bs * 2];
  b_2 = B[2 + bs * 2];
  b_3 = B[3 + bs * 2];
  c_20 += a_2 * b_0;
  c_30 += a_3 * b_0;
  c_21 += a_2 * b_1;
  c_31 += a_3 * b_1;
  c_22 += a_2 * b_2;
  c_32 += a_3 * b_2;
  c_23 += a_2 * b_3;
  c_33 += a_3 * b_3;
  a_3 = A[3 + bs * 3];
  b_0 = B[0 + bs * 3];
  b_1 = B[1 + bs * 3];
  b_2 = B[2 + bs * 3];
  b_3 = B[3 + bs * 3];
  c_30 += a_3 * b_0;
  c_31 += a_3 * b_1;
  c_32 += a_3 * b_2;
  c_33 += a_3 * b_3;
  C[0 + bs * 0] = c_00;
  C[1 + bs * 0] = c_10;
  C[2 + bs * 0] = c_20;
  C[3 + bs * 0] = c_30;
  C[0 + bs * 1] = c_01;
  C[1 + bs * 1] = c_11;
  C[2 + bs * 1] = c_21;
  C[3 + bs * 1] = c_31;
  C[0 + bs * 2] = c_02;
  C[1 + bs * 2] = c_12;
  C[2 + bs * 2] = c_22;
  C[3 + bs * 2] = c_32;
  C[0 + bs * 3] = c_03;
  C[1 + bs * 3] = c_13;
  C[2 + bs * 3] = c_23;
  C[3 + bs * 3] = c_33;
}


x86 assembly (clang, -O0):
<kernel_dttmm_ll_nt_4x4_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0x68,%rsp
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %rcx,-0x20(%rbp)
movl   $0x4,-0x24(%rbp)
movl   $0x0,-0x28(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x18(%rbp)
movl   $0x4,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x4,%ecx
cmp    %ecx,%eax
jge    22a4 <kernel_dttmm_ll_nt_4x4_lib4+0x11a4>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x18(%rbp)
mov    -0x28(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x28(%rbp)
jmp    1873 <kernel_dttmm_ll_nt_4x4_lib4+0x773>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xd0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
movsd  -0x78(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x38(%rax)
movsd  -0x80(%rbp),%xmm0
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0xe0(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x58(%rax)
movsd  -0x88(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    -0x20(%rbp),%rax
movsd  %xmm0,0x78(%rax)
add    $0x68,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dttmm_ll_nt_4x4_lib4>:
sub    $0x28,%rsp
movsd  (%rdx),%xmm0
movsd  0x20(%rdx),%xmm4
movsd  (%rsi),%xmm2
mulsd  %xmm0,%xmm2
xorpd  %xmm1,%xmm1
addsd  %xmm1,%xmm2
movsd  0x8(%rsi),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm1,%xmm6
movsd  0x10(%rsi),%xmm7
mulsd  %xmm0,%xmm7
addsd  %xmm1,%xmm7
mulsd  0x18(%rsi),%xmm0
addsd  %xmm1,%xmm0
movsd  0x20(%rsi),%xmm5
movsd  0x28(%rsi),%xmm1
movsd  0x30(%rsi),%xmm8
movsd  0x38(%rsi),%xmm10
movsd  0x28(%rdx),%xmm3
movapd %xmm5,%xmm12
mulsd  %xmm4,%xmm12
addsd  %xmm2,%xmm12
movapd %xmm1,%xmm2
mulsd  %xmm4,%xmm2
addsd  %xmm6,%xmm2
movapd %xmm8,%xmm15
mulsd  %xmm4,%xmm15
addsd  %xmm7,%xmm15
mulsd  %xmm10,%xmm4
addsd  %xmm0,%xmm4
mulsd  %xmm3,%xmm5
xorpd  %xmm0,%xmm0
addsd  %xmm0,%xmm5
mulsd  %xmm3,%xmm1
addsd  %xmm0,%xmm1
mulsd  %xmm3,%xmm8
addsd  %xmm0,%xmm8
mulsd  %xmm3,%xmm10
addsd  %xmm0,%xmm10
movsd  0x40(%rsi),%xmm14
movsd  0x48(%rsi),%xmm9
movsd  0x50(%rsi),%xmm3
movsd  0x58(%rsi),%xmm11
movsd  %xmm11,-0x50(%rsp)
movsd  0x40(%rdx),%xmm6
movsd  0x48(%rdx),%xmm7
movapd %xmm14,%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm12,%xmm0
movapd %xmm9,%xmm12
mulsd  %xmm6,%xmm12
addsd  %xmm2,%xmm12
movapd %xmm3,%xmm13
mulsd  %xmm6,%xmm13
addsd  %xmm15,%xmm13
movsd  0x50(%rdx),%xmm2
mulsd  %xmm11,%xmm6
addsd  %xmm4,%xmm6
movapd %xmm14,%xmm15
mulsd  %xmm7,%xmm15
addsd  %xmm5,%xmm15
movapd %xmm9,%xmm11
mulsd  %xmm7,%xmm11
addsd  %xmm1,%xmm11
movapd %xmm3,%xmm1
movapd %xmm3,%xmm5
mulsd  %xmm7,%xmm5
addsd  %xmm8,%xmm5
movsd  -0x50(%rsp),%xmm3
mulsd  %xmm3,%xmm7
addsd  %xmm10,%xmm7
mulsd  %xmm2,%xmm14
mulsd  %xmm2,%xmm9
mulsd  %xmm2,%xmm1
movsd  %xmm1,-0x70(%rsp)
mulsd  %xmm2,%xmm3
movapd %xmm3,%xmm10
movsd  0x60(%rsi),%xmm2
movsd  0x60(%rdx),%xmm3
movapd %xmm2,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm0,%xmm1
movapd %xmm1,-0x50(%rsp)
movsd  0x68(%rsi),%xmm1
movapd %xmm1,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm12,%xmm0
movsd  %xmm0,-0x78(%rsp)
movsd  0x70(%rsi),%xmm8
movapd %xmm8,%xmm0
mulsd  %xmm3,%xmm0
addsd  %xmm13,%xmm0
movapd %xmm0,0x10(%rsp)
movsd  0x78(%rsi),%xmm4
mulsd  %xmm4,%xmm3
addsd  %xmm6,%xmm3
movsd  %xmm3,-0x58(%rsp)
movsd  0x68(%rdx),%xmm13
movapd %xmm2,%xmm0
mulsd  %xmm13,%xmm0
addsd  %xmm15,%xmm0
movapd %xmm0,-0x10(%rsp)
movapd %xmm2,%xmm6
movapd %xmm1,%xmm0
mulsd  %xmm13,%xmm0
addsd  %xmm11,%xmm0
movsd  %xmm0,-0x60(%rsp)
movapd %xmm8,%xmm12
mulsd  %xmm13,%xmm12
addsd  %xmm5,%xmm12
mulsd  %xmm4,%xmm13
addsd  %xmm7,%xmm13
xorpd  %xmm5,%xmm5
addsd  %xmm5,%xmm14
movsd  0x70(%rdx),%xmm0
movapd %xmm2,%xmm7
mulsd  %xmm0,%xmm7
addsd  %xmm14,%xmm7
addsd  %xmm5,%xmm9
movapd %xmm1,%xmm2
mulsd  %xmm0,%xmm2
addsd  %xmm9,%xmm2
movsd  %xmm2,-0x68(%rsp)
movapd %xmm6,%xmm2
movapd %xmm0,%xmm9
movapd %xmm1,%xmm0
movapd %xmm4,%xmm6
movsd  -0x70(%rsp),%xmm4
addsd  %xmm5,%xmm4
xorpd  %xmm3,%xmm3
movapd %xmm8,%xmm15
mulsd  %xmm9,%xmm15
addsd  %xmm4,%xmm15
movapd %xmm10,%xmm5
addsd  %xmm3,%xmm5
mulsd  %xmm6,%xmm9
addsd  %xmm5,%xmm9
movsd  0x78(%rdx),%xmm3
mulsd  %xmm3,%xmm2
mulsd  %xmm3,%xmm0
mulsd  %xmm3,%xmm8
mulsd  %xmm3,%xmm6
xorpd  %xmm3,%xmm3
addsd  %xmm3,%xmm2
addsd  %xmm3,%xmm0
movsd  %xmm0,-0x70(%rsp)
addsd  %xmm3,%xmm8
movapd %xmm8,-0x20(%rsp)
addsd  %xmm3,%xmm6
lea    0x80(%rsi),%r8
lea    0x80(%rdx),%rax
cmp    $0x9,%edi
jl     192f <kernel_dttmm_ll_nt_4x4_lib4+0x82f>
add    $0xfffffffc,%edi
mov    $0x4,%edx
movapd -0x50(%rsp),%xmm5
movapd %xmm13,%xmm14
movapd %xmm15,%xmm11
movapd 0x10(%rsp),%xmm15
movapd %xmm12,%xmm8
movapd %xmm7,%xmm4
movsd  -0x58(%rsp),%xmm0
movsd  -0x78(%rsp),%xmm1
movapd %xmm2,%xmm13
movsd  -0x60(%rsp),%xmm2
movsd  -0x68(%rsp),%xmm7
nopw   0x0(%rax,%rax,1)
movsd  %xmm6,0x8(%rsp)
movsd  (%r8),%xmm12
movsd  (%rax),%xmm3
movapd %xmm12,%xmm6
mulsd  %xmm3,%xmm6
addsd  %xmm5,%xmm6
movsd  0x8(%r8),%xmm10
movapd %xmm10,%xmm5
mulsd  %xmm3,%xmm5
addsd  %xmm1,%xmm5
movsd  %xmm5,-0x50(%rsp)
movsd  0x10(%r8),%xmm5
movapd %xmm5,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm15,%xmm1
movsd  %xmm1,-0x30(%rsp)
movsd  0x18(%r8),%xmm15
mulsd  %xmm15,%xmm3
addsd  %xmm0,%xmm3
movsd  0x8(%rax),%xmm1
movapd %xmm12,%xmm0
mulsd  %xmm1,%xmm0
addsd  -0x10(%rsp),%xmm0
movsd  %xmm0,-0x40(%rsp)
movapd %xmm10,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm2,%xmm0
movsd  %xmm0,-0x78(%rsp)
movapd %xmm5,%xmm0
mulsd  %xmm1,%xmm0
addsd  %xmm8,%xmm0
movsd  %xmm0,-0x60(%rsp)
mulsd  %xmm15,%xmm1
addsd  %xmm14,%xmm1
movsd  0x10(%rax),%xmm2
movapd %xmm12,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm4,%xmm0
movsd  %xmm0,-0x68(%rsp)
movapd %xmm10,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm7,%xmm0
movsd  %xmm0,0x10(%rsp)
movapd %xmm5,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm11,%xmm0
movsd  %xmm0,-0x58(%rsp)
mulsd  %xmm15,%xmm2
addsd  %xmm9,%xmm2
movsd  0x18(%rax),%xmm0
mulsd  %xmm0,%xmm12
addsd  %xmm13,%xmm12
movapd %xmm12,%xmm9
mulsd  %xmm0,%xmm10
addsd  -0x70(%rsp),%xmm10
mulsd  %xmm0,%xmm5
addsd  -0x20(%rsp),%xmm5
movsd  %xmm5,-0x10(%rsp)
mulsd  %xmm0,%xmm15
addsd  0x8(%rsp),%xmm15
movsd  0x20(%r8),%xmm14
movsd  0x20(%rax),%xmm0
movapd %xmm14,%xmm4
mulsd  %xmm0,%xmm4
addsd  %xmm6,%xmm4
movapd %xmm4,%xmm6
movsd  0x28(%r8),%xmm12
movapd %xmm12,%xmm8
mulsd  %xmm0,%xmm8
addsd  -0x50(%rsp),%xmm8
movsd  0x30(%r8),%xmm13
movapd %xmm13,%xmm7
mulsd  %xmm0,%xmm7
addsd  -0x30(%rsp),%xmm7
movsd  0x38(%r8),%xmm11
mulsd  %xmm11,%xmm0
addsd  %xmm3,%xmm0
movsd  0x28(%rax),%xmm4
movapd %xmm14,%xmm3
mulsd  %xmm4,%xmm3
addsd  -0x40(%rsp),%xmm3
movsd  %xmm3,-0x70(%rsp)
movapd %xmm12,%xmm3
mulsd  %xmm4,%xmm3
addsd  -0x78(%rsp),%xmm3
movsd  %xmm3,0x8(%rsp)
movapd %xmm13,%xmm3
mulsd  %xmm4,%xmm3
addsd  -0x60(%rsp),%xmm3
movsd  %xmm3,-0x20(%rsp)
mulsd  %xmm11,%xmm4
addsd  %xmm1,%xmm4
movsd  0x30(%rax),%xmm5
movapd %xmm14,%xmm1
mulsd  %xmm5,%xmm1
addsd  -0x68(%rsp),%xmm1
movsd  %xmm1,-0x30(%rsp)
movapd %xmm12,%xmm1
mulsd  %xmm5,%xmm1
addsd  0x10(%rsp),%xmm1
movsd  %xmm1,-0x40(%rsp)
movapd %xmm13,%xmm1
mulsd  %xmm5,%xmm1
addsd  -0x58(%rsp),%xmm1
movsd  %xmm1,-0x78(%rsp)
mulsd  %xmm11,%xmm5
addsd  %xmm2,%xmm5
movsd  0x38(%rax),%xmm1
mulsd  %xmm1,%xmm14
addsd  %xmm9,%xmm14
movsd  %xmm14,-0x50(%rsp)
mulsd  %xmm1,%xmm12
addsd  %xmm10,%xmm12
mulsd  %xmm1,%xmm13
addsd  -0x10(%rsp),%xmm13
mulsd  %xmm1,%xmm11
addsd  %xmm15,%xmm11
movsd  0x40(%r8),%xmm10
movsd  0x40(%rax),%xmm3
movapd %xmm10,%xmm15
mulsd  %xmm3,%xmm15
addsd  %xmm6,%xmm15
movsd  0x48(%r8),%xmm6
movapd %xmm6,%xmm1
mulsd  %xmm3,%xmm1
addsd  %xmm8,%xmm1
movsd  %xmm1,-0x10(%rsp)
movsd  0x50(%r8),%xmm14
movapd %xmm14,%xmm9
mulsd  %xmm3,%xmm9
addsd  %xmm7,%xmm9
movsd  0x58(%r8),%xmm1
mulsd  %xmm1,%xmm3
addsd  %xmm0,%xmm3
movsd  0x48(%rax),%xmm7
movapd %xmm10,%xmm0
movapd %xmm10,%xmm8
mulsd  %xmm7,%xmm8
addsd  -0x70(%rsp),%xmm8
movapd %xmm6,%xmm2
mulsd  %xmm7,%xmm2
addsd  0x8(%rsp),%xmm2
movsd  %xmm2,-0x60(%rsp)
movapd %xmm14,%xmm2
mulsd  %xmm7,%xmm2
addsd  -0x20(%rsp),%xmm2
movsd  %xmm2,-0x68(%rsp)
mulsd  %xmm1,%xmm7
addsd  %xmm4,%xmm7
movsd  0x50(%rax),%xmm10
movapd %xmm0,%xmm2
mulsd  %xmm10,%xmm2
addsd  -0x30(%rsp),%xmm2
movsd  %xmm2,0x10(%rsp)
movapd %xmm6,%xmm2
mulsd  %xmm10,%xmm2
addsd  -0x40(%rsp),%xmm2
movsd  %xmm2,-0x58(%rsp)
movapd %xmm14,%xmm2
mulsd  %xmm10,%xmm2
addsd  -0x78(%rsp),%xmm2
movsd  %xmm2,-0x78(%rsp)
mulsd  %xmm1,%xmm10
addsd  %xmm5,%xmm10
movsd  0x58(%rax),%xmm5
mulsd  %xmm5,%xmm0
addsd  -0x50(%rsp),%xmm0
movsd  %xmm0,-0x70(%rsp)
mulsd  %xmm5,%xmm6
addsd  %xmm12,%xmm6
movsd  %xmm6,-0x20(%rsp)
mulsd  %xmm5,%xmm14
addsd  %xmm13,%xmm14
movsd  %xmm14,-0x30(%rsp)
mulsd  %xmm5,%xmm1
addsd  %xmm11,%xmm1
movsd  %xmm1,-0x40(%rsp)
movsd  0x60(%r8),%xmm13
movsd  0x60(%rax),%xmm6
movapd %xmm13,%xmm0
mulsd  %xmm6,%xmm0
addsd  %xmm15,%xmm0
movapd %xmm0,-0x50(%rsp)
movsd  0x68(%r8),%xmm5
movapd %xmm5,%xmm1
mulsd  %xmm6,%xmm1
addsd  -0x10(%rsp),%xmm1
movsd  0x70(%r8),%xmm0
movapd %xmm0,%xmm15
mulsd  %xmm6,%xmm15
addsd  %xmm9,%xmm15
movsd  0x78(%r8),%xmm12
mulsd  %xmm12,%xmm6
addsd  %xmm3,%xmm6
movsd  0x68(%rax),%xmm14
movapd %xmm13,%xmm3
mulsd  %xmm14,%xmm3
addsd  %xmm8,%xmm3
movapd %xmm3,-0x10(%rsp)
movapd %xmm5,%xmm2
mulsd  %xmm14,%xmm2
addsd  -0x60(%rsp),%xmm2
movapd %xmm0,%xmm8
mulsd  %xmm14,%xmm8
addsd  -0x68(%rsp),%xmm8
mulsd  %xmm12,%xmm14
addsd  %xmm7,%xmm14
movsd  0x70(%rax),%xmm9
movapd %xmm13,%xmm4
mulsd  %xmm9,%xmm4
addsd  0x10(%rsp),%xmm4
movapd %xmm5,%xmm7
mulsd  %xmm9,%xmm7
addsd  -0x58(%rsp),%xmm7
movapd %xmm0,%xmm11
mulsd  %xmm9,%xmm11
addsd  -0x78(%rsp),%xmm11
mulsd  %xmm12,%xmm9
addsd  %xmm10,%xmm9
movsd  0x78(%rax),%xmm3
mulsd  %xmm3,%xmm13
addsd  -0x70(%rsp),%xmm13
mulsd  %xmm3,%xmm5
addsd  -0x20(%rsp),%xmm5
movsd  %xmm5,-0x70(%rsp)
movapd -0x50(%rsp),%xmm5
mulsd  %xmm3,%xmm0
addsd  -0x30(%rsp),%xmm0
movapd %xmm0,-0x20(%rsp)
movapd %xmm6,%xmm0
mulsd  %xmm3,%xmm12
addsd  -0x40(%rsp),%xmm12
movapd %xmm12,%xmm6
add    $0x4,%edx
sub    $0xffffffffffffff80,%r8
sub    $0xffffffffffffff80,%rax
cmp    %edi,%edx
jl     1430 <kernel_dttmm_ll_nt_4x4_lib4+0x330>
movsd  %xmm7,-0x68(%rsp)
movsd  %xmm2,-0x60(%rsp)
movsd  %xmm1,-0x78(%rsp)
movapd %xmm4,-0x30(%rsp)
movapd %xmm13,-0x40(%rsp)
lea    -0x80(%rax),%rdx
lea    -0x80(%r8),%rsi
movapd %xmm15,%xmm4
movapd %xmm11,%xmm15
movapd %xmm0,%xmm1
movapd %xmm14,%xmm13
jmp    1952 <kernel_dttmm_ll_nt_4x4_lib4+0x852>
movapd %xmm7,-0x30(%rsp)
movapd %xmm12,%xmm8
movapd %xmm2,-0x40(%rsp)
movapd -0x50(%rsp),%xmm5
movapd 0x10(%rsp),%xmm4
movsd  -0x58(%rsp),%xmm1
movsd  0x88(%rsi),%xmm7
movsd  (%rax),%xmm14
movapd %xmm7,%xmm2
mulsd  %xmm14,%xmm2
addsd  -0x78(%rsp),%xmm2
unpcklpd %xmm2,%xmm5
movapd %xmm5,%xmm10
movsd  0x98(%rsi),%xmm3
movapd %xmm3,%xmm2
mulsd  %xmm14,%xmm2
addsd  %xmm1,%xmm2
unpcklpd %xmm2,%xmm4
movsd  0x88(%rdx),%xmm2
movapd %xmm4,%xmm1
movapd %xmm7,%xmm4
mulsd  %xmm2,%xmm4
addsd  -0x60(%rsp),%xmm4
movapd -0x10(%rsp),%xmm12
unpcklpd %xmm4,%xmm12
movapd %xmm3,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm13,%xmm4
unpcklpd %xmm4,%xmm8
movsd  0x90(%rdx),%xmm4
movapd %xmm7,%xmm5
mulsd  %xmm4,%xmm5
addsd  -0x68(%rsp),%xmm5
movapd -0x30(%rsp),%xmm0
unpcklpd %xmm5,%xmm0
movapd %xmm0,-0x30(%rsp)
movapd %xmm3,%xmm0
mulsd  %xmm4,%xmm0
addsd  %xmm9,%xmm0
unpcklpd %xmm0,%xmm15
movsd  0x98(%rdx),%xmm5
mulsd  %xmm5,%xmm7
addsd  -0x70(%rsp),%xmm7
movapd -0x40(%rsp),%xmm0
unpcklpd %xmm7,%xmm0
movapd %xmm0,-0x40(%rsp)
mulsd  %xmm5,%xmm3
addsd  %xmm6,%xmm3
movapd -0x20(%rsp),%xmm11
unpcklpd %xmm3,%xmm11
movapd %xmm11,%xmm6
movapd %xmm15,%xmm7
movsd  (%r8),%xmm11
movhpd 0xa8(%rsi),%xmm11
movapd %xmm12,%xmm0
movsd  0xa0(%rdx),%xmm12
unpcklpd %xmm12,%xmm14
movapd %xmm1,%xmm15
movapd %xmm11,%xmm1
mulpd  %xmm14,%xmm1
addpd  %xmm10,%xmm1
movapd %xmm1,-0x50(%rsp)
movsd  0x90(%rsi),%xmm1
movhpd 0xb8(%rsi),%xmm1
mulpd  %xmm1,%xmm14
addpd  %xmm15,%xmm14
movsd  0xa8(%rdx),%xmm13
unpcklpd %xmm13,%xmm2
movapd %xmm11,%xmm9
mulpd  %xmm2,%xmm9
addpd  %xmm0,%xmm9
mulpd  %xmm1,%xmm2
addpd  %xmm8,%xmm2
movsd  0xb0(%rdx),%xmm3
unpcklpd %xmm3,%xmm4
movapd %xmm11,%xmm10
mulpd  %xmm4,%xmm10
addpd  -0x30(%rsp),%xmm10
mulpd  %xmm1,%xmm4
addpd  %xmm7,%xmm4
movsd  0xb8(%rdx),%xmm0
unpcklpd %xmm0,%xmm5
mulpd  %xmm5,%xmm11
addpd  -0x40(%rsp),%xmm11
mulpd  %xmm1,%xmm5
movsd  0xb0(%rsi),%xmm7
movhpd 0xd8(%rsi),%xmm7
addpd  %xmm6,%xmm5
movsd  0xc0(%rdx),%xmm1
unpcklpd %xmm1,%xmm12
mulpd  %xmm7,%xmm12
addpd  %xmm14,%xmm12
movsd  0xc8(%rdx),%xmm6
unpcklpd %xmm6,%xmm13
mulpd  %xmm7,%xmm13
addpd  %xmm2,%xmm13
movsd  0xd0(%rdx),%xmm2
unpcklpd %xmm2,%xmm3
mulpd  %xmm7,%xmm3
addpd  %xmm4,%xmm3
movsd  0xd8(%rdx),%xmm4
unpcklpd %xmm4,%xmm0
mulpd  %xmm7,%xmm0
addpd  %xmm5,%xmm0
movsd  0xd0(%rsi),%xmm5
movhpd 0xf8(%rsi),%xmm5
movhpd 0xe0(%rdx),%xmm1
mulpd  %xmm5,%xmm1
addpd  %xmm12,%xmm1
movhpd 0xe8(%rdx),%xmm6
mulpd  %xmm5,%xmm6
addpd  %xmm13,%xmm6
movhpd 0xf0(%rdx),%xmm2
mulpd  %xmm5,%xmm2
addpd  %xmm3,%xmm2
movhpd 0xf8(%rdx),%xmm4
mulpd  %xmm5,%xmm4
addpd  %xmm0,%xmm4
movaps -0x50(%rsp),%xmm0
movups %xmm0,(%rcx)
movupd %xmm1,0x10(%rcx)
movupd %xmm9,0x20(%rcx)
movupd %xmm6,0x30(%rcx)
movupd %xmm10,0x40(%rcx)
movupd %xmm2,0x50(%rcx)
movupd %xmm11,0x60(%rcx)
movupd %xmm4,0x70(%rcx)
add    $0x28,%rsp
ret

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

LLVM IR (-O2):
define void @kernel_dttmm_ll_nt_4x4_lib4(i32 %0, double* %1, double* %2, double* nocapture writeonly %3) {
%5 = load double, double* %1
%6 = getelementptr inbounds double, double* %1, i64 1
%7 = load double, double* %6
%8 = getelementptr inbounds double, double* %1, i64 2
%9 = load double, double* %8
%10 = getelementptr inbounds double, double* %1, i64 3
%11 = load double, double* %10
%12 = load double, double* %2
%13 = tail call double @llvm.fmuladd.f64(double %5, double %12, double 0.000000e+00)
%14 = tail call double @llvm.fmuladd.f64(double %7, double %12, double 0.000000e+00)
%15 = tail call double @llvm.fmuladd.f64(double %9, double %12, double 0.000000e+00)
%16 = tail call double @llvm.fmuladd.f64(double %11, double %12, double 0.000000e+00)
%17 = getelementptr inbounds double, double* %1, i64 4
%18 = load double, double* %17
%19 = getelementptr inbounds double, double* %1, i64 5
%20 = load double, double* %19
%21 = getelementptr inbounds double, double* %1, i64 6
%22 = load double, double* %21
%23 = getelementptr inbounds double, double* %1, i64 7
%24 = load double, double* %23
%25 = getelementptr inbounds double, double* %2, i64 4
%26 = load double, double* %25
%27 = getelementptr inbounds double, double* %2, i64 5
%28 = load double, double* %27
%29 = tail call double @llvm.fmuladd.f64(double %18, double %26, double %13)
%30 = tail call double @llvm.fmuladd.f64(double %20, double %26, double %14)
%31 = tail call double @llvm.fmuladd.f64(double %22, double %26, double %15)
%32 = tail call double @llvm.fmuladd.f64(double %24, double %26, double %16)
%33 = tail call double @llvm.fmuladd.f64(double %18, double %28, double 0.000000e+00)
%34 = tail call double @llvm.fmuladd.f64(double %20, double %28, double 0.000000e+00)
%35 = tail call double @llvm.fmuladd.f64(double %22, double %28, double 0.000000e+00)
%36 = tail call double @llvm.fmuladd.f64(double %24, double %28, double 0.000000e+00)
%37 = getelementptr inbounds double, double* %1, i64 8
%38 = load double, double* %37
%39 = getelementptr inbounds double, double* %1, i64 9
%40 = load double, double* %39
%41 = getelementptr inbounds double, double* %1, i64 10
%42 = load double, double* %41
%43 = getelementptr inbounds double, double* %1, i64 11
%44 = load double, double* %43
%45 = getelementptr inbounds double, double* %2, i64 8
%46 = load double, double* %45
%47 = getelementptr inbounds double, double* %2, i64 9
%48 = load double, double* %47
%49 = getelementptr inbounds double, double* %2, i64 10
%50 = load double, double* %49
%51 = tail call double @llvm.fmuladd.f64(double %38, double %46, double %29)
%52 = tail call double @llvm.fmuladd.f64(double %40, double %46, double %30)
%53 = tail call double @llvm.fmuladd.f64(double %42, double %46, double %31)
%54 = tail call double @llvm.fmuladd.f64(double %44, double %46, double %32)
%55 = tail call double @llvm.fmuladd.f64(double %38, double %48, double %33)
%56 = tail call double @llvm.fmuladd.f64(double %40, double %48, double %34)
%57 = tail call double @llvm.fmuladd.f64(double %42, double %48, double %35)
%58 = tail call double @llvm.fmuladd.f64(double %44, double %48, double %36)
%59 = tail call double @llvm.fmuladd.f64(double %38, double %50, double 0.000000e+00)
%60 = tail call double @llvm.fmuladd.f64(double %40, double %50, double 0.000000e+00)
%61 = tail call double @llvm.fmuladd.f64(double %42, double %50, double 0.000000e+00)
%62 = tail call double @llvm.fmuladd.f64(double %44, double %50, double 0.000000e+00)
%63 = getelementptr inbounds double, double* %1, i64 12
%64 = load double, double* %63
%65 = getelementptr inbounds double, double* %1, i64 13
%66 = load double, double* %65
%67 = getelementptr inbounds double, double* %1, i64 14
%68 = load double, double* %67
%69 = getelementptr inbounds double, double* %1, i64 15
%70 = load double, double* %69
%71 = getelementptr inbounds double, double* %2, i64 12
%72 = load double, double* %71
%73 = getelementptr inbounds double, double* %2, i64 13
%74 = load double, double* %73
%75 = getelementptr inbounds double, double* %2, i64 14
%76 = load double, double* %75
%77 = getelementptr inbounds double, double* %2, i64 15
%78 = load double, double* %77
%79 = tail call double @llvm.fmuladd.f64(double %64, double %72, double %51)
%80 = tail call double @llvm.fmuladd.f64(double %66, double %72, double %52)
%81 = tail call double @llvm.fmuladd.f64(double %68, double %72, double %53)
%82 = tail call double @llvm.fmuladd.f64(double %70, double %72, double %54)
%83 = tail call double @llvm.fmuladd.f64(double %64, double %74, double %55)
%84 = tail call double @llvm.fmuladd.f64(double %66, double %74, double %56)
%85 = tail call double @llvm.fmuladd.f64(double %68, double %74, double %57)
%86 = tail call double @llvm.fmuladd.f64(double %70, double %74, double %58)
%87 = tail call double @llvm.fmuladd.f64(double %64, double %76, double %59)
%88 = tail call double @llvm.fmuladd.f64(double %66, double %76, double %60)
%89 = tail call double @llvm.fmuladd.f64(double %68, double %76, double %61)
%90 = tail call double @llvm.fmuladd.f64(double %70, double %76, double %62)
%91 = tail call double @llvm.fmuladd.f64(double %64, double %78, double 0.000000e+00)
%92 = tail call double @llvm.fmuladd.f64(double %66, double %78, double 0.000000e+00)
%93 = tail call double @llvm.fmuladd.f64(double %68, double %78, double 0.000000e+00)
%94 = tail call double @llvm.fmuladd.f64(double %70, double %78, double 0.000000e+00)
%95 = add nsw i32 %0, -4
%96 = getelementptr inbounds double, double* %1, i64 16
%97 = getelementptr inbounds double, double* %2, i64 16
%98 = icmp sgt i32 %0, 8
br i1 %98, label %99, label %251
99: ; preds = %4, %99
%100 = phi double* [ %249, %99 ], [ %97, %4 ]
%101 = phi double* [ %248, %99 ], [ %96, %4 ]
%102 = phi double [ %246, %99 ], [ %94, %4 ]
%103 = phi double [ %242, %99 ], [ %90, %4 ]
%104 = phi double [ %238, %99 ], [ %86, %4 ]
%105 = phi double [ %234, %99 ], [ %82, %4 ]
%106 = phi double [ %245, %99 ], [ %93, %4 ]
%107 = phi double [ %241, %99 ], [ %89, %4 ]
%108 = phi double [ %237, %99 ], [ %85, %4 ]
%109 = phi double [ %233, %99 ], [ %81, %4 ]
%110 = phi double [ %244, %99 ], [ %92, %4 ]
%111 = phi double [ %240, %99 ], [ %88, %4 ]
%112 = phi double [ %236, %99 ], [ %84, %4 ]
%113 = phi double [ %232, %99 ], [ %80, %4 ]
%114 = phi double [ %243, %99 ], [ %91, %4 ]
%115 = phi double [ %239, %99 ], [ %87, %4 ]
%116 = phi double [ %235, %99 ], [ %83, %4 ]
%117 = phi double [ %231, %99 ], [ %79, %4 ]
%118 = phi i32 [ %247, %99 ], [ 4, %4 ]
%119 = phi double* [ %101, %99 ], [ %1, %4 ]
%120 = phi double* [ %100, %99 ], [ %2, %4 ]
%121 = load double, double* %101
%122 = getelementptr inbounds double, double* %119, i64 17
%123 = load double, double* %122
%124 = getelementptr inbounds double, double* %119, i64 18
%125 = load double, double* %124
%126 = getelementptr inbounds double, double* %119, i64 19
%127 = load double, double* %126
%128 = load double, double* %100
%129 = getelementptr inbounds double, double* %120, i64 17
%130 = load double, double* %129
%131 = getelementptr inbounds double, double* %120, i64 18
%132 = load double, double* %131
%133 = getelementptr inbounds double, double* %120, i64 19
%134 = load double, double* %133
%135 = tail call double @llvm.fmuladd.f64(double %121, double %128, double %117)
%136 = tail call double @llvm.fmuladd.f64(double %123, double %128, double %113)
%137 = tail call double @llvm.fmuladd.f64(double %125, double %128, double %109)
%138 = tail call double @llvm.fmuladd.f64(double %127, double %128, double %105)
%139 = tail call double @llvm.fmuladd.f64(double %121, double %130, double %116)
%140 = tail call double @llvm.fmuladd.f64(double %123, double %130, double %112)
%141 = tail call double @llvm.fmuladd.f64(double %125, double %130, double %108)
%142 = tail call double @llvm.fmuladd.f64(double %127, double %130, double %104)
%143 = tail call double @llvm.fmuladd.f64(double %121, double %132, double %115)
%144 = tail call double @llvm.fmuladd.f64(double %123, double %132, double %111)
%145 = tail call double @llvm.fmuladd.f64(double %125, double %132, double %107)
%146 = tail call double @llvm.fmuladd.f64(double %127, double %132, double %103)
%147 = tail call double @llvm.fmuladd.f64(double %121, double %134, double %114)
%148 = tail call double @llvm.fmuladd.f64(double %123, double %134, double %110)
%149 = tail call double @llvm.fmuladd.f64(double %125, double %134, double %106)
%150 = tail call double @llvm.fmuladd.f64(double %127, double %134, double %102)
%151 = getelementptr inbounds double, double* %119, i64 20
%152 = load double, double* %151
%153 = getelementptr inbounds double, double* %119, i64 21
%154 = load double, double* %153
%155 = getelementptr inbounds double, double* %119, i64 22
%156 = load double, double* %155
%157 = getelementptr inbounds double, double* %119, i64 23
%158 = load double, double* %157
%159 = getelementptr inbounds double, double* %120, i64 20
%160 = load double, double* %159
%161 = getelementptr inbounds double, double* %120, i64 21
%162 = load double, double* %161
%163 = getelementptr inbounds double, double* %120, i64 22
%164 = load double, double* %163
%165 = getelementptr inbounds double, double* %120, i64 23
%166 = load double, double* %165
%167 = tail call double @llvm.fmuladd.f64(double %152, double %160, double %135)
%168 = tail call double @llvm.fmuladd.f64(double %154, double %160, double %136)
%169 = tail call double @llvm.fmuladd.f64(double %156, double %160, double %137)
%170 = tail call double @llvm.fmuladd.f64(double %158, double %160, double %138)
%171 = tail call double @llvm.fmuladd.f64(double %152, double %162, double %139)
%172 = tail call double @llvm.fmuladd.f64(double %154, double %162, double %140)
%173 = tail call double @llvm.fmuladd.f64(double %156, double %162, double %141)
%174 = tail call double @llvm.fmuladd.f64(double %158, double %162, double %142)
%175 = tail call double @llvm.fmuladd.f64(double %152, double %164, double %143)
%176 = tail call double @llvm.fmuladd.f64(double %154, double %164, double %144)
%177 = tail call double @llvm.fmuladd.f64(double %156, double %164, double %145)
%178 = tail call double @llvm.fmuladd.f64(double %158, double %164, double %146)
%179 = tail call double @llvm.fmuladd.f64(double %152, double %166, double %147)
%180 = tail call double @llvm.fmuladd.f64(double %154, double %166, double %148)
%181 = tail call double @llvm.fmuladd.f64(double %156, double %166, double %149)
%182 = tail call double @llvm.fmuladd.f64(double %158, double %166, double %150)
%183 = getelementptr inbounds double, double* %119, i64 24
%184 = load double, double* %183
%185 = getelementptr inbounds double, double* %119, i64 25
%186 = load double, double* %185
%187 = getelementptr inbounds double, double* %119, i64 26
%188 = load double, double* %187
%189 = getelementptr inbounds double, double* %119, i64 27
%190 = load double, double* %189
%191 = getelementptr inbounds double, double* %120, i64 24
%192 = load double, double* %191
%193 = getelementptr inbounds double, double* %120, i64 25
%194 = load double, double* %193
%195 = getelementptr inbounds double, double* %120, i64 26
%196 = load double, double* %195
%197 = getelementptr inbounds double, double* %120, i64 27
%198 = load double, double* %197
%199 = tail call double @llvm.fmuladd.f64(double %184, double %192, double %167)
%200 = tail call double @llvm.fmuladd.f64(double %186, double %192, double %168)
%201 = tail call double @llvm.fmuladd.f64(double %188, double %192, double %169)
%202 = tail call double @llvm.fmuladd.f64(double %190, double %192, double %170)
%203 = tail call double @llvm.fmuladd.f64(double %184, double %194, double %171)
%204 = tail call double @llvm.fmuladd.f64(double %186, double %194, double %172)
%205 = tail call double @llvm.fmuladd.f64(double %188, double %194, double %173)
%206 = tail call double @llvm.fmuladd.f64(double %190, double %194, double %174)
%207 = tail call double @llvm.fmuladd.f64(double %184, double %196, double %175)
%208 = tail call double @llvm.fmuladd.f64(double %186, double %196, double %176)
%209 = tail call double @llvm.fmuladd.f64(double %188, double %196, double %177)
%210 = tail call double @llvm.fmuladd.f64(double %190, double %196, double %178)
%211 = tail call double @llvm.fmuladd.f64(double %184, double %198, double %179)
%212 = tail call double @llvm.fmuladd.f64(double %186, double %198, double %180)
%213 = tail call double @llvm.fmuladd.f64(double %188, double %198, double %181)
%214 = tail call double @llvm.fmuladd.f64(double %190, double %198, double %182)
%215 = getelementptr inbounds double, double* %119, i64 28
%216 = load double, double* %215
%217 = getelementptr inbounds double, double* %119, i64 29
%218 = load double, double* %217
%219 = getelementptr inbounds double, double* %119, i64 30
%220 = load double, double* %219
%221 = getelementptr inbounds double, double* %119, i64 31
%222 = load double, double* %221
%223 = getelementptr inbounds double, double* %120, i64 28
%224 = load double, double* %223
%225 = getelementptr inbounds double, double* %120, i64 29
%226 = load double, double* %225
%227 = getelementptr inbounds double, double* %120, i64 30
%228 = load double, double* %227
%229 = getelementptr inbounds double, double* %120, i64 31
%230 = load double, double* %229
%231 = tail call double @llvm.fmuladd.f64(double %216, double %224, double %199)
%232 = tail call double @llvm.fmuladd.f64(double %218, double %224, double %200)
%233 = tail call double @llvm.fmuladd.f64(double %220, double %224, double %201)
%234 = tail call double @llvm.fmuladd.f64(double %222, double %224, double %202)
%235 = tail call double @llvm.fmuladd.f64(double %216, double %226, double %203)
%236 = tail call double @llvm.fmuladd.f64(double %218, double %226, double %204)
%237 = tail call double @llvm.fmuladd.f64(double %220, double %226, double %205)
%238 = tail call double @llvm.fmuladd.f64(double %222, double %226, double %206)
%239 = tail call double @llvm.fmuladd.f64(double %216, double %228, double %207)
%240 = tail call double @llvm.fmuladd.f64(double %218, double %228, double %208)
%241 = tail call double @llvm.fmuladd.f64(double %220, double %228, double %209)
%242 = tail call double @llvm.fmuladd.f64(double %222, double %228, double %210)
%243 = tail call double @llvm.fmuladd.f64(double %216, double %230, double %211)
%244 = tail call double @llvm.fmuladd.f64(double %218, double %230, double %212)
%245 = tail call double @llvm.fmuladd.f64(double %220, double %230, double %213)
%246 = tail call double @llvm.fmuladd.f64(double %222, double %230, double %214)
%247 = add nuw nsw i32 %118, 4
%248 = getelementptr inbounds double, double* %101, i64 16
%249 = getelementptr inbounds double, double* %100, i64 16
%250 = icmp slt i32 %247, %95
br i1 %250, label %99, label %251
251: ; preds = %99, %4
%252 = phi double* [ %2, %4 ], [ %100, %99 ]
%253 = phi double* [ %1, %4 ], [ %101, %99 ]
%254 = phi double [ %79, %4 ], [ %231, %99 ]
%255 = phi double [ %83, %4 ], [ %235, %99 ]
%256 = phi double [ %87, %4 ], [ %239, %99 ]
%257 = phi double [ %91, %4 ], [ %243, %99 ]
%258 = phi double [ %80, %4 ], [ %232, %99 ]
%259 = phi double [ %84, %4 ], [ %236, %99 ]
%260 = phi double [ %88, %4 ], [ %240, %99 ]
%261 = phi double [ %92, %4 ], [ %244, %99 ]
%262 = phi double [ %81, %4 ], [ %233, %99 ]
%263 = phi double [ %85, %4 ], [ %237, %99 ]
%264 = phi double [ %89, %4 ], [ %241, %99 ]
%265 = phi double [ %93, %4 ], [ %245, %99 ]
%266 = phi double [ %82, %4 ], [ %234, %99 ]
%267 = phi double [ %86, %4 ], [ %238, %99 ]
%268 = phi double [ %90, %4 ], [ %242, %99 ]
%269 = phi double [ %94, %4 ], [ %246, %99 ]
%270 = phi double* [ %96, %4 ], [ %248, %99 ]
%271 = phi double* [ %97, %4 ], [ %249, %99 ]
%272 = load double, double* %270
%273 = getelementptr inbounds double, double* %253, i64 17
%274 = load double, double* %273
%275 = getelementptr inbounds double, double* %253, i64 18
%276 = load double, double* %275
%277 = getelementptr inbounds double, double* %253, i64 19
%278 = load double, double* %277
%279 = load double, double* %271
%280 = getelementptr inbounds double, double* %252, i64 17
%281 = load double, double* %280
%282 = getelementptr inbounds double, double* %252, i64 18
%283 = load double, double* %282
%284 = getelementptr inbounds double, double* %252, i64 19
%285 = load double, double* %284
%286 = tail call double @llvm.fmuladd.f64(double %274, double %279, double %258)
%287 = tail call double @llvm.fmuladd.f64(double %278, double %279, double %266)
%288 = tail call double @llvm.fmuladd.f64(double %274, double %281, double %259)
%289 = tail call double @llvm.fmuladd.f64(double %278, double %281, double %267)
%290 = tail call double @llvm.fmuladd.f64(double %274, double %283, double %260)
%291 = tail call double @llvm.fmuladd.f64(double %278, double %283, double %268)
%292 = tail call double @llvm.fmuladd.f64(double %274, double %285, double %261)
%293 = tail call double @llvm.fmuladd.f64(double %278, double %285, double %269)
%294 = getelementptr inbounds double, double* %253, i64 21
%295 = load double, double* %294
%296 = getelementptr inbounds double, double* %253, i64 22
%297 = load double, double* %296
%298 = getelementptr inbounds double, double* %253, i64 23
%299 = load double, double* %298
%300 = getelementptr inbounds double, double* %252, i64 20
%301 = load double, double* %300
%302 = getelementptr inbounds double, double* %252, i64 21
%303 = load double, double* %302
%304 = getelementptr inbounds double, double* %252, i64 22
%305 = load double, double* %304
%306 = getelementptr inbounds double, double* %252, i64 23
%307 = load double, double* %306
%308 = insertelement <2 x double> poison, double %272, i64 0
%309 = insertelement <2 x double> %308, double %295, i64 1
%310 = insertelement <2 x double> poison, double %279, i64 0
%311 = insertelement <2 x double> %310, double %301, i64 1
%312 = insertelement <2 x double> poison, double %254, i64 0
%313 = insertelement <2 x double> %312, double %286, i64 1
%314 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %309, <2 x double> %311, <2 x double> %313)
%315 = insertelement <2 x double> poison, double %276, i64 0
%316 = insertelement <2 x double> %315, double %299, i64 1
%317 = insertelement <2 x double> poison, double %262, i64 0
%318 = insertelement <2 x double> %317, double %287, i64 1
%319 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> %311, <2 x double> %318)
%320 = insertelement <2 x double> poison, double %281, i64 0
%321 = insertelement <2 x double> %320, double %303, i64 1
%322 = insertelement <2 x double> poison, double %255, i64 0
%323 = insertelement <2 x double> %322, double %288, i64 1
%324 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %309, <2 x double> %321, <2 x double> %323)
%325 = insertelement <2 x double> poison, double %263, i64 0
%326 = insertelement <2 x double> %325, double %289, i64 1
%327 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> %321, <2 x double> %326)
%328 = insertelement <2 x double> poison, double %283, i64 0
%329 = insertelement <2 x double> %328, double %305, i64 1
%330 = insertelement <2 x double> poison, double %256, i64 0
%331 = insertelement <2 x double> %330, double %290, i64 1
%332 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %309, <2 x double> %329, <2 x double> %331)
%333 = insertelement <2 x double> poison, double %264, i64 0
%334 = insertelement <2 x double> %333, double %291, i64 1
%335 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> %329, <2 x double> %334)
%336 = insertelement <2 x double> poison, double %285, i64 0
%337 = insertelement <2 x double> %336, double %307, i64 1
%338 = insertelement <2 x double> poison, double %257, i64 0
%339 = insertelement <2 x double> %338, double %292, i64 1
%340 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %309, <2 x double> %337, <2 x double> %339)
%341 = insertelement <2 x double> poison, double %265, i64 0
%342 = insertelement <2 x double> %341, double %293, i64 1
%343 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %316, <2 x double> %337, <2 x double> %342)
%344 = getelementptr inbounds double, double* %253, i64 26
%345 = load double, double* %344
%346 = getelementptr inbounds double, double* %253, i64 27
%347 = load double, double* %346
%348 = getelementptr inbounds double, double* %252, i64 24
%349 = load double, double* %348
%350 = getelementptr inbounds double, double* %252, i64 25
%351 = load double, double* %350
%352 = getelementptr inbounds double, double* %252, i64 26
%353 = load double, double* %352
%354 = getelementptr inbounds double, double* %252, i64 27
%355 = load double, double* %354
%356 = insertelement <2 x double> poison, double %297, i64 0
%357 = insertelement <2 x double> %356, double %347, i64 1
%358 = insertelement <2 x double> poison, double %301, i64 0
%359 = insertelement <2 x double> %358, double %349, i64 1
%360 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %357, <2 x double> %359, <2 x double> %319)
%361 = insertelement <2 x double> poison, double %303, i64 0
%362 = insertelement <2 x double> %361, double %351, i64 1
%363 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %357, <2 x double> %362, <2 x double> %327)
%364 = insertelement <2 x double> poison, double %305, i64 0
%365 = insertelement <2 x double> %364, double %353, i64 1
%366 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %357, <2 x double> %365, <2 x double> %335)
%367 = insertelement <2 x double> poison, double %307, i64 0
%368 = insertelement <2 x double> %367, double %355, i64 1
%369 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %357, <2 x double> %368, <2 x double> %343)
%370 = getelementptr inbounds double, double* %253, i64 31
%371 = load double, double* %370
%372 = getelementptr inbounds double, double* %252, i64 28
%373 = load double, double* %372
%374 = getelementptr inbounds double, double* %252, i64 29
%375 = load double, double* %374
%376 = getelementptr inbounds double, double* %252, i64 30
%377 = load double, double* %376
%378 = getelementptr inbounds double, double* %252, i64 31
%379 = load double, double* %378
%380 = insertelement <2 x double> poison, double %345, i64 0
%381 = insertelement <2 x double> %380, double %371, i64 1
%382 = insertelement <2 x double> poison, double %349, i64 0
%383 = insertelement <2 x double> %382, double %373, i64 1
%384 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %383, <2 x double> %360)
%385 = insertelement <2 x double> poison, double %351, i64 0
%386 = insertelement <2 x double> %385, double %375, i64 1
%387 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %386, <2 x double> %363)
%388 = insertelement <2 x double> poison, double %353, i64 0
%389 = insertelement <2 x double> %388, double %377, i64 1
%390 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %389, <2 x double> %366)
%391 = insertelement <2 x double> poison, double %355, i64 0
%392 = insertelement <2 x double> %391, double %379, i64 1
%393 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %381, <2 x double> %392, <2 x double> %369)
%394 = bitcast double* %3 to <2 x double>*
store <2 x double> %314, <2 x double>* %394
%395 = getelementptr inbounds double, double* %3, i64 2
%396 = bitcast double* %395 to <2 x double>*
store <2 x double> %384, <2 x double>* %396
%397 = getelementptr inbounds double, double* %3, i64 4
%398 = bitcast double* %397 to <2 x double>*
store <2 x double> %324, <2 x double>* %398
%399 = getelementptr inbounds double, double* %3, i64 6
%400 = bitcast double* %399 to <2 x double>*
store <2 x double> %387, <2 x double>* %400
%401 = getelementptr inbounds double, double* %3, i64 8
%402 = bitcast double* %401 to <2 x double>*
store <2 x double> %332, <2 x double>* %402
%403 = getelementptr inbounds double, double* %3, i64 10
%404 = bitcast double* %403 to <2 x double>*
store <2 x double> %390, <2 x double>* %404
%405 = getelementptr inbounds double, double* %3, i64 12
%406 = bitcast double* %405 to <2 x double>*
store <2 x double> %340, <2 x double>* %406
%407 = getelementptr inbounds double, double* %3, i64 14
%408 = bitcast double* %407 to <2 x double>*
store <2 x double> %393, <2 x double>* %408
ret void
}