void kernel_dttmm_uu_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];
  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_01 += a_0 * b_1;
  c_02 += a_0 * b_2;
  c_03 += a_0 * b_3;
  a_0 = A[0 + bs * 1];
  a_1 = A[1 + 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_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  a_0 = A[0 + bs * 2];
  a_1 = A[1 + bs * 2];
  a_2 = A[2 + 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_01 += a_0 * b_1;
  c_11 += a_1 * b_1;
  c_21 += a_2 * b_1;
  c_02 += a_0 * b_2;
  c_12 += a_1 * b_2;
  c_22 += a_2 * b_2;
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  c_23 += a_2 * 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;
  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_0 = A[0 + bs * 1];
  a_1 = A[1 + bs * 1];
  a_2 = A[2 + bs * 1];
  a_3 = A[3 + bs * 1];
  b_1 = B[1 + bs * 1];
  b_2 = B[2 + bs * 1];
  b_3 = B[3 + bs * 1];
  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_2 = B[2 + bs * 2];
  b_3 = B[3 + bs * 2];
  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_3 = B[3 + bs * 3];
  c_03 += a_0 * b_3;
  c_13 += a_1 * b_3;
  c_23 += a_2 * b_3;
  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_uu_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    -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  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%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    -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  -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  -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  -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
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    -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  -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  -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  -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
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    2292 <kernel_dttmm_uu_nt_4x4_lib4+0x1192>
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    1861 <kernel_dttmm_uu_nt_4x4_lib4+0x761>
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  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  -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  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
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  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
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
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_uu_nt_4x4_lib4>:
sub    $0x18,%rsp
movsd  (%rsi),%xmm0
movsd  (%rdx),%xmm1
mulsd  %xmm0,%xmm1
xorpd  %xmm8,%xmm8
addsd  %xmm8,%xmm1
movsd  0x8(%rdx),%xmm3
mulsd  %xmm0,%xmm3
addsd  %xmm8,%xmm3
movsd  0x10(%rdx),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm8,%xmm6
mulsd  0x18(%rdx),%xmm0
addsd  %xmm8,%xmm0
movupd 0x20(%rsi),%xmm4
movsd  0x20(%rdx),%xmm2
movsd  0x28(%rdx),%xmm7
movsd  0x30(%rdx),%xmm5
movsd  0x38(%rdx),%xmm13
unpcklpd %xmm2,%xmm2
movq   %xmm1,%xmm1
mulpd  %xmm4,%xmm2
addpd  %xmm1,%xmm2
unpcklpd %xmm7,%xmm7
movq   %xmm3,%xmm1
mulpd  %xmm4,%xmm7
addpd  %xmm1,%xmm7
unpcklpd %xmm5,%xmm5
movq   %xmm6,%xmm1
mulpd  %xmm4,%xmm5
addpd  %xmm1,%xmm5
unpcklpd %xmm13,%xmm13
movq   %xmm0,%xmm0
mulpd  %xmm4,%xmm13
addpd  %xmm0,%xmm13
movupd 0x40(%rsi),%xmm12
movsd  0x50(%rsi),%xmm9
movsd  0x40(%rdx),%xmm0
movsd  0x48(%rdx),%xmm6
movsd  0x50(%rdx),%xmm3
movsd  0x58(%rdx),%xmm11
movapd %xmm9,%xmm1
mulsd  %xmm0,%xmm1
unpcklpd %xmm0,%xmm0
mulpd  %xmm12,%xmm0
addpd  %xmm2,%xmm0
addsd  %xmm8,%xmm1
movapd %xmm9,%xmm10
mulsd  %xmm6,%xmm10
unpcklpd %xmm6,%xmm6
mulpd  %xmm12,%xmm6
addpd  %xmm7,%xmm6
addsd  %xmm8,%xmm10
movapd %xmm9,%xmm7
mulsd  %xmm3,%xmm7
unpcklpd %xmm3,%xmm3
mulpd  %xmm12,%xmm3
addpd  %xmm5,%xmm3
addsd  %xmm8,%xmm7
mulsd  %xmm11,%xmm9
unpcklpd %xmm11,%xmm11
mulpd  %xmm12,%xmm11
addpd  %xmm13,%xmm11
addsd  %xmm8,%xmm9
movupd 0x60(%rsi),%xmm13
movupd 0x70(%rsi),%xmm4
movsd  0x60(%rdx),%xmm14
unpcklpd %xmm14,%xmm14
movapd %xmm13,%xmm2
mulpd  %xmm14,%xmm2
addpd  %xmm0,%xmm2
movq   %xmm1,%xmm0
mulpd  %xmm4,%xmm14
addpd  %xmm0,%xmm14
movsd  0x68(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm13,%xmm15
mulpd  %xmm1,%xmm15
addpd  %xmm6,%xmm15
movq   %xmm10,%xmm0
mulpd  %xmm4,%xmm1
addpd  %xmm0,%xmm1
movsd  0x70(%rdx),%xmm12
unpcklpd %xmm12,%xmm12
movapd %xmm13,%xmm5
mulpd  %xmm12,%xmm5
addpd  %xmm3,%xmm5
movq   %xmm7,%xmm0
mulpd  %xmm4,%xmm12
addpd  %xmm0,%xmm12
movsd  0x78(%rdx),%xmm10
unpcklpd %xmm10,%xmm10
mulpd  %xmm10,%xmm13
addpd  %xmm11,%xmm13
movq   %xmm9,%xmm0
mulpd  %xmm4,%xmm10
addpd  %xmm0,%xmm10
lea    0x80(%rsi),%r8
lea    0x80(%rdx),%rax
cmp    $0x9,%edi
jl     162a <kernel_dttmm_uu_nt_4x4_lib4+0x52a>
add    $0xfffffffc,%edi
mov    $0x4,%edx
movapd %xmm13,%xmm7
movapd %xmm10,-0x40(%rsp)
movapd %xmm12,-0x60(%rsp)
movapd %xmm1,%xmm9
movapd %xmm5,-0x70(%rsp)
movapd %xmm15,%xmm13
movapd %xmm14,%xmm15
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movupd (%r8),%xmm0
movupd 0x10(%r8),%xmm3
movupd 0x20(%r8),%xmm8
movups 0x30(%r8),%xmm1
movaps %xmm1,-0x80(%rsp)
movsd  (%rax),%xmm1
movsd  0x8(%rax),%xmm5
movsd  0x10(%rax),%xmm4
unpcklpd %xmm1,%xmm1
movapd %xmm0,%xmm11
mulpd  %xmm1,%xmm11
addpd  %xmm2,%xmm11
movsd  0x18(%rax),%xmm6
mulpd  %xmm3,%xmm1
addpd  %xmm15,%xmm1
unpcklpd %xmm5,%xmm5
movapd %xmm0,%xmm12
mulpd  %xmm5,%xmm12
addpd  %xmm13,%xmm12
mulpd  %xmm3,%xmm5
addpd  %xmm9,%xmm5
unpcklpd %xmm4,%xmm4
movapd %xmm0,%xmm14
mulpd  %xmm4,%xmm14
addpd  -0x70(%rsp),%xmm14
mulpd  %xmm3,%xmm4
addpd  -0x60(%rsp),%xmm4
unpcklpd %xmm6,%xmm6
mulpd  %xmm6,%xmm0
addpd  %xmm7,%xmm0
movapd %xmm0,%xmm9
mulpd  %xmm3,%xmm6
addpd  -0x40(%rsp),%xmm6
movsd  0x20(%rax),%xmm3
unpcklpd %xmm3,%xmm3
movapd %xmm8,%xmm10
mulpd  %xmm3,%xmm10
addpd  %xmm11,%xmm10
movapd -0x80(%rsp),%xmm0
mulpd  %xmm0,%xmm3
addpd  %xmm1,%xmm3
movsd  0x28(%rax),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm8,%xmm11
mulpd  %xmm2,%xmm11
addpd  %xmm12,%xmm11
mulpd  %xmm0,%xmm2
movapd %xmm0,%xmm1
addpd  %xmm5,%xmm2
movsd  0x30(%rax),%xmm13
unpcklpd %xmm13,%xmm13
movapd %xmm8,%xmm12
mulpd  %xmm13,%xmm12
addpd  %xmm14,%xmm12
mulpd  %xmm0,%xmm13
addpd  %xmm4,%xmm13
movsd  0x38(%rax),%xmm7
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm8
addpd  %xmm9,%xmm8
mulpd  %xmm0,%xmm7
addpd  %xmm6,%xmm7
movupd 0x40(%r8),%xmm6
movupd 0x50(%r8),%xmm9
movsd  0x40(%rax),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm6,%xmm15
mulpd  %xmm1,%xmm15
addpd  %xmm10,%xmm15
mulpd  %xmm9,%xmm1
addpd  %xmm3,%xmm1
movsd  0x48(%rax),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm6,%xmm0
mulpd  %xmm4,%xmm0
addpd  %xmm11,%xmm0
movapd %xmm0,-0x50(%rsp)
mulpd  %xmm9,%xmm4
addpd  %xmm2,%xmm4
movsd  0x50(%rax),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm6,%xmm3
mulpd  %xmm5,%xmm3
addpd  %xmm12,%xmm3
mulpd  %xmm9,%xmm5
addpd  %xmm13,%xmm5
movsd  0x58(%rax),%xmm10
unpcklpd %xmm10,%xmm10
mulpd  %xmm10,%xmm6
addpd  %xmm8,%xmm6
mulpd  %xmm9,%xmm10
addpd  %xmm7,%xmm10
movupd 0x60(%r8),%xmm0
movupd 0x70(%r8),%xmm9
movsd  0x60(%rax),%xmm14
unpcklpd %xmm14,%xmm14
movapd %xmm0,%xmm2
mulpd  %xmm14,%xmm2
mulpd  %xmm9,%xmm14
movsd  0x68(%rax),%xmm11
unpcklpd %xmm11,%xmm11
movapd %xmm0,%xmm13
mulpd  %xmm11,%xmm13
mulpd  %xmm9,%xmm11
movsd  0x70(%rax),%xmm12
unpcklpd %xmm12,%xmm12
movapd %xmm0,%xmm7
mulpd  %xmm12,%xmm7
mulpd  %xmm9,%xmm12
movsd  0x78(%rax),%xmm8
unpcklpd %xmm8,%xmm8
mulpd  %xmm8,%xmm0
movapd %xmm0,-0x80(%rsp)
mulpd  %xmm9,%xmm8
movapd %xmm2,-0x10(%rsp)
movapd %xmm15,(%rsp)
addpd  %xmm15,%xmm2
movapd %xmm14,%xmm15
addpd  %xmm1,%xmm15
movapd %xmm13,-0x20(%rsp)
addpd  -0x50(%rsp),%xmm13
movapd %xmm11,%xmm9
addpd  %xmm4,%xmm9
movapd %xmm7,-0x30(%rsp)
addpd  %xmm3,%xmm7
movapd %xmm7,-0x70(%rsp)
movapd %xmm12,%xmm0
addpd  %xmm5,%xmm0
movapd %xmm0,-0x60(%rsp)
movapd -0x80(%rsp),%xmm0
addpd  %xmm6,%xmm0
movapd %xmm8,%xmm7
addpd  %xmm10,%xmm7
movapd %xmm7,-0x40(%rsp)
movapd %xmm0,%xmm7
add    $0x4,%edx
sub    $0xffffffffffffff80,%r8
sub    $0xffffffffffffff80,%rax
cmp    %edi,%edx
jl     1320 <kernel_dttmm_uu_nt_4x4_lib4+0x220>
addpd  %xmm10,%xmm8
movapd -0x80(%rsp),%xmm13
addpd  %xmm6,%xmm13
addpd  %xmm5,%xmm12
movapd -0x30(%rsp),%xmm5
addpd  %xmm3,%xmm5
addpd  %xmm4,%xmm11
movapd -0x20(%rsp),%xmm15
addpd  -0x50(%rsp),%xmm15
addpd  %xmm1,%xmm14
movapd -0x10(%rsp),%xmm0
addpd  (%rsp),%xmm0
lea    -0x80(%rax),%rdx
mov    %r8,%rsi
add    $0xffffffffffffff80,%rsi
movapd %xmm11,%xmm1
movapd %xmm8,%xmm10
jmp    162e <kernel_dttmm_uu_nt_4x4_lib4+0x52e>
movapd %xmm2,%xmm0
movsd  (%r8),%xmm2
movhpd 0x88(%rsi),%xmm2
movsd  (%rax),%xmm9
unpcklpd %xmm9,%xmm9
movapd %xmm2,%xmm8
mulpd  %xmm9,%xmm8
addpd  %xmm0,%xmm8
movupd 0x90(%rsi),%xmm3
mulpd  %xmm3,%xmm9
addpd  %xmm14,%xmm9
movsd  0x88(%rdx),%xmm7
unpcklpd %xmm7,%xmm7
movapd %xmm2,%xmm4
mulpd  %xmm7,%xmm4
addpd  %xmm15,%xmm4
movsd  0x90(%rdx),%xmm6
mulpd  %xmm3,%xmm7
addpd  %xmm1,%xmm7
unpcklpd %xmm6,%xmm6
movapd %xmm2,%xmm0
mulpd  %xmm6,%xmm0
addpd  %xmm5,%xmm0
movupd 0xa0(%rsi),%xmm5
mulpd  %xmm3,%xmm6
addpd  %xmm12,%xmm6
movsd  0x98(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm2
addpd  %xmm13,%xmm2
movupd 0xb0(%rsi),%xmm11
mulpd  %xmm3,%xmm1
movsd  0xa8(%rdx),%xmm3
addpd  %xmm10,%xmm1
unpcklpd %xmm3,%xmm3
movapd %xmm5,%xmm10
mulpd  %xmm3,%xmm10
addpd  %xmm4,%xmm10
mulpd  %xmm11,%xmm3
addpd  %xmm7,%xmm3
movsd  0xb0(%rdx),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm5,%xmm7
mulpd  %xmm4,%xmm7
addpd  %xmm0,%xmm7
mulpd  %xmm11,%xmm4
addpd  %xmm6,%xmm4
movsd  0xb8(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm5
addpd  %xmm2,%xmm5
movupd 0xc0(%rsi),%xmm6
mulpd  %xmm11,%xmm0
addpd  %xmm1,%xmm0
movsd  0xd0(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm6,%xmm2
mulpd  %xmm1,%xmm2
addpd  %xmm7,%xmm2
movupd 0xd0(%rsi),%xmm7
mulpd  %xmm7,%xmm1
addpd  %xmm4,%xmm1
movsd  0xd8(%rdx),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm6
addpd  %xmm5,%xmm6
mulpd  %xmm7,%xmm4
addpd  %xmm0,%xmm4
movupd 0xe0(%rsi),%xmm0
movsd  0xf8(%rdx),%xmm5
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm0
addpd  %xmm6,%xmm0
movupd 0xf0(%rsi),%xmm6
mulpd  %xmm6,%xmm5
addpd  %xmm4,%xmm5
movupd %xmm8,(%rcx)
movupd %xmm9,0x10(%rcx)
movupd %xmm10,0x20(%rcx)
movupd %xmm3,0x30(%rcx)
movupd %xmm2,0x40(%rcx)
movupd %xmm1,0x50(%rcx)
movupd %xmm0,0x60(%rcx)
movupd %xmm5,0x70(%rcx)
add    $0x18,%rsp
ret

LLVM IR (-O0):
define void @kernel_dttmm_uu_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** %7
%39 = getelementptr inbounds double, double* %38, i64 0
%40 = load double, double* %39
store double %40, double* %15
%41 = load double*, double** %7
%42 = getelementptr inbounds double, double* %41, i64 1
%43 = load double, double* %42
store double %43, double* %16
%44 = load double*, double** %7
%45 = getelementptr inbounds double, double* %44, i64 2
%46 = load double, double* %45
store double %46, double* %17
%47 = load double*, double** %7
%48 = getelementptr inbounds double, double* %47, i64 3
%49 = load double, double* %48
store double %49, double* %18
%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* %11
%55 = load double, double* %16
%56 = load double, double* %20
%57 = call double @llvm.fmuladd.f64(double %54, double %55, double %56)
store double %57, double* %20
%58 = load double, double* %11
%59 = load double, double* %17
%60 = load double, double* %21
%61 = call double @llvm.fmuladd.f64(double %58, double %59, double %60)
store double %61, double* %21
%62 = load double, double* %11
%63 = load double, double* %18
%64 = load double, double* %22
%65 = call double @llvm.fmuladd.f64(double %62, double %63, double %64)
store double %65, double* %22
%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** %7
%73 = getelementptr inbounds double, double* %72, i64 4
%74 = load double, double* %73
store double %74, double* %15
%75 = load double*, double** %7
%76 = getelementptr inbounds double, double* %75, i64 5
%77 = load double, double* %76
store double %77, double* %16
%78 = load double*, double** %7
%79 = getelementptr inbounds double, double* %78, i64 6
%80 = load double, double* %79
store double %80, double* %17
%81 = load double*, double** %7
%82 = getelementptr inbounds double, double* %81, i64 7
%83 = load double, double* %82
store double %83, double* %18
%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* %11
%93 = load double, double* %16
%94 = load double, double* %20
%95 = call double @llvm.fmuladd.f64(double %92, double %93, double %94)
store double %95, double* %20
%96 = load double, double* %12
%97 = load double, double* %16
%98 = load double, double* %24
%99 = call double @llvm.fmuladd.f64(double %96, double %97, double %98)
store double %99, double* %24
%100 = load double, double* %11
%101 = load double, double* %17
%102 = load double, double* %21
%103 = call double @llvm.fmuladd.f64(double %100, double %101, double %102)
store double %103, double* %21
%104 = load double, double* %12
%105 = load double, double* %17
%106 = load double, double* %25
%107 = call double @llvm.fmuladd.f64(double %104, double %105, double %106)
store double %107, double* %25
%108 = load double, double* %11
%109 = load double, double* %18
%110 = load double, double* %22
%111 = call double @llvm.fmuladd.f64(double %108, double %109, double %110)
store double %111, double* %22
%112 = load double, double* %12
%113 = load double, double* %18
%114 = load double, double* %26
%115 = call double @llvm.fmuladd.f64(double %112, double %113, double %114)
store double %115, double* %26
%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** %7
%126 = getelementptr inbounds double, double* %125, i64 8
%127 = load double, double* %126
store double %127, double* %15
%128 = load double*, double** %7
%129 = getelementptr inbounds double, double* %128, i64 9
%130 = load double, double* %129
store double %130, double* %16
%131 = load double*, double** %7
%132 = getelementptr inbounds double, double* %131, i64 10
%133 = load double, double* %132
store double %133, double* %17
%134 = load double*, double** %7
%135 = getelementptr inbounds double, double* %134, i64 11
%136 = load double, double* %135
store double %136, double* %18
%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* %11
%150 = load double, double* %16
%151 = load double, double* %20
%152 = call double @llvm.fmuladd.f64(double %149, double %150, double %151)
store double %152, double* %20
%153 = load double, double* %12
%154 = load double, double* %16
%155 = load double, double* %24
%156 = call double @llvm.fmuladd.f64(double %153, double %154, double %155)
store double %156, double* %24
%157 = load double, double* %13
%158 = load double, double* %16
%159 = load double, double* %28
%160 = call double @llvm.fmuladd.f64(double %157, double %158, double %159)
store double %160, double* %28
%161 = load double, double* %11
%162 = load double, double* %17
%163 = load double, double* %21
%164 = call double @llvm.fmuladd.f64(double %161, double %162, double %163)
store double %164, double* %21
%165 = load double, double* %12
%166 = load double, double* %17
%167 = load double, double* %25
%168 = call double @llvm.fmuladd.f64(double %165, double %166, double %167)
store double %168, double* %25
%169 = load double, double* %13
%170 = load double, double* %17
%171 = load double, double* %29
%172 = call double @llvm.fmuladd.f64(double %169, double %170, double %171)
store double %172, double* %29
%173 = load double, double* %11
%174 = load double, double* %18
%175 = load double, double* %22
%176 = call double @llvm.fmuladd.f64(double %173, double %174, double %175)
store double %176, double* %22
%177 = load double, double* %12
%178 = load double, double* %18
%179 = load double, double* %26
%180 = call double @llvm.fmuladd.f64(double %177, double %178, double %179)
store double %180, double* %26
%181 = load double, double* %13
%182 = load double, double* %18
%183 = load double, double* %30
%184 = call double @llvm.fmuladd.f64(double %181, double %182, double %183)
store double %184, double* %30
%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 4
%733 = load double, double* %732
store double %733, double* %11
%734 = load double*, double** %6
%735 = getelementptr inbounds double, double* %734, i64 5
%736 = load double, double* %735
store double %736, double* %12
%737 = load double*, double** %6
%738 = getelementptr inbounds double, double* %737, i64 6
%739 = load double, double* %738
store double %739, double* %13
%740 = load double*, double** %6
%741 = getelementptr inbounds double, double* %740, i64 7
%742 = load double, double* %741
store double %742, double* %14
%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* %11
%753 = load double, double* %16
%754 = load double, double* %20
%755 = call double @llvm.fmuladd.f64(double %752, double %753, double %754)
store double %755, double* %20
%756 = load double, double* %12
%757 = load double, double* %16
%758 = load double, double* %24
%759 = call double @llvm.fmuladd.f64(double %756, double %757, double %758)
store double %759, double* %24
%760 = load double, double* %13
%761 = load double, double* %16
%762 = load double, double* %28
%763 = call double @llvm.fmuladd.f64(double %760, double %761, double %762)
store double %763, double* %28
%764 = load double, double* %14
%765 = load double, double* %16
%766 = load double, double* %32
%767 = call double @llvm.fmuladd.f64(double %764, double %765, double %766)
store double %767, double* %32
%768 = load double, double* %11
%769 = load double, double* %17
%770 = load double, double* %21
%771 = call double @llvm.fmuladd.f64(double %768, double %769, double %770)
store double %771, double* %21
%772 = load double, double* %12
%773 = load double, double* %17
%774 = load double, double* %25
%775 = call double @llvm.fmuladd.f64(double %772, double %773, double %774)
store double %775, double* %25
%776 = load double, double* %13
%777 = load double, double* %17
%778 = load double, double* %29
%779 = call double @llvm.fmuladd.f64(double %776, double %777, double %778)
store double %779, double* %29
%780 = load double, double* %14
%781 = load double, double* %17
%782 = load double, double* %33
%783 = call double @llvm.fmuladd.f64(double %780, double %781, double %782)
store double %783, double* %33
%784 = load double, double* %11
%785 = load double, double* %18
%786 = load double, double* %22
%787 = call double @llvm.fmuladd.f64(double %784, double %785, double %786)
store double %787, double* %22
%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 8
%802 = load double, double* %801
store double %802, double* %11
%803 = load double*, double** %6
%804 = getelementptr inbounds double, double* %803, i64 9
%805 = load double, double* %804
store double %805, double* %12
%806 = load double*, double** %6
%807 = getelementptr inbounds double, double* %806, i64 10
%808 = load double, double* %807
store double %808, double* %13
%809 = load double*, double** %6
%810 = getelementptr inbounds double, double* %809, i64 11
%811 = load double, double* %810
store double %811, double* %14
%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* %11
%819 = load double, double* %17
%820 = load double, double* %21
%821 = call double @llvm.fmuladd.f64(double %818, double %819, double %820)
store double %821, double* %21
%822 = load double, double* %12
%823 = load double, double* %17
%824 = load double, double* %25
%825 = call double @llvm.fmuladd.f64(double %822, double %823, double %824)
store double %825, double* %25
%826 = load double, double* %13
%827 = load double, double* %17
%828 = load double, double* %29
%829 = call double @llvm.fmuladd.f64(double %826, double %827, double %828)
store double %829, double* %29
%830 = load double, double* %14
%831 = load double, double* %17
%832 = load double, double* %33
%833 = call double @llvm.fmuladd.f64(double %830, double %831, double %832)
store double %833, double* %33
%834 = load double, double* %11
%835 = load double, double* %18
%836 = load double, double* %22
%837 = call double @llvm.fmuladd.f64(double %834, double %835, double %836)
store double %837, double* %22
%838 = load double, double* %12
%839 = load double, double* %18
%840 = load double, double* %26
%841 = call double @llvm.fmuladd.f64(double %838, double %839, double %840)
store double %841, double* %26
%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 12
%852 = load double, double* %851
store double %852, double* %11
%853 = load double*, double** %6
%854 = getelementptr inbounds double, double* %853, i64 13
%855 = load double, double* %854
store double %855, double* %12
%856 = load double*, double** %6
%857 = getelementptr inbounds double, double* %856, i64 14
%858 = load double, double* %857
store double %858, double* %13
%859 = load double*, double** %6
%860 = getelementptr inbounds double, double* %859, i64 15
%861 = load double, double* %860
store double %861, double* %14
%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* %11
%866 = load double, double* %18
%867 = load double, double* %22
%868 = call double @llvm.fmuladd.f64(double %865, double %866, double %867)
store double %868, double* %22
%869 = load double, double* %12
%870 = load double, double* %18
%871 = load double, double* %26
%872 = call double @llvm.fmuladd.f64(double %869, double %870, double %871)
store double %872, double* %26
%873 = load double, double* %13
%874 = load double, double* %18
%875 = load double, double* %30
%876 = call double @llvm.fmuladd.f64(double %873, double %874, double %875)
store double %876, double* %30
%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_uu_nt_4x4_lib4(i32 %0, double* %1, double* %2, double* nocapture writeonly %3) {
%5 = load double, double* %1
%6 = load double, double* %2
%7 = getelementptr inbounds double, double* %2, i64 1
%8 = load double, double* %7
%9 = getelementptr inbounds double, double* %2, i64 2
%10 = load double, double* %9
%11 = getelementptr inbounds double, double* %2, i64 3
%12 = load double, double* %11
%13 = tail call double @llvm.fmuladd.f64(double %5, double %6, double 0.000000e+00)
%14 = tail call double @llvm.fmuladd.f64(double %5, double %8, double 0.000000e+00)
%15 = tail call double @llvm.fmuladd.f64(double %5, double %10, double 0.000000e+00)
%16 = tail call double @llvm.fmuladd.f64(double %5, double %12, double 0.000000e+00)
%17 = getelementptr inbounds double, double* %1, i64 4
%18 = bitcast double* %17 to <2 x double>*
%19 = load <2 x double>, <2 x double>* %18
%20 = getelementptr inbounds double, double* %2, i64 4
%21 = load double, double* %20
%22 = getelementptr inbounds double, double* %2, i64 5
%23 = load double, double* %22
%24 = getelementptr inbounds double, double* %2, i64 6
%25 = load double, double* %24
%26 = getelementptr inbounds double, double* %2, i64 7
%27 = load double, double* %26
%28 = insertelement <2 x double> poison, double %21, i64 0
%29 = shufflevector <2 x double> %28, <2 x double> poison, <2 x i32> zeroinitializer
%30 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %13, i64 0
%31 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %19, <2 x double> %29, <2 x double> %30)
%32 = insertelement <2 x double> poison, double %23, i64 0
%33 = shufflevector <2 x double> %32, <2 x double> poison, <2 x i32> zeroinitializer
%34 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %14, i64 0
%35 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %19, <2 x double> %33, <2 x double> %34)
%36 = insertelement <2 x double> poison, double %25, i64 0
%37 = shufflevector <2 x double> %36, <2 x double> poison, <2 x i32> zeroinitializer
%38 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %15, i64 0
%39 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %19, <2 x double> %37, <2 x double> %38)
%40 = insertelement <2 x double> poison, double %27, i64 0
%41 = shufflevector <2 x double> %40, <2 x double> poison, <2 x i32> zeroinitializer
%42 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %16, i64 0
%43 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %19, <2 x double> %41, <2 x double> %42)
%44 = getelementptr inbounds double, double* %1, i64 8
%45 = bitcast double* %44 to <2 x double>*
%46 = load <2 x double>, <2 x double>* %45
%47 = getelementptr inbounds double, double* %1, i64 10
%48 = load double, double* %47
%49 = getelementptr inbounds double, double* %2, i64 8
%50 = load double, double* %49
%51 = getelementptr inbounds double, double* %2, i64 9
%52 = load double, double* %51
%53 = getelementptr inbounds double, double* %2, i64 10
%54 = load double, double* %53
%55 = getelementptr inbounds double, double* %2, i64 11
%56 = load double, double* %55
%57 = insertelement <2 x double> poison, double %50, i64 0
%58 = shufflevector <2 x double> %57, <2 x double> poison, <2 x i32> zeroinitializer
%59 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %46, <2 x double> %58, <2 x double> %31)
%60 = tail call double @llvm.fmuladd.f64(double %48, double %50, double 0.000000e+00)
%61 = insertelement <2 x double> poison, double %52, i64 0
%62 = shufflevector <2 x double> %61, <2 x double> poison, <2 x i32> zeroinitializer
%63 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %46, <2 x double> %62, <2 x double> %35)
%64 = tail call double @llvm.fmuladd.f64(double %48, double %52, double 0.000000e+00)
%65 = insertelement <2 x double> poison, double %54, i64 0
%66 = shufflevector <2 x double> %65, <2 x double> poison, <2 x i32> zeroinitializer
%67 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %46, <2 x double> %66, <2 x double> %39)
%68 = tail call double @llvm.fmuladd.f64(double %48, double %54, double 0.000000e+00)
%69 = insertelement <2 x double> poison, double %56, i64 0
%70 = shufflevector <2 x double> %69, <2 x double> poison, <2 x i32> zeroinitializer
%71 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %46, <2 x double> %70, <2 x double> %43)
%72 = tail call double @llvm.fmuladd.f64(double %48, double %56, double 0.000000e+00)
%73 = getelementptr inbounds double, double* %1, i64 12
%74 = bitcast double* %73 to <2 x double>*
%75 = load <2 x double>, <2 x double>* %74
%76 = getelementptr inbounds double, double* %1, i64 14
%77 = bitcast double* %76 to <2 x double>*
%78 = load <2 x double>, <2 x double>* %77
%79 = getelementptr inbounds double, double* %2, i64 12
%80 = load double, double* %79
%81 = getelementptr inbounds double, double* %2, i64 13
%82 = load double, double* %81
%83 = getelementptr inbounds double, double* %2, i64 14
%84 = load double, double* %83
%85 = getelementptr inbounds double, double* %2, i64 15
%86 = load double, double* %85
%87 = insertelement <2 x double> poison, double %80, i64 0
%88 = shufflevector <2 x double> %87, <2 x double> poison, <2 x i32> zeroinitializer
%89 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %75, <2 x double> %88, <2 x double> %59)
%90 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %60, i64 0
%91 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %78, <2 x double> %88, <2 x double> %90)
%92 = insertelement <2 x double> poison, double %82, i64 0
%93 = shufflevector <2 x double> %92, <2 x double> poison, <2 x i32> zeroinitializer
%94 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %75, <2 x double> %93, <2 x double> %63)
%95 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %64, i64 0
%96 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %78, <2 x double> %93, <2 x double> %95)
%97 = insertelement <2 x double> poison, double %84, i64 0
%98 = shufflevector <2 x double> %97, <2 x double> poison, <2 x i32> zeroinitializer
%99 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %75, <2 x double> %98, <2 x double> %67)
%100 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %68, i64 0
%101 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %78, <2 x double> %98, <2 x double> %100)
%102 = insertelement <2 x double> poison, double %86, i64 0
%103 = shufflevector <2 x double> %102, <2 x double> poison, <2 x i32> zeroinitializer
%104 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %75, <2 x double> %103, <2 x double> %71)
%105 = insertelement <2 x double> <double poison, double 0.000000e+00>, double %72, i64 0
%106 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %78, <2 x double> %103, <2 x double> %105)
%107 = add nsw i32 %0, -4
%108 = getelementptr inbounds double, double* %1, i64 16
%109 = getelementptr inbounds double, double* %2, i64 16
%110 = icmp sgt i32 %0, 8
br i1 %110, label %111, label %280
111: ; preds = %4, %111
%112 = phi double* [ %245, %111 ], [ %109, %4 ]
%113 = phi double* [ %244, %111 ], [ %108, %4 ]
%114 = phi i32 [ %243, %111 ], [ 4, %4 ]
%115 = phi double* [ %113, %111 ], [ %1, %4 ]
%116 = phi double* [ %112, %111 ], [ %2, %4 ]
%117 = phi <2 x double> [ %229, %111 ], [ %89, %4 ]
%118 = phi <2 x double> [ %230, %111 ], [ %91, %4 ]
%119 = phi <2 x double> [ %233, %111 ], [ %94, %4 ]
%120 = phi <2 x double> [ %234, %111 ], [ %96, %4 ]
%121 = phi <2 x double> [ %237, %111 ], [ %99, %4 ]
%122 = phi <2 x double> [ %238, %111 ], [ %101, %4 ]
%123 = phi <2 x double> [ %241, %111 ], [ %104, %4 ]
%124 = phi <2 x double> [ %242, %111 ], [ %106, %4 ]
%125 = bitcast double* %113 to <2 x double>*
%126 = load <2 x double>, <2 x double>* %125
%127 = getelementptr inbounds double, double* %115, i64 18
%128 = bitcast double* %127 to <2 x double>*
%129 = load <2 x double>, <2 x double>* %128
%130 = load double, double* %112
%131 = getelementptr inbounds double, double* %116, i64 17
%132 = load double, double* %131
%133 = getelementptr inbounds double, double* %116, i64 18
%134 = load double, double* %133
%135 = getelementptr inbounds double, double* %116, i64 19
%136 = load double, double* %135
%137 = insertelement <2 x double> poison, double %130, i64 0
%138 = shufflevector <2 x double> %137, <2 x double> poison, <2 x i32> zeroinitializer
%139 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %138, <2 x double> %117)
%140 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %138, <2 x double> %118)
%141 = insertelement <2 x double> poison, double %132, i64 0
%142 = shufflevector <2 x double> %141, <2 x double> poison, <2 x i32> zeroinitializer
%143 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %142, <2 x double> %119)
%144 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %142, <2 x double> %120)
%145 = insertelement <2 x double> poison, double %134, i64 0
%146 = shufflevector <2 x double> %145, <2 x double> poison, <2 x i32> zeroinitializer
%147 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %146, <2 x double> %121)
%148 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %146, <2 x double> %122)
%149 = insertelement <2 x double> poison, double %136, i64 0
%150 = shufflevector <2 x double> %149, <2 x double> poison, <2 x i32> zeroinitializer
%151 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %150, <2 x double> %123)
%152 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %150, <2 x double> %124)
%153 = getelementptr inbounds double, double* %115, i64 20
%154 = bitcast double* %153 to <2 x double>*
%155 = load <2 x double>, <2 x double>* %154
%156 = getelementptr inbounds double, double* %115, i64 22
%157 = bitcast double* %156 to <2 x double>*
%158 = load <2 x double>, <2 x double>* %157
%159 = getelementptr inbounds double, double* %116, i64 20
%160 = load double, double* %159
%161 = getelementptr inbounds double, double* %116, i64 21
%162 = load double, double* %161
%163 = getelementptr inbounds double, double* %116, i64 22
%164 = load double, double* %163
%165 = getelementptr inbounds double, double* %116, i64 23
%166 = load double, double* %165
%167 = insertelement <2 x double> poison, double %160, i64 0
%168 = shufflevector <2 x double> %167, <2 x double> poison, <2 x i32> zeroinitializer
%169 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %168, <2 x double> %139)
%170 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %168, <2 x double> %140)
%171 = insertelement <2 x double> poison, double %162, i64 0
%172 = shufflevector <2 x double> %171, <2 x double> poison, <2 x i32> zeroinitializer
%173 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %172, <2 x double> %143)
%174 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %172, <2 x double> %144)
%175 = insertelement <2 x double> poison, double %164, i64 0
%176 = shufflevector <2 x double> %175, <2 x double> poison, <2 x i32> zeroinitializer
%177 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %176, <2 x double> %147)
%178 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %176, <2 x double> %148)
%179 = insertelement <2 x double> poison, double %166, i64 0
%180 = shufflevector <2 x double> %179, <2 x double> poison, <2 x i32> zeroinitializer
%181 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %180, <2 x double> %151)
%182 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %180, <2 x double> %152)
%183 = getelementptr inbounds double, double* %115, i64 24
%184 = bitcast double* %183 to <2 x double>*
%185 = load <2 x double>, <2 x double>* %184
%186 = getelementptr inbounds double, double* %115, i64 26
%187 = bitcast double* %186 to <2 x double>*
%188 = load <2 x double>, <2 x double>* %187
%189 = getelementptr inbounds double, double* %116, i64 24
%190 = load double, double* %189
%191 = getelementptr inbounds double, double* %116, i64 25
%192 = load double, double* %191
%193 = getelementptr inbounds double, double* %116, i64 26
%194 = load double, double* %193
%195 = getelementptr inbounds double, double* %116, i64 27
%196 = load double, double* %195
%197 = insertelement <2 x double> poison, double %190, i64 0
%198 = shufflevector <2 x double> %197, <2 x double> poison, <2 x i32> zeroinitializer
%199 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %198, <2 x double> %169)
%200 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %198, <2 x double> %170)
%201 = insertelement <2 x double> poison, double %192, i64 0
%202 = shufflevector <2 x double> %201, <2 x double> poison, <2 x i32> zeroinitializer
%203 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %202, <2 x double> %173)
%204 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %202, <2 x double> %174)
%205 = insertelement <2 x double> poison, double %194, i64 0
%206 = shufflevector <2 x double> %205, <2 x double> poison, <2 x i32> zeroinitializer
%207 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %206, <2 x double> %177)
%208 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %206, <2 x double> %178)
%209 = insertelement <2 x double> poison, double %196, i64 0
%210 = shufflevector <2 x double> %209, <2 x double> poison, <2 x i32> zeroinitializer
%211 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %210, <2 x double> %181)
%212 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %210, <2 x double> %182)
%213 = getelementptr inbounds double, double* %115, i64 28
%214 = bitcast double* %213 to <2 x double>*
%215 = load <2 x double>, <2 x double>* %214
%216 = getelementptr inbounds double, double* %115, i64 30
%217 = bitcast double* %216 to <2 x double>*
%218 = load <2 x double>, <2 x double>* %217
%219 = getelementptr inbounds double, double* %116, i64 28
%220 = load double, double* %219
%221 = getelementptr inbounds double, double* %116, i64 29
%222 = load double, double* %221
%223 = getelementptr inbounds double, double* %116, i64 30
%224 = load double, double* %223
%225 = getelementptr inbounds double, double* %116, i64 31
%226 = load double, double* %225
%227 = insertelement <2 x double> poison, double %220, i64 0
%228 = shufflevector <2 x double> %227, <2 x double> poison, <2 x i32> zeroinitializer
%229 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %228, <2 x double> %199)
%230 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %228, <2 x double> %200)
%231 = insertelement <2 x double> poison, double %222, i64 0
%232 = shufflevector <2 x double> %231, <2 x double> poison, <2 x i32> zeroinitializer
%233 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %232, <2 x double> %203)
%234 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %232, <2 x double> %204)
%235 = insertelement <2 x double> poison, double %224, i64 0
%236 = shufflevector <2 x double> %235, <2 x double> poison, <2 x i32> zeroinitializer
%237 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %236, <2 x double> %207)
%238 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %236, <2 x double> %208)
%239 = insertelement <2 x double> poison, double %226, i64 0
%240 = shufflevector <2 x double> %239, <2 x double> poison, <2 x i32> zeroinitializer
%241 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %240, <2 x double> %211)
%242 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %240, <2 x double> %212)
%243 = add nuw nsw i32 %114, 4
%244 = getelementptr inbounds double, double* %113, i64 16
%245 = getelementptr inbounds double, double* %112, i64 16
%246 = icmp slt i32 %243, %107
br i1 %246, label %111, label %247
247: ; preds = %111
%248 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %150, <2 x double> %124)
%249 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %180, <2 x double> %248)
%250 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %210, <2 x double> %249)
%251 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %240, <2 x double> %250)
%252 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %150, <2 x double> %123)
%253 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %180, <2 x double> %252)
%254 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %210, <2 x double> %253)
%255 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %240, <2 x double> %254)
%256 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %146, <2 x double> %122)
%257 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %176, <2 x double> %256)
%258 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %206, <2 x double> %257)
%259 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %236, <2 x double> %258)
%260 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %146, <2 x double> %121)
%261 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %176, <2 x double> %260)
%262 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %206, <2 x double> %261)
%263 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %236, <2 x double> %262)
%264 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %142, <2 x double> %120)
%265 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %172, <2 x double> %264)
%266 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %202, <2 x double> %265)
%267 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %232, <2 x double> %266)
%268 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %142, <2 x double> %119)
%269 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %172, <2 x double> %268)
%270 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %202, <2 x double> %269)
%271 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %232, <2 x double> %270)
%272 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %129, <2 x double> %138, <2 x double> %118)
%273 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %158, <2 x double> %168, <2 x double> %272)
%274 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %188, <2 x double> %198, <2 x double> %273)
%275 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %218, <2 x double> %228, <2 x double> %274)
%276 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %126, <2 x double> %138, <2 x double> %117)
%277 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %155, <2 x double> %168, <2 x double> %276)
%278 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %185, <2 x double> %198, <2 x double> %277)
%279 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %215, <2 x double> %228, <2 x double> %278)
br label %280
280: ; preds = %247, %4
%281 = phi double* [ %2, %4 ], [ %112, %247 ]
%282 = phi double* [ %1, %4 ], [ %113, %247 ]
%283 = phi double* [ %108, %4 ], [ %244, %247 ]
%284 = phi double* [ %109, %4 ], [ %245, %247 ]
%285 = phi <2 x double> [ %89, %4 ], [ %279, %247 ]
%286 = phi <2 x double> [ %91, %4 ], [ %275, %247 ]
%287 = phi <2 x double> [ %94, %4 ], [ %271, %247 ]
%288 = phi <2 x double> [ %96, %4 ], [ %267, %247 ]
%289 = phi <2 x double> [ %99, %4 ], [ %263, %247 ]
%290 = phi <2 x double> [ %101, %4 ], [ %259, %247 ]
%291 = phi <2 x double> [ %104, %4 ], [ %255, %247 ]
%292 = phi <2 x double> [ %106, %4 ], [ %251, %247 ]
%293 = load double, double* %283
%294 = getelementptr inbounds double, double* %282, i64 17
%295 = load double, double* %294
%296 = getelementptr inbounds double, double* %282, i64 18
%297 = bitcast double* %296 to <2 x double>*
%298 = load <2 x double>, <2 x double>* %297
%299 = load double, double* %284
%300 = getelementptr inbounds double, double* %281, i64 17
%301 = load double, double* %300
%302 = getelementptr inbounds double, double* %281, i64 18
%303 = load double, double* %302
%304 = getelementptr inbounds double, double* %281, i64 19
%305 = load double, double* %304
%306 = insertelement <2 x double> poison, double %293, i64 0
%307 = insertelement <2 x double> %306, double %295, i64 1
%308 = insertelement <2 x double> poison, double %299, i64 0
%309 = shufflevector <2 x double> %308, <2 x double> poison, <2 x i32> zeroinitializer
%310 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %307, <2 x double> %309, <2 x double> %285)
%311 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %298, <2 x double> %309, <2 x double> %286)
%312 = insertelement <2 x double> poison, double %301, i64 0
%313 = shufflevector <2 x double> %312, <2 x double> poison, <2 x i32> zeroinitializer
%314 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %307, <2 x double> %313, <2 x double> %287)
%315 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %298, <2 x double> %313, <2 x double> %288)
%316 = insertelement <2 x double> poison, double %303, i64 0
%317 = shufflevector <2 x double> %316, <2 x double> poison, <2 x i32> zeroinitializer
%318 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %307, <2 x double> %317, <2 x double> %289)
%319 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %298, <2 x double> %317, <2 x double> %290)
%320 = insertelement <2 x double> poison, double %305, i64 0
%321 = shufflevector <2 x double> %320, <2 x double> poison, <2 x i32> zeroinitializer
%322 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %307, <2 x double> %321, <2 x double> %291)
%323 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %298, <2 x double> %321, <2 x double> %292)
%324 = getelementptr inbounds double, double* %282, i64 20
%325 = bitcast double* %324 to <2 x double>*
%326 = load <2 x double>, <2 x double>* %325
%327 = getelementptr inbounds double, double* %282, i64 22
%328 = bitcast double* %327 to <2 x double>*
%329 = load <2 x double>, <2 x double>* %328
%330 = getelementptr inbounds double, double* %281, i64 21
%331 = load double, double* %330
%332 = getelementptr inbounds double, double* %281, i64 22
%333 = load double, double* %332
%334 = getelementptr inbounds double, double* %281, i64 23
%335 = load double, double* %334
%336 = insertelement <2 x double> poison, double %331, i64 0
%337 = shufflevector <2 x double> %336, <2 x double> poison, <2 x i32> zeroinitializer
%338 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %326, <2 x double> %337, <2 x double> %314)
%339 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %337, <2 x double> %315)
%340 = insertelement <2 x double> poison, double %333, i64 0
%341 = shufflevector <2 x double> %340, <2 x double> poison, <2 x i32> zeroinitializer
%342 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %326, <2 x double> %341, <2 x double> %318)
%343 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %341, <2 x double> %319)
%344 = insertelement <2 x double> poison, double %335, i64 0
%345 = shufflevector <2 x double> %344, <2 x double> poison, <2 x i32> zeroinitializer
%346 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %326, <2 x double> %345, <2 x double> %322)
%347 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %329, <2 x double> %345, <2 x double> %323)
%348 = getelementptr inbounds double, double* %282, i64 24
%349 = bitcast double* %348 to <2 x double>*
%350 = load <2 x double>, <2 x double>* %349
%351 = getelementptr inbounds double, double* %282, i64 26
%352 = bitcast double* %351 to <2 x double>*
%353 = load <2 x double>, <2 x double>* %352
%354 = getelementptr inbounds double, double* %281, i64 26
%355 = load double, double* %354
%356 = getelementptr inbounds double, double* %281, i64 27
%357 = load double, double* %356
%358 = insertelement <2 x double> poison, double %355, i64 0
%359 = shufflevector <2 x double> %358, <2 x double> poison, <2 x i32> zeroinitializer
%360 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %350, <2 x double> %359, <2 x double> %342)
%361 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %353, <2 x double> %359, <2 x double> %343)
%362 = insertelement <2 x double> poison, double %357, i64 0
%363 = shufflevector <2 x double> %362, <2 x double> poison, <2 x i32> zeroinitializer
%364 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %350, <2 x double> %363, <2 x double> %346)
%365 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %353, <2 x double> %363, <2 x double> %347)
%366 = getelementptr inbounds double, double* %282, i64 28
%367 = bitcast double* %366 to <2 x double>*
%368 = load <2 x double>, <2 x double>* %367
%369 = getelementptr inbounds double, double* %282, i64 30
%370 = bitcast double* %369 to <2 x double>*
%371 = load <2 x double>, <2 x double>* %370
%372 = getelementptr inbounds double, double* %281, i64 31
%373 = load double, double* %372
%374 = insertelement <2 x double> poison, double %373, i64 0
%375 = shufflevector <2 x double> %374, <2 x double> poison, <2 x i32> zeroinitializer
%376 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %368, <2 x double> %375, <2 x double> %364)
%377 = call <2 x double> @llvm.fmuladd.v2f64(<2 x double> %371, <2 x double> %375, <2 x double> %365)
%378 = bitcast double* %3 to <2 x double>*
store <2 x double> %310, <2 x double>* %378
%379 = getelementptr inbounds double, double* %3, i64 2
%380 = bitcast double* %379 to <2 x double>*
store <2 x double> %311, <2 x double>* %380
%381 = getelementptr inbounds double, double* %3, i64 4
%382 = bitcast double* %381 to <2 x double>*
store <2 x double> %338, <2 x double>* %382
%383 = getelementptr inbounds double, double* %3, i64 6
%384 = bitcast double* %383 to <2 x double>*
store <2 x double> %339, <2 x double>* %384
%385 = getelementptr inbounds double, double* %3, i64 8
%386 = bitcast double* %385 to <2 x double>*
store <2 x double> %360, <2 x double>* %386
%387 = getelementptr inbounds double, double* %3, i64 10
%388 = bitcast double* %387 to <2 x double>*
store <2 x double> %361, <2 x double>* %388
%389 = getelementptr inbounds double, double* %3, i64 12
%390 = bitcast double* %389 to <2 x double>*
store <2 x double> %376, <2 x double>* %390
%391 = getelementptr inbounds double, double* %3, i64 14
%392 = bitcast double* %391 to <2 x double>*
store <2 x double> %377, <2 x double>* %392
ret void
}