void kernel_dtrsm_nn_ru_4x4_lib4(int kmax, double *A, double *B, int sdb,
                                 int alg, double *C, double *D, double *E,
                                 int use_inv_diag_E, double *inv_diag_E) {
  const int bs = 4;
  int k;
  double tmp, a_0, a_1, a_2, a_3, b_0, b_1, b_2, b_3, e_00, e_01, e_02, e_03,
      e_11, e_12, e_13, e_22, e_23, e_33,
      d_00 = 0, d_01 = 0, d_02 = 0, d_03 = 0, d_10 = 0, d_11 = 0, d_12 = 0,
      d_13 = 0, d_20 = 0, d_21 = 0, d_22 = 0, d_23 = 0, d_30 = 0, d_31 = 0,
      d_32 = 0, d_33 = 0;
  if (kmax <= 0)
    goto add;
  for (k = 0; k < kmax - 3; 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[0 + bs * 1];
    b_2 = B[0 + bs * 2];
    b_3 = B[0 + bs * 3];
    d_00 -= a_0 * b_0;
    d_10 -= a_1 * b_0;
    d_20 -= a_2 * b_0;
    d_30 -= a_3 * b_0;
    d_01 -= a_0 * b_1;
    d_11 -= a_1 * b_1;
    d_21 -= a_2 * b_1;
    d_31 -= a_3 * b_1;
    d_02 -= a_0 * b_2;
    d_12 -= a_1 * b_2;
    d_22 -= a_2 * b_2;
    d_32 -= a_3 * b_2;
    d_03 -= a_0 * b_3;
    d_13 -= a_1 * b_3;
    d_23 -= a_2 * b_3;
    d_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[1 + bs * 0];
    b_1 = B[1 + bs * 1];
    b_2 = B[1 + bs * 2];
    b_3 = B[1 + bs * 3];
    d_00 -= a_0 * b_0;
    d_10 -= a_1 * b_0;
    d_20 -= a_2 * b_0;
    d_30 -= a_3 * b_0;
    d_01 -= a_0 * b_1;
    d_11 -= a_1 * b_1;
    d_21 -= a_2 * b_1;
    d_31 -= a_3 * b_1;
    d_02 -= a_0 * b_2;
    d_12 -= a_1 * b_2;
    d_22 -= a_2 * b_2;
    d_32 -= a_3 * b_2;
    d_03 -= a_0 * b_3;
    d_13 -= a_1 * b_3;
    d_23 -= a_2 * b_3;
    d_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[2 + bs * 0];
    b_1 = B[2 + bs * 1];
    b_2 = B[2 + bs * 2];
    b_3 = B[2 + bs * 3];
    d_00 -= a_0 * b_0;
    d_10 -= a_1 * b_0;
    d_20 -= a_2 * b_0;
    d_30 -= a_3 * b_0;
    d_01 -= a_0 * b_1;
    d_11 -= a_1 * b_1;
    d_21 -= a_2 * b_1;
    d_31 -= a_3 * b_1;
    d_02 -= a_0 * b_2;
    d_12 -= a_1 * b_2;
    d_22 -= a_2 * b_2;
    d_32 -= a_3 * b_2;
    d_03 -= a_0 * b_3;
    d_13 -= a_1 * b_3;
    d_23 -= a_2 * b_3;
    d_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[3 + bs * 0];
    b_1 = B[3 + bs * 1];
    b_2 = B[3 + bs * 2];
    b_3 = B[3 + bs * 3];
    d_00 -= a_0 * b_0;
    d_10 -= a_1 * b_0;
    d_20 -= a_2 * b_0;
    d_30 -= a_3 * b_0;
    d_01 -= a_0 * b_1;
    d_11 -= a_1 * b_1;
    d_21 -= a_2 * b_1;
    d_31 -= a_3 * b_1;
    d_02 -= a_0 * b_2;
    d_12 -= a_1 * b_2;
    d_22 -= a_2 * b_2;
    d_32 -= a_3 * b_2;
    d_03 -= a_0 * b_3;
    d_13 -= a_1 * b_3;
    d_23 -= a_2 * b_3;
    d_33 -= a_3 * b_3;
    A += 16;
    B += 4 * sdb;
  }
  for (; k < kmax; k++) {
    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[0 + bs * 1];
    b_2 = B[0 + bs * 2];
    b_3 = B[0 + bs * 3];
    d_00 -= a_0 * b_0;
    d_10 -= a_1 * b_0;
    d_20 -= a_2 * b_0;
    d_30 -= a_3 * b_0;
    d_01 -= a_0 * b_1;
    d_11 -= a_1 * b_1;
    d_21 -= a_2 * b_1;
    d_31 -= a_3 * b_1;
    d_02 -= a_0 * b_2;
    d_12 -= a_1 * b_2;
    d_22 -= a_2 * b_2;
    d_32 -= a_3 * b_2;
    d_03 -= a_0 * b_3;
    d_13 -= a_1 * b_3;
    d_23 -= a_2 * b_3;
    d_33 -= a_3 * b_3;
    A += 4;
    B += 1;
  }
add:
  if (alg != 0) {
    d_00 += C[0 + bs * 0];
    d_10 += C[1 + bs * 0];
    d_20 += C[2 + bs * 0];
    d_30 += C[3 + bs * 0];
    d_01 += C[0 + bs * 1];
    d_11 += C[1 + bs * 1];
    d_21 += C[2 + bs * 1];
    d_31 += C[3 + bs * 1];
    d_02 += C[0 + bs * 2];
    d_12 += C[1 + bs * 2];
    d_22 += C[2 + bs * 2];
    d_32 += C[3 + bs * 2];
    d_03 += C[0 + bs * 3];
    d_13 += C[1 + bs * 3];
    d_23 += C[2 + bs * 3];
    d_33 += C[3 + bs * 3];
  }
  if (use_inv_diag_E) {
    e_00 = inv_diag_E[0];
    d_00 *= e_00;
    d_10 *= e_00;
    d_20 *= e_00;
    d_30 *= e_00;
    D[0 + bs * 0] = d_00;
    D[1 + bs * 0] = d_10;
    D[2 + bs * 0] = d_20;
    D[3 + bs * 0] = d_30;
    e_01 = E[0 + bs * 1];
    e_11 = inv_diag_E[1];
    d_01 -= d_00 * e_01;
    d_11 -= d_10 * e_01;
    d_21 -= d_20 * e_01;
    d_31 -= d_30 * e_01;
    d_01 *= e_11;
    d_11 *= e_11;
    d_21 *= e_11;
    d_31 *= e_11;
    D[0 + bs * 1] = d_01;
    D[1 + bs * 1] = d_11;
    D[2 + bs * 1] = d_21;
    D[3 + bs * 1] = d_31;
    e_02 = E[0 + bs * 2];
    e_12 = E[1 + bs * 2];
    e_22 = inv_diag_E[2];
    d_02 -= d_00 * e_02;
    d_12 -= d_10 * e_02;
    d_22 -= d_20 * e_02;
    d_32 -= d_30 * e_02;
    d_02 -= d_01 * e_12;
    d_12 -= d_11 * e_12;
    d_22 -= d_21 * e_12;
    d_32 -= d_31 * e_12;
    d_02 *= e_22;
    d_12 *= e_22;
    d_22 *= e_22;
    d_32 *= e_22;
    D[0 + bs * 2] = d_02;
    D[1 + bs * 2] = d_12;
    D[2 + bs * 2] = d_22;
    D[3 + bs * 2] = d_32;
    e_03 = E[0 + bs * 3];
    e_13 = E[1 + bs * 3];
    e_23 = E[2 + bs * 3];
    e_33 = inv_diag_E[3];
    d_03 -= d_00 * e_03;
    d_13 -= d_10 * e_03;
    d_23 -= d_20 * e_03;
    d_33 -= d_30 * e_03;
    d_03 -= d_01 * e_13;
    d_13 -= d_11 * e_13;
    d_23 -= d_21 * e_13;
    d_33 -= d_31 * e_13;
    d_03 -= d_02 * e_23;
    d_13 -= d_12 * e_23;
    d_23 -= d_22 * e_23;
    d_33 -= d_32 * e_23;
    d_03 *= e_33;
    d_13 *= e_33;
    d_23 *= e_33;
    d_33 *= e_33;
    D[0 + bs * 3] = d_03;
    D[1 + bs * 3] = d_13;
    D[2 + bs * 3] = d_23;
    D[3 + bs * 3] = d_33;
  } else {
    e_00 = 1.0 / E[0 + bs * 0];
    d_00 *= e_00;
    d_10 *= e_00;
    d_20 *= e_00;
    d_30 *= e_00;
    D[0 + bs * 0] = d_00;
    D[1 + bs * 0] = d_10;
    D[2 + bs * 0] = d_20;
    D[3 + bs * 0] = d_30;
    e_01 = E[0 + bs * 1];
    e_11 = 1.0 / E[1 + bs * 1];
    d_01 -= d_00 * e_01;
    d_11 -= d_10 * e_01;
    d_21 -= d_20 * e_01;
    d_31 -= d_30 * e_01;
    d_01 *= e_11;
    d_11 *= e_11;
    d_21 *= e_11;
    d_31 *= e_11;
    D[0 + bs * 1] = d_01;
    D[1 + bs * 1] = d_11;
    D[2 + bs * 1] = d_21;
    D[3 + bs * 1] = d_31;
    e_02 = E[0 + bs * 2];
    e_12 = E[1 + bs * 2];
    e_22 = 1.0 / E[2 + bs * 2];
    d_02 -= d_00 * e_02;
    d_12 -= d_10 * e_02;
    d_22 -= d_20 * e_02;
    d_32 -= d_30 * e_02;
    d_02 -= d_01 * e_12;
    d_12 -= d_11 * e_12;
    d_22 -= d_21 * e_12;
    d_32 -= d_31 * e_12;
    d_02 *= e_22;
    d_12 *= e_22;
    d_22 *= e_22;
    d_32 *= e_22;
    D[0 + bs * 2] = d_02;
    D[1 + bs * 2] = d_12;
    D[2 + bs * 2] = d_22;
    D[3 + bs * 2] = d_32;
    e_03 = E[0 + bs * 3];
    e_13 = E[1 + bs * 3];
    e_23 = E[2 + bs * 3];
    e_33 = 1.0 / E[2 + bs * 3];
    d_03 -= d_00 * e_03;
    d_13 -= d_10 * e_03;
    d_23 -= d_20 * e_03;
    d_33 -= d_30 * e_03;
    d_03 -= d_01 * e_13;
    d_13 -= d_11 * e_13;
    d_23 -= d_21 * e_13;
    d_33 -= d_31 * e_13;
    d_03 -= d_02 * e_23;
    d_13 -= d_12 * e_23;
    d_23 -= d_22 * e_23;
    d_33 -= d_32 * e_23;
    d_03 *= e_33;
    d_13 *= e_33;
    d_23 *= e_33;
    d_33 *= e_33;
    D[0 + bs * 3] = d_03;
    D[1 + bs * 3] = d_13;
    D[2 + bs * 3] = d_23;
    D[3 + bs * 3] = d_33;
  }
  return;
}


x86 assembly (clang, -O0):
<kernel_dtrsm_nn_ru_4x4_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc8,%rsp
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%eax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8d,-0x20(%rbp)
mov    %r9,-0x28(%rbp)
movl   $0x4,-0x2c(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
cmpl   $0x0,-0x4(%rbp)
jg     11f6 <kernel_dtrsm_nn_ru_4x4_lib4+0xf6>
jmp    267a <kernel_dtrsm_nn_ru_4x4_lib4+0x157a>
movl   $0x0,-0x30(%rbp)
mov    -0x30(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2240 <kernel_dtrsm_nn_ru_4x4_lib4+0x1140>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x110(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x130(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x110(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x130(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x110(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x130(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x110(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x130(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x1c(%rbp),%ecx
shl    $0x2,%ecx
mov    -0x18(%rbp),%rax
movslq %ecx,%rcx
shl    $0x3,%rcx
add    %rcx,%rax
mov    %rax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x30(%rbp)
jmp    11fd <kernel_dtrsm_nn_ru_4x4_lib4+0xfd>
jmp    2245 <kernel_dtrsm_nn_ru_4x4_lib4+0x1145>
mov    -0x30(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    2675 <kernel_dtrsm_nn_ru_4x4_lib4+0x1575>
mov    -0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x110(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x130(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x140(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x8,%rax
mov    %rax,-0x18(%rbp)
mov    -0x30(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x30(%rbp)
jmp    2245 <kernel_dtrsm_nn_ru_4x4_lib4+0x1145>
jmp    267a <kernel_dtrsm_nn_ru_4x4_lib4+0x157a>
cmpl   $0x0,-0x20(%rbp)
je     2813 <kernel_dtrsm_nn_ru_4x4_lib4+0x1713>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
addsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
addsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
addsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x20(%rax),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x28(%rax),%xmm0
addsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
addsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
addsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x40(%rax),%xmm0
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x48(%rax),%xmm0
addsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x50(%rax),%xmm0
addsd  -0x120(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
addsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x60(%rax),%xmm0
addsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x68(%rax),%xmm0
addsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x70(%rax),%xmm0
addsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
mov    -0x28(%rbp),%rax
movsd  0x78(%rax),%xmm0
addsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
cmpl   $0x0,0x20(%rbp)
je     3133 <kernel_dtrsm_nn_ru_4x4_lib4+0x2033>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x110(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x130(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x138(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x140(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x140(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x120(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x100(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x120(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x140(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0x108(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0x128(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x148(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x78(%rax)
jmp    3a64 <kernel_dtrsm_nn_ru_4x4_lib4+0x2964>
mov    0x18(%rbp),%rax
movsd  0xec1(%rip),%xmm0
divsd  (%rax),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x80(%rbp),%xmm0
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x110(%rbp),%xmm0
ff
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mulsd  -0x130(%rbp),%xmm0
ff
movsd  %xmm0,-0x130(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0x110(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0x130(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0xe04(%rip),%xmm0
divsd  0x28(%rax),%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0xd8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0xf8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x118(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x88(%rbp),%xmm2
ff
movsd  -0x138(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x118(%rbp),%xmm0
ff
movsd  %xmm0,-0x118(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
mulsd  -0x138(%rbp),%xmm0
ff
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0x118(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0x138(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0xc29(%rip),%xmm0
divsd  0x50(%rax),%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x90(%rbp),%xmm2
ff
movsd  -0x140(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x100(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x120(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0xa8(%rbp),%xmm2
ff
movsd  -0x140(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x100(%rbp),%xmm0
ff
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x120(%rbp),%xmm0
ff
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0xb8(%rbp),%xmm0
ff
mulsd  -0x140(%rbp),%xmm0
ff
movsd  %xmm0,-0x140(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0x100(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0x120(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0x140(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x941(%rip),%xmm0
divsd  0x70(%rax),%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x130(%rbp),%xmm0
ff
movsd  -0x98(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xd8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xf8(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x118(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
movsd  -0xb0(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0xe8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x108(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x128(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x140(%rbp),%xmm0
ff
movsd  -0xc0(%rbp),%xmm2
ff
movsd  -0x148(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x108(%rbp),%xmm0
ff
movsd  %xmm0,-0x108(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x128(%rbp),%xmm0
ff
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
mulsd  -0x148(%rbp),%xmm0
ff
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0x108(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0x128(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0x148(%rbp),%xmm0
ff
mov    0x10(%rbp),%rax
movsd  %xmm0,0x78(%rax)
add    $0xc8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dtrsm_nn_ru_4x4_lib4>:
sub    $0xc8,%rsp
test   %edi,%edi
jle    1699 <kernel_dtrsm_nn_ru_4x4_lib4+0x599>
cmp    $0x4,%edi
jb     16c3 <kernel_dtrsm_nn_ru_4x4_lib4+0x5c3>
lea    -0x3(%rdi),%r10d
shl    $0x2,%ecx
movslq %ecx,%rcx
shl    $0x3,%rcx
xorpd  %xmm10,%xmm10
xor    %eax,%eax
xorpd  %xmm11,%xmm11
xorpd  %xmm9,%xmm9
xorpd  %xmm12,%xmm12
xorpd  %xmm15,%xmm15
xorpd  %xmm6,%xmm6
xorpd  %xmm8,%xmm8
xorpd  %xmm4,%xmm4
xchg   %ax,%ax
movapd %xmm6,0x40(%rsp)
movapd %xmm15,0x20(%rsp)
movapd %xmm12,0x50(%rsp)
movapd %xmm9,0x60(%rsp)
movapd %xmm11,0xb0(%rsp)
movapd %xmm10,0x80(%rsp)
movupd (%rsi),%xmm0
movupd 0x10(%rsi),%xmm7
movupd 0x20(%rsi),%xmm14
movupd 0x30(%rsi),%xmm13
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm5
unpcklpd %xmm2,%xmm2
movapd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm11
movapd %xmm7,%xmm1
movapd %xmm2,0x90(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm10
movapd %xmm0,%xmm1
shufpd $0x1,%xmm0,%xmm1
movapd %xmm7,%xmm2
shufpd $0x1,%xmm7,%xmm2
movsd  0x20(%rdx),%xmm3
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm2
subpd  %xmm2,%xmm9
movapd %xmm3,0x30(%rsp)
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm12
movsd  0x40(%rdx),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm0,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm6
movapd %xmm7,%xmm1
movapd %xmm2,0x10(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm15
movsd  0x60(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm0,-0x40(%rsp)
movapd %xmm0,%xmm2
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm4
movapd %xmm7,0x70(%rsp)
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm8
unpcklpd %xmm5,%xmm5
movapd %xmm14,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm11
movapd %xmm13,%xmm1
movapd %xmm5,0xa0(%rsp)
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm10
movapd %xmm14,%xmm1
shufpd $0x1,%xmm14,%xmm1
movsd  0x28(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm12
movapd %xmm13,%xmm1
shufpd $0x1,%xmm13,%xmm1
movapd %xmm0,-0x10(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm9
movsd  0x48(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm14,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
movapd %xmm13,%xmm1
movapd %xmm0,-0x30(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm15
movsd  0x68(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm14,-0x70(%rsp)
movapd %xmm14,%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm4
movapd %xmm13,-0x60(%rsp)
mulpd  %xmm13,%xmm1
subpd  %xmm1,%xmm8
movsd  0x10(%rdx),%xmm3
unpcklpd %xmm3,%xmm3
movupd 0x40(%rsi),%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm11
movupd 0x50(%rsi),%xmm2
movapd %xmm2,%xmm1
movapd %xmm3,(%rsp)
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm10
movapd %xmm2,%xmm1
shufpd $0x1,%xmm2,%xmm1
movsd  0x30(%rdx),%xmm7
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm9
movapd %xmm0,%xmm1
shufpd $0x1,%xmm0,%xmm1
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm12
movsd  0x50(%rdx),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm6
movapd %xmm2,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm15
movsd  0x70(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
movapd %xmm0,-0x80(%rsp)
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm4
movapd %xmm2,-0x20(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm8
movsd  0x18(%rdx),%xmm13
unpcklpd %xmm13,%xmm13
movupd 0x60(%rsi),%xmm1
movapd %xmm1,%xmm0
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm11
movupd 0x70(%rsi),%xmm2
movapd %xmm2,%xmm0
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm10
movapd %xmm1,%xmm0
shufpd $0x1,%xmm1,%xmm0
movsd  0x38(%rdx),%xmm14
unpcklpd %xmm14,%xmm14
mulpd  %xmm14,%xmm0
subpd  %xmm0,%xmm12
movapd %xmm2,%xmm0
shufpd $0x1,%xmm2,%xmm0
mulpd  %xmm14,%xmm0
subpd  %xmm0,%xmm9
movsd  0x58(%rdx),%xmm3
unpcklpd %xmm3,%xmm3
movapd %xmm1,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm0,%xmm6
movapd %xmm2,%xmm0
mulpd  %xmm3,%xmm0
subpd  %xmm0,%xmm15
movsd  0x78(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm1,-0x50(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm4
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm8
sub    $0xffffffffffffff80,%rsi
add    $0x4,%eax
add    %rcx,%rdx
cmp    %r10d,%eax
jl     1150 <kernel_dtrsm_nn_ru_4x4_lib4+0x50>
movapd %xmm2,%xmm1
movapd -0x40(%rsp),%xmm2
movapd 0xb8f(%rip),%xmm0
xorpd  %xmm0,%xmm2
movapd %xmm2,%xmm10
movapd 0x70(%rsp),%xmm12
xorpd  %xmm0,%xmm12
movapd -0x70(%rsp),%xmm2
xorpd  %xmm0,%xmm2
movapd %xmm2,-0x70(%rsp)
movapd -0x60(%rsp),%xmm15
xorpd  %xmm0,%xmm15
movapd -0x80(%rsp),%xmm2
xorpd  %xmm0,%xmm2
movapd %xmm2,-0x80(%rsp)
movapd -0x20(%rsp),%xmm9
xorpd  %xmm0,%xmm9
movapd -0x50(%rsp),%xmm2
xorpd  %xmm0,%xmm2
movapd %xmm2,-0x50(%rsp)
xorpd  %xmm0,%xmm1
movapd %xmm1,%xmm11
movapd %xmm1,-0x60(%rsp)
movapd %xmm12,%xmm1
movapd 0x10(%rsp),%xmm0
mulpd  %xmm0,%xmm1
addpd  0x20(%rsp),%xmm1
movapd %xmm15,%xmm6
movapd -0x30(%rsp),%xmm2
mulpd  %xmm2,%xmm6
addpd  %xmm1,%xmm6
movapd %xmm9,%xmm1
mulpd  %xmm5,%xmm1
addpd  %xmm6,%xmm1
mulpd  %xmm3,%xmm11
addpd  %xmm1,%xmm11
movapd %xmm10,%xmm1
movapd %xmm10,-0x40(%rsp)
mulpd  %xmm10,%xmm0
addpd  0x40(%rsp),%xmm0
movapd -0x70(%rsp),%xmm10
mulpd  %xmm10,%xmm2
addpd  %xmm0,%xmm2
mulpd  -0x80(%rsp),%xmm5
addpd  %xmm2,%xmm5
movapd -0x50(%rsp),%xmm6
mulpd  %xmm6,%xmm3
addpd  %xmm5,%xmm3
pshufd $0x4e,%xmm1,%xmm1
movapd 0x30(%rsp),%xmm5
mulpd  %xmm5,%xmm1
addpd  0x50(%rsp),%xmm1
pshufd $0x4e,%xmm12,%xmm2
mulpd  %xmm5,%xmm2
addpd  0x60(%rsp),%xmm2
pshufd $0x4e,%xmm15,%xmm5
movapd -0x10(%rsp),%xmm0
mulpd  %xmm0,%xmm5
addpd  %xmm2,%xmm5
pshufd $0x4e,%xmm10,%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm1,%xmm2
pshufd $0x4e,-0x80(%rsp),%xmm1
mulpd  %xmm7,%xmm1
addpd  %xmm2,%xmm1
pshufd $0x4e,%xmm9,%xmm2
mulpd  %xmm7,%xmm2
addpd  %xmm5,%xmm2
movdqa -0x60(%rsp),%xmm7
pshufd $0x4e,%xmm7,%xmm5
mulpd  %xmm14,%xmm5
addpd  %xmm2,%xmm5
movapd %xmm6,%xmm10
pshufd $0x4e,%xmm6,%xmm6
mulpd  %xmm14,%xmm6
addpd  %xmm1,%xmm6
movapd 0x90(%rsp),%xmm2
mulpd  %xmm2,%xmm12
addpd  0x80(%rsp),%xmm12
movapd 0xa0(%rsp),%xmm1
mulpd  %xmm1,%xmm15
addpd  %xmm12,%xmm15
movapd (%rsp),%xmm0
mulpd  %xmm0,%xmm9
addpd  %xmm15,%xmm9
mulpd  %xmm13,%xmm7
addpd  %xmm9,%xmm7
movapd %xmm7,%xmm9
movapd -0x40(%rsp),%xmm7
mulpd  %xmm2,%xmm7
addpd  0xb0(%rsp),%xmm7
movapd -0x70(%rsp),%xmm2
mulpd  %xmm1,%xmm2
addpd  %xmm7,%xmm2
movapd -0x80(%rsp),%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm2,%xmm1
mulpd  %xmm13,%xmm10
addpd  %xmm1,%xmm10
movapd %xmm10,%xmm7
mov    %edi,%eax
and    $0xfffffffc,%eax
movapd %xmm8,%xmm12
movapd %xmm4,%xmm10
movapd %xmm3,%xmm8
movapd %xmm9,%xmm13
cmp    %edi,%eax
jl     16ee <kernel_dtrsm_nn_ru_4x4_lib4+0x5ee>
shufpd $0x1,%xmm6,%xmm6
shufpd $0x1,%xmm5,%xmm5
jmp    1839 <kernel_dtrsm_nn_ru_4x4_lib4+0x739>
xorpd  %xmm6,%xmm6
xorpd  %xmm8,%xmm8
xorpd  %xmm10,%xmm10
xorpd  %xmm5,%xmm5
xorpd  %xmm11,%xmm11
xorpd  %xmm12,%xmm12
xorpd  %xmm13,%xmm13
xorpd  %xmm7,%xmm7
jmp    1839 <kernel_dtrsm_nn_ru_4x4_lib4+0x739>
xorpd  %xmm8,%xmm8
xor    %eax,%eax
xorpd  %xmm10,%xmm10
xorpd  %xmm11,%xmm11
xorpd  %xmm12,%xmm12
xorpd  %xmm13,%xmm13
xorpd  %xmm7,%xmm7
xorpd  %xmm5,%xmm5
xorpd  %xmm6,%xmm6
cmp    %edi,%eax
jge    168a <kernel_dtrsm_nn_ru_4x4_lib4+0x58a>
sub    %eax,%edi
xor    %eax,%eax
movapd %xmm6,%xmm15
movapd %xmm12,%xmm3
movapd %xmm7,%xmm12
movapd %xmm11,%xmm9
movapd %xmm5,%xmm14
movapd %xmm10,%xmm5
movapd %xmm12,-0x80(%rsp)
movapd %xmm13,-0x70(%rsp)
movapd %xmm3,%xmm11
movapd %xmm5,%xmm10
movupd (%rsi),%xmm2
movupd 0x10(%rsi),%xmm4
movsd  (%rdx,%rax,8),%xmm7
movsd  0x20(%rdx,%rax,8),%xmm0
unpcklpd %xmm7,%xmm7
movapd %xmm2,%xmm1
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm12
movapd %xmm4,%xmm1
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm2,%xmm1
shufpd $0x1,%xmm2,%xmm1
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm15
movapd %xmm4,%xmm1
shufpd $0x1,%xmm4,%xmm1
mulpd  %xmm1,%xmm0
movsd  0x40(%rdx,%rax,8),%xmm6
subpd  %xmm0,%xmm14
unpcklpd %xmm6,%xmm6
movapd %xmm2,%xmm0
mulpd  %xmm6,%xmm0
subpd  %xmm0,%xmm8
movsd  0x60(%rdx,%rax,8),%xmm1
mulpd  %xmm4,%xmm6
subpd  %xmm6,%xmm9
unpcklpd %xmm1,%xmm1
movapd %xmm2,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm5
movapd %xmm4,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm3
add    $0x1,%rax
add    $0x20,%rsi
cmp    %eax,%edi
jne    1710 <kernel_dtrsm_nn_ru_4x4_lib4+0x610>
movapd 0x824(%rip),%xmm0
xorpd  %xmm0,%xmm2
xorpd  %xmm0,%xmm4
shufpd $0x1,%xmm14,%xmm14
shufpd $0x1,%xmm15,%xmm15
movapd %xmm4,%xmm12
mulpd  %xmm1,%xmm12
addpd  %xmm11,%xmm12
mulpd  %xmm2,%xmm1
addpd  %xmm10,%xmm1
mulpd  %xmm7,%xmm4
addpd  -0x70(%rsp),%xmm4
mulpd  %xmm7,%xmm2
addpd  -0x80(%rsp),%xmm2
movapd %xmm1,%xmm10
movapd %xmm4,%xmm13
movapd %xmm2,%xmm7
movapd %xmm9,%xmm11
movapd %xmm15,%xmm6
movapd %xmm14,%xmm5
mov    0xe0(%rsp),%edx
test   %r8d,%r8d
je     1899 <kernel_dtrsm_nn_ru_4x4_lib4+0x799>
movupd (%r9),%xmm0
movupd 0x10(%r9),%xmm1
movupd 0x20(%r9),%xmm2
movupd 0x30(%r9),%xmm3
addpd  %xmm0,%xmm7
addpd  %xmm1,%xmm13
addpd  %xmm2,%xmm6
addpd  %xmm3,%xmm5
movupd 0x40(%r9),%xmm0
addpd  %xmm0,%xmm8
movupd 0x50(%r9),%xmm0
addpd  %xmm0,%xmm11
movupd 0x60(%r9),%xmm0
addpd  %xmm0,%xmm10
movupd 0x70(%r9),%xmm0
addpd  %xmm0,%xmm12
mov    0xd8(%rsp),%rcx
mov    0xd0(%rsp),%rax
test   %edx,%edx
je     19c7 <kernel_dtrsm_nn_ru_4x4_lib4+0x8c7>
mov    0xe8(%rsp),%rdx
movsd  (%rdx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm7
mulpd  %xmm0,%xmm13
movupd %xmm7,(%rax)
movupd %xmm13,0x10(%rax)
movsd  0x20(%rcx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm7,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm5
movsd  0x8(%rdx),%xmm2
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm6
mulpd  %xmm5,%xmm2
movupd %xmm6,0x20(%rax)
movupd %xmm2,0x30(%rax)
movsd  0x40(%rcx),%xmm0
movsd  0x48(%rcx),%xmm1
unpcklpd %xmm0,%xmm0
movapd %xmm7,%xmm3
mulpd  %xmm0,%xmm3
subpd  %xmm3,%xmm8
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm11
unpcklpd %xmm1,%xmm1
movapd %xmm6,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm8
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm11
movsd  0x10(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm8
mulpd  %xmm11,%xmm1
movupd %xmm8,0x40(%rax)
movupd %xmm1,0x50(%rax)
movsd  0x60(%rcx),%xmm0
movsd  0x68(%rcx),%xmm3
movsd  0x70(%rcx),%xmm4
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm7
subpd  %xmm7,%xmm10
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm12
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm6
subpd  %xmm6,%xmm10
mulpd  %xmm2,%xmm3
subpd  %xmm3,%xmm12
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm8
subpd  %xmm8,%xmm10
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm12
movsd  0x18(%rdx),%xmm2
jmp    1ae3 <kernel_dtrsm_nn_ru_4x4_lib4+0x9e3>
movsd  0x641(%rip),%xmm2
movapd %xmm2,%xmm0
divsd  (%rcx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm7
mulpd  %xmm0,%xmm13
movupd %xmm7,(%rax)
movupd %xmm13,0x10(%rax)
movapd %xmm2,%xmm3
divsd  0x28(%rcx),%xmm3
movsd  0x20(%rcx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm7,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm5
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm6
mulpd  %xmm5,%xmm3
movupd %xmm6,0x20(%rax)
movupd %xmm3,0x30(%rax)
movapd %xmm2,%xmm4
divsd  0x50(%rcx),%xmm4
movsd  0x40(%rcx),%xmm0
movsd  0x48(%rcx),%xmm1
unpcklpd %xmm0,%xmm0
movapd %xmm7,%xmm5
mulpd  %xmm0,%xmm5
subpd  %xmm5,%xmm8
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm11
unpcklpd %xmm1,%xmm1
movapd %xmm6,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm8
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm11
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm8
mulpd  %xmm11,%xmm4
movupd %xmm8,0x40(%rax)
movupd %xmm4,0x50(%rax)
movsd  0x70(%rcx),%xmm1
divsd  %xmm1,%xmm2
movsd  0x60(%rcx),%xmm0
movsd  0x68(%rcx),%xmm5
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm7
subpd  %xmm7,%xmm10
mulpd  %xmm13,%xmm0
subpd  %xmm0,%xmm12
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm6
subpd  %xmm6,%xmm10
mulpd  %xmm3,%xmm5
subpd  %xmm5,%xmm12
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm8
subpd  %xmm8,%xmm10
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm12
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm10
mulpd  %xmm12,%xmm2
movupd %xmm10,0x60(%rax)
movupd %xmm2,0x70(%rax)
add    $0xc8,%rsp
ret

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

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