void kernel_dgemm_dtrsm_nt_4x4_lib4_new(int kadd, double *Ap, double *Bp,
                                        int ksub, double *Am, double *Bm,
                                        int alg, double *C, double *D,
                                        double *E, int use_inv_diag_E,
                                        double *inv_diag_E) {
  const int bs = 4;
  int k;
  double a_0, a_1, a_2, a_3, b_0, b_1, b_2, b_3,
      c_00 = 0, c_01 = 0, c_02 = 0, c_03 = 0, c_10 = 0, c_11 = 0, c_12 = 0,
      c_13 = 0, c_20 = 0, c_21 = 0, c_22 = 0, c_23 = 0, c_30 = 0, c_31 = 0,
      c_32 = 0, c_33 = 0;
  k = 0;
  if (kadd > 0) {
    for (; k < kadd - 3; k += 4) {
      a_0 = Ap[0 + bs * 0];
      a_1 = Ap[1 + bs * 0];
      a_2 = Ap[2 + bs * 0];
      a_3 = Ap[3 + bs * 0];
      b_0 = Bp[0 + bs * 0];
      b_1 = Bp[1 + bs * 0];
      b_2 = Bp[2 + bs * 0];
      b_3 = Bp[3 + bs * 0];
      c_00 += a_0 * b_0;
      c_10 += a_1 * b_0;
      c_20 += a_2 * b_0;
      c_30 += a_3 * b_0;
      c_01 += a_0 * b_1;
      c_11 += a_1 * b_1;
      c_21 += a_2 * b_1;
      c_31 += a_3 * b_1;
      c_02 += a_0 * b_2;
      c_12 += a_1 * b_2;
      c_22 += a_2 * b_2;
      c_32 += a_3 * b_2;
      c_03 += a_0 * b_3;
      c_13 += a_1 * b_3;
      c_23 += a_2 * b_3;
      c_33 += a_3 * b_3;
      a_0 = Ap[0 + bs * 1];
      a_1 = Ap[1 + bs * 1];
      a_2 = Ap[2 + bs * 1];
      a_3 = Ap[3 + bs * 1];
      b_0 = Bp[0 + bs * 1];
      b_1 = Bp[1 + bs * 1];
      b_2 = Bp[2 + bs * 1];
      b_3 = Bp[3 + bs * 1];
      c_00 += a_0 * b_0;
      c_10 += a_1 * b_0;
      c_20 += a_2 * b_0;
      c_30 += a_3 * b_0;
      c_01 += a_0 * b_1;
      c_11 += a_1 * b_1;
      c_21 += a_2 * b_1;
      c_31 += a_3 * b_1;
      c_02 += a_0 * b_2;
      c_12 += a_1 * b_2;
      c_22 += a_2 * b_2;
      c_32 += a_3 * b_2;
      c_03 += a_0 * b_3;
      c_13 += a_1 * b_3;
      c_23 += a_2 * b_3;
      c_33 += a_3 * b_3;
      a_0 = Ap[0 + bs * 2];
      a_1 = Ap[1 + bs * 2];
      a_2 = Ap[2 + bs * 2];
      a_3 = Ap[3 + bs * 2];
      b_0 = Bp[0 + bs * 2];
      b_1 = Bp[1 + bs * 2];
      b_2 = Bp[2 + bs * 2];
      b_3 = Bp[3 + bs * 2];
      c_00 += a_0 * b_0;
      c_10 += a_1 * b_0;
      c_20 += a_2 * b_0;
      c_30 += a_3 * b_0;
      c_01 += a_0 * b_1;
      c_11 += a_1 * b_1;
      c_21 += a_2 * b_1;
      c_31 += a_3 * b_1;
      c_02 += a_0 * b_2;
      c_12 += a_1 * b_2;
      c_22 += a_2 * b_2;
      c_32 += a_3 * b_2;
      c_03 += a_0 * b_3;
      c_13 += a_1 * b_3;
      c_23 += a_2 * b_3;
      c_33 += a_3 * b_3;
      a_0 = Ap[0 + bs * 3];
      a_1 = Ap[1 + bs * 3];
      a_2 = Ap[2 + bs * 3];
      a_3 = Ap[3 + bs * 3];
      b_0 = Bp[0 + bs * 3];
      b_1 = Bp[1 + bs * 3];
      b_2 = Bp[2 + bs * 3];
      b_3 = Bp[3 + bs * 3];
      c_00 += a_0 * b_0;
      c_10 += a_1 * b_0;
      c_20 += a_2 * b_0;
      c_30 += a_3 * b_0;
      c_01 += a_0 * b_1;
      c_11 += a_1 * b_1;
      c_21 += a_2 * b_1;
      c_31 += a_3 * b_1;
      c_02 += a_0 * b_2;
      c_12 += a_1 * b_2;
      c_22 += a_2 * b_2;
      c_32 += a_3 * b_2;
      c_03 += a_0 * b_3;
      c_13 += a_1 * b_3;
      c_23 += a_2 * b_3;
      c_33 += a_3 * b_3;
      Ap += 16;
      Bp += 16;
    }
    for (; k < kadd; k++) {
      a_0 = Ap[0 + bs * 0];
      a_1 = Ap[1 + bs * 0];
      a_2 = Ap[2 + bs * 0];
      a_3 = Ap[3 + bs * 0];
      b_0 = Bp[0 + bs * 0];
      b_1 = Bp[1 + bs * 0];
      b_2 = Bp[2 + bs * 0];
      b_3 = Bp[3 + bs * 0];
      c_00 += a_0 * b_0;
      c_10 += a_1 * b_0;
      c_20 += a_2 * b_0;
      c_30 += a_3 * b_0;
      c_01 += a_0 * b_1;
      c_11 += a_1 * b_1;
      c_21 += a_2 * b_1;
      c_31 += a_3 * b_1;
      c_02 += a_0 * b_2;
      c_12 += a_1 * b_2;
      c_22 += a_2 * b_2;
      c_32 += a_3 * b_2;
      c_03 += a_0 * b_3;
      c_13 += a_1 * b_3;
      c_23 += a_2 * b_3;
      c_33 += a_3 * b_3;
      Ap += 4;
      Bp += 4;
    }
  }
  for (k = 0; k < ksub - 3; k += 4) {
    a_0 = Am[0 + bs * 0];
    a_1 = Am[1 + bs * 0];
    a_2 = Am[2 + bs * 0];
    a_3 = Am[3 + bs * 0];
    b_0 = Bm[0 + bs * 0];
    b_1 = Bm[1 + bs * 0];
    b_2 = Bm[2 + bs * 0];
    b_3 = Bm[3 + bs * 0];
    c_00 -= a_0 * b_0;
    c_10 -= a_1 * b_0;
    c_20 -= a_2 * b_0;
    c_30 -= a_3 * b_0;
    c_01 -= a_0 * b_1;
    c_11 -= a_1 * b_1;
    c_21 -= a_2 * b_1;
    c_31 -= a_3 * b_1;
    c_02 -= a_0 * b_2;
    c_12 -= a_1 * b_2;
    c_22 -= a_2 * b_2;
    c_32 -= a_3 * b_2;
    c_03 -= a_0 * b_3;
    c_13 -= a_1 * b_3;
    c_23 -= a_2 * b_3;
    c_33 -= a_3 * b_3;
    a_0 = Am[0 + bs * 1];
    a_1 = Am[1 + bs * 1];
    a_2 = Am[2 + bs * 1];
    a_3 = Am[3 + bs * 1];
    b_0 = Bm[0 + bs * 1];
    b_1 = Bm[1 + bs * 1];
    b_2 = Bm[2 + bs * 1];
    b_3 = Bm[3 + bs * 1];
    c_00 -= a_0 * b_0;
    c_10 -= a_1 * b_0;
    c_20 -= a_2 * b_0;
    c_30 -= a_3 * b_0;
    c_01 -= a_0 * b_1;
    c_11 -= a_1 * b_1;
    c_21 -= a_2 * b_1;
    c_31 -= a_3 * b_1;
    c_02 -= a_0 * b_2;
    c_12 -= a_1 * b_2;
    c_22 -= a_2 * b_2;
    c_32 -= a_3 * b_2;
    c_03 -= a_0 * b_3;
    c_13 -= a_1 * b_3;
    c_23 -= a_2 * b_3;
    c_33 -= a_3 * b_3;
    a_0 = Am[0 + bs * 2];
    a_1 = Am[1 + bs * 2];
    a_2 = Am[2 + bs * 2];
    a_3 = Am[3 + bs * 2];
    b_0 = Bm[0 + bs * 2];
    b_1 = Bm[1 + bs * 2];
    b_2 = Bm[2 + bs * 2];
    b_3 = Bm[3 + bs * 2];
    c_00 -= a_0 * b_0;
    c_10 -= a_1 * b_0;
    c_20 -= a_2 * b_0;
    c_30 -= a_3 * b_0;
    c_01 -= a_0 * b_1;
    c_11 -= a_1 * b_1;
    c_21 -= a_2 * b_1;
    c_31 -= a_3 * b_1;
    c_02 -= a_0 * b_2;
    c_12 -= a_1 * b_2;
    c_22 -= a_2 * b_2;
    c_32 -= a_3 * b_2;
    c_03 -= a_0 * b_3;
    c_13 -= a_1 * b_3;
    c_23 -= a_2 * b_3;
    c_33 -= a_3 * b_3;
    a_0 = Am[0 + bs * 3];
    a_1 = Am[1 + bs * 3];
    a_2 = Am[2 + bs * 3];
    a_3 = Am[3 + bs * 3];
    b_0 = Bm[0 + bs * 3];
    b_1 = Bm[1 + bs * 3];
    b_2 = Bm[2 + bs * 3];
    b_3 = Bm[3 + bs * 3];
    c_00 -= a_0 * b_0;
    c_10 -= a_1 * b_0;
    c_20 -= a_2 * b_0;
    c_30 -= a_3 * b_0;
    c_01 -= a_0 * b_1;
    c_11 -= a_1 * b_1;
    c_21 -= a_2 * b_1;
    c_31 -= a_3 * b_1;
    c_02 -= a_0 * b_2;
    c_12 -= a_1 * b_2;
    c_22 -= a_2 * b_2;
    c_32 -= a_3 * b_2;
    c_03 -= a_0 * b_3;
    c_13 -= a_1 * b_3;
    c_23 -= a_2 * b_3;
    c_33 -= a_3 * b_3;
    Am += 16;
    Bm += 16;
  }
  if (alg != 0) {
    c_00 += C[0 + bs * 0];
    c_10 += C[1 + bs * 0];
    c_20 += C[2 + bs * 0];
    c_30 += C[3 + bs * 0];
    c_01 += C[0 + bs * 1];
    c_11 += C[1 + bs * 1];
    c_21 += C[2 + bs * 1];
    c_31 += C[3 + bs * 1];
    c_02 += C[0 + bs * 2];
    c_12 += C[1 + bs * 2];
    c_22 += C[2 + bs * 2];
    c_32 += C[3 + bs * 2];
    c_03 += C[0 + bs * 3];
    c_13 += C[1 + bs * 3];
    c_23 += C[2 + bs * 3];
    c_33 += C[3 + bs * 3];
  }
  double a_00, a_10, a_20, a_30, a_11, a_21, a_31, a_22, a_32, a_33;
  if (use_inv_diag_E) {
    a_00 = inv_diag_E[0];
    c_00 *= a_00;
    c_10 *= a_00;
    c_20 *= a_00;
    c_30 *= a_00;
    D[0 + bs * 0] = c_00;
    D[1 + bs * 0] = c_10;
    D[2 + bs * 0] = c_20;
    D[3 + bs * 0] = c_30;
    a_10 = E[1 + bs * 0];
    a_11 = inv_diag_E[1];
    c_01 -= c_00 * a_10;
    c_11 -= c_10 * a_10;
    c_21 -= c_20 * a_10;
    c_31 -= c_30 * a_10;
    c_01 *= a_11;
    c_11 *= a_11;
    c_21 *= a_11;
    c_31 *= a_11;
    D[0 + bs * 1] = c_01;
    D[1 + bs * 1] = c_11;
    D[2 + bs * 1] = c_21;
    D[3 + bs * 1] = c_31;
    a_20 = E[2 + bs * 0];
    a_21 = E[2 + bs * 1];
    a_22 = inv_diag_E[2];
    c_02 -= c_00 * a_20;
    c_12 -= c_10 * a_20;
    c_22 -= c_20 * a_20;
    c_32 -= c_30 * a_20;
    c_02 -= c_01 * a_21;
    c_12 -= c_11 * a_21;
    c_22 -= c_21 * a_21;
    c_32 -= c_31 * a_21;
    c_02 *= a_22;
    c_12 *= a_22;
    c_22 *= a_22;
    c_32 *= a_22;
    D[0 + bs * 2] = c_02;
    D[1 + bs * 2] = c_12;
    D[2 + bs * 2] = c_22;
    D[3 + bs * 2] = c_32;
    a_30 = E[3 + bs * 0];
    a_31 = E[3 + bs * 1];
    a_32 = E[3 + bs * 2];
    a_33 = inv_diag_E[3];
    c_03 -= c_00 * a_30;
    c_13 -= c_10 * a_30;
    c_23 -= c_20 * a_30;
    c_33 -= c_30 * a_30;
    c_03 -= c_01 * a_31;
    c_13 -= c_11 * a_31;
    c_23 -= c_21 * a_31;
    c_33 -= c_31 * a_31;
    c_03 -= c_02 * a_32;
    c_13 -= c_12 * a_32;
    c_23 -= c_22 * a_32;
    c_33 -= c_32 * a_32;
    c_03 *= a_33;
    c_13 *= a_33;
    c_23 *= a_33;
    c_33 *= a_33;
    D[0 + bs * 3] = c_03;
    D[1 + bs * 3] = c_13;
    D[2 + bs * 3] = c_23;
    D[3 + bs * 3] = c_33;
  } else {
    a_00 = 1.0 / E[0 + bs * 0];
    c_00 *= a_00;
    c_10 *= a_00;
    c_20 *= a_00;
    c_30 *= a_00;
    D[0 + bs * 0] = c_00;
    D[1 + bs * 0] = c_10;
    D[2 + bs * 0] = c_20;
    D[3 + bs * 0] = c_30;
    a_10 = E[1 + bs * 0];
    a_11 = 1.0 / E[1 + bs * 1];
    c_01 -= c_00 * a_10;
    c_11 -= c_10 * a_10;
    c_21 -= c_20 * a_10;
    c_31 -= c_30 * a_10;
    c_01 *= a_11;
    c_11 *= a_11;
    c_21 *= a_11;
    c_31 *= a_11;
    D[0 + bs * 1] = c_01;
    D[1 + bs * 1] = c_11;
    D[2 + bs * 1] = c_21;
    D[3 + bs * 1] = c_31;
    a_20 = E[2 + bs * 0];
    a_21 = E[2 + bs * 1];
    a_22 = 1.0 / E[2 + bs * 2];
    c_02 -= c_00 * a_20;
    c_12 -= c_10 * a_20;
    c_22 -= c_20 * a_20;
    c_32 -= c_30 * a_20;
    c_02 -= c_01 * a_21;
    c_12 -= c_11 * a_21;
    c_22 -= c_21 * a_21;
    c_32 -= c_31 * a_21;
    c_02 *= a_22;
    c_12 *= a_22;
    c_22 *= a_22;
    c_32 *= a_22;
    D[0 + bs * 2] = c_02;
    D[1 + bs * 2] = c_12;
    D[2 + bs * 2] = c_22;
    D[3 + bs * 2] = c_32;
    a_30 = E[3 + bs * 0];
    a_31 = E[3 + bs * 1];
    a_32 = E[3 + bs * 2];
    a_33 = 1.0 / E[3 + bs * 3];
    c_03 -= c_00 * a_30;
    c_13 -= c_10 * a_30;
    c_23 -= c_20 * a_30;
    c_33 -= c_30 * a_30;
    c_03 -= c_01 * a_31;
    c_13 -= c_11 * a_31;
    c_23 -= c_21 * a_31;
    c_33 -= c_31 * a_31;
    c_03 -= c_02 * a_32;
    c_13 -= c_12 * a_32;
    c_23 -= c_22 * a_32;
    c_33 -= c_32 * a_32;
    c_03 *= a_33;
    c_13 *= a_33;
    c_23 *= a_33;
    c_33 *= a_33;
    D[0 + bs * 3] = c_03;
    D[1 + bs * 3] = c_13;
    D[2 + bs * 3] = c_23;
    D[3 + bs * 3] = c_33;
  }
}


x86 assembly (clang, -O0):
<kernel_dgemm_dtrsm_nt_4x4_lib4_new>:
push   %rbp
mov    %rsp,%rbp
sub    $0xc8,%rsp
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%eax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%eax
mov    %edi,-0x4(%rbp)
mov    %rsi,-0x10(%rbp)
mov    %rdx,-0x18(%rbp)
mov    %ecx,-0x1c(%rbp)
mov    %r8,-0x28(%rbp)
mov    %r9,-0x30(%rbp)
movl   $0x4,-0x34(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
movl   $0x0,-0x38(%rbp)
cmpl   $0x0,-0x4(%rbp)
jle    1f26 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xe26>
jmp    1201 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x101>
mov    -0x38(%rbp),%eax
mov    -0x4(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    1c62 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xb62>
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  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%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  0x20(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%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  0x40(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%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  0x60(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x70(%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  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x38(%rbp)
jmp    1201 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x101>
jmp    1c67 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xb67>
mov    -0x38(%rbp),%eax
cmp    -0x4(%rbp),%eax
jge    1f21 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xe21>
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  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xf0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xf8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    -0x10(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x10(%rbp)
mov    -0x18(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x18(%rbp)
mov    -0x38(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x38(%rbp)
jmp    1c67 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xb67>
jmp    1f26 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xe26>
movl   $0x0,-0x38(%rbp)
mov    -0x38(%rbp),%eax
mov    -0x1c(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2f4e <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x1e4e>
mov    -0x28(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%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  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%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  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%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  -0x58(%rbp),%xmm0
movsd  -0x70(%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  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%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  -0x58(%rbp),%xmm0
movsd  -0x78(%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
mov    -0x28(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%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  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%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  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%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  -0x58(%rbp),%xmm0
movsd  -0x70(%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  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%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  -0x58(%rbp),%xmm0
movsd  -0x78(%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
mov    -0x28(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%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  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%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  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%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  -0x58(%rbp),%xmm0
movsd  -0x70(%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  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%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  -0x58(%rbp),%xmm0
movsd  -0x78(%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
mov    -0x28(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    -0x28(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    -0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x60(%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  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x58(%rbp),%xmm0
movsd  -0x68(%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  -0x40(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x70(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x70(%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  -0x58(%rbp),%xmm0
movsd  -0x70(%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  -0x40(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x78(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x50(%rbp),%xmm0
movsd  -0x78(%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  -0x58(%rbp),%xmm0
movsd  -0x78(%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
mov    -0x28(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x28(%rbp)
mov    -0x30(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x30(%rbp)
mov    -0x38(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x38(%rbp)
jmp    1f2d <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xe2d>
cmpl   $0x0,0x10(%rbp)
je     30e1 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x1fe1>
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
addsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
addsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
addsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
addsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
addsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
addsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
addsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
cmpl   $0x0,0x30(%rbp)
je     39fe <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x28fe>
mov    0x38(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x108(%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  -0x120(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
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  -0xe0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
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  -0x88(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
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  -0xe8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
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  -0x138(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x118(%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  -0xe0(%rbp),%xmm0
ff
movsd  -0x118(%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  -0x88(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x130(%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  -0xe8(%rbp),%xmm0
ff
movsd  -0x130(%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  -0x90(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x140(%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  -0x140(%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  -0x148(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x78(%rax)
jmp    432c <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x322c>
mov    0x28(%rbp),%rax
movsd  0x15f6(%rip),%xmm0
divsd  (%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x100(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    0x20(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x10(%rax)
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x1533(%rip),%xmm0
divsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0x88(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xa8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x108(%rbp),%xmm2
ff
movsd  -0xc8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0xe0(%rbp),%xmm0
ff
movsd  -0x108(%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  -0x120(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x120(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x30(%rax)
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x135b(%rip),%xmm0
divsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
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  -0xe0(%rbp),%xmm0
ff
movsd  -0x110(%rbp),%xmm2
ff
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  -0x88(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0x90(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
movsd  -0xb0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
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  -0xe8(%rbp),%xmm0
ff
movsd  -0x128(%rbp),%xmm2
ff
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  -0x138(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xf0(%rbp),%xmm0
ff
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0x90(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x50(%rax)
movsd  -0xf0(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x58(%rax)
mov    0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x140(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x1076(%rip),%xmm0
divsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x148(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa0(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc0(%rbp),%xmm0
ff
movsd  -0x118(%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  -0xe0(%rbp),%xmm0
ff
movsd  -0x118(%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  -0x88(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xa8(%rbp),%xmm0
ff
movsd  -0x130(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xc8(%rbp),%xmm0
ff
movsd  -0x130(%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  -0xe8(%rbp),%xmm0
ff
movsd  -0x130(%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  -0x90(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0x98(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0xb0(%rbp),%xmm0
ff
movsd  -0x140(%rbp),%xmm2
ff
movsd  -0xb8(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0xd0(%rbp),%xmm0
ff
movsd  -0x140(%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  -0x140(%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  -0x148(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x148(%rbp),%xmm0
ff
mulsd  -0xf8(%rbp),%xmm0
ff
movsd  %xmm0,-0xf8(%rbp)
ff
movsd  -0x98(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xb8(%rbp),%xmm0
mov    0x20(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x70(%rax)
movsd  -0xf8(%rbp),%xmm0
ff
mov    0x20(%rbp),%rax
movsd  %xmm0,0x78(%rax)
add    $0xc8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dgemm_dtrsm_nt_4x4_lib4_new>:
sub    $0x18,%rsp
test   %edi,%edi
jle    1477 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x377>
cmp    $0x4,%edi
jb     14a2 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x3a2>
lea    -0x3(%rdi),%r10d
xorpd  %xmm12,%xmm12
xor    %eax,%eax
xorpd  %xmm13,%xmm13
xorpd  %xmm15,%xmm15
xorpd  %xmm0,%xmm0
movapd %xmm0,-0x50(%rsp)
xorpd  %xmm1,%xmm1
xorpd  %xmm0,%xmm0
movapd %xmm0,-0x60(%rsp)
xorpd  %xmm11,%xmm11
xorpd  %xmm0,%xmm0
movapd %xmm0,-0x80(%rsp)
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax,%rax,1)
movupd (%rsi),%xmm4
movupd 0x10(%rsi),%xmm6
movupd 0x20(%rsi),%xmm5
movupd 0x30(%rsi),%xmm14
movsd  (%rdx),%xmm2
movsd  0x8(%rdx),%xmm9
movsd  0x18(%rdx),%xmm10
unpcklpd %xmm2,%xmm2
movapd %xmm4,%xmm0
mulpd  %xmm2,%xmm0
addpd  %xmm13,%xmm0
mulpd  %xmm6,%xmm2
addpd  %xmm12,%xmm2
movapd %xmm4,%xmm3
movapd %xmm4,%xmm13
unpcklpd %xmm10,%xmm10
mulpd  %xmm10,%xmm13
mulpd  %xmm6,%xmm10
shufpd $0x1,%xmm6,%xmm6
unpcklpd %xmm9,%xmm9
movapd %xmm6,%xmm8
mulpd  %xmm9,%xmm8
addpd  %xmm15,%xmm8
movsd  0x10(%rdx),%xmm7
shufpd $0x1,%xmm4,%xmm3
mulpd  %xmm3,%xmm9
addpd  -0x50(%rsp),%xmm9
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm6
addpd  %xmm1,%xmm6
mulpd  %xmm3,%xmm7
addpd  -0x60(%rsp),%xmm7
addpd  -0x80(%rsp),%xmm13
addpd  %xmm11,%xmm10
movsd  0x20(%rdx),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm5,%xmm1
mulpd  %xmm4,%xmm5
addpd  %xmm0,%xmm5
movapd %xmm14,%xmm3
mulpd  %xmm14,%xmm4
addpd  %xmm2,%xmm4
movapd %xmm1,%xmm11
movapd %xmm1,%xmm0
movsd  0x38(%rdx),%xmm14
unpcklpd %xmm14,%xmm14
mulpd  %xmm14,%xmm0
movapd %xmm3,%xmm2
mulpd  %xmm3,%xmm14
shufpd $0x1,%xmm3,%xmm2
shufpd $0x1,%xmm1,%xmm11
movsd  0x28(%rdx),%xmm3
unpcklpd %xmm3,%xmm3
movapd %xmm11,%xmm12
mulpd  %xmm3,%xmm12
addpd  %xmm9,%xmm12
mulpd  %xmm2,%xmm3
addpd  %xmm8,%xmm3
movsd  0x30(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm11
addpd  %xmm7,%xmm11
mulpd  %xmm2,%xmm1
addpd  %xmm6,%xmm1
addpd  %xmm13,%xmm0
movapd %xmm0,%xmm8
addpd  %xmm10,%xmm14
movupd 0x40(%rsi),%xmm6
movupd 0x50(%rsi),%xmm2
movsd  0x40(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm6,%xmm10
mulpd  %xmm0,%xmm10
addpd  %xmm5,%xmm10
mulpd  %xmm2,%xmm0
addpd  %xmm4,%xmm0
movapd %xmm6,%xmm9
movapd %xmm6,%xmm4
shufpd $0x1,%xmm6,%xmm9
movsd  0x58(%rdx),%xmm15
unpcklpd %xmm15,%xmm15
mulpd  %xmm15,%xmm4
mulpd  %xmm2,%xmm15
shufpd $0x1,%xmm2,%xmm2
movsd  0x48(%rdx),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm2,%xmm7
mulpd  %xmm5,%xmm7
addpd  %xmm3,%xmm7
mulpd  %xmm9,%xmm5
addpd  %xmm12,%xmm5
movsd  0x50(%rdx),%xmm6
unpcklpd %xmm6,%xmm6
mulpd  %xmm6,%xmm2
addpd  %xmm1,%xmm2
mulpd  %xmm9,%xmm6
addpd  %xmm11,%xmm6
addpd  %xmm8,%xmm4
movapd %xmm4,-0x70(%rsp)
addpd  %xmm14,%xmm15
movupd 0x60(%rsi),%xmm12
movupd 0x70(%rsi),%xmm1
movsd  0x60(%rdx),%xmm14
unpcklpd %xmm14,%xmm14
movapd %xmm12,%xmm13
mulpd  %xmm14,%xmm13
mulpd  %xmm1,%xmm14
movapd %xmm12,%xmm8
movsd  0x78(%rdx),%xmm11
unpcklpd %xmm11,%xmm11
mulpd  %xmm11,%xmm12
mulpd  %xmm1,%xmm11
shufpd $0x1,%xmm1,%xmm1
shufpd $0x1,%xmm8,%xmm8
movsd  0x68(%rdx),%xmm9
unpcklpd %xmm9,%xmm9
movapd %xmm8,%xmm3
mulpd  %xmm9,%xmm3
mulpd  %xmm1,%xmm9
movsd  0x70(%rdx),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm8
mulpd  %xmm1,%xmm4
addpd  -0x70(%rsp),%xmm12
movapd %xmm12,-0x80(%rsp)
movapd %xmm13,-0x70(%rsp)
addpd  %xmm10,%xmm13
addpd  %xmm15,%xmm11
movapd %xmm14,%xmm12
addpd  %xmm0,%xmm12
movapd %xmm3,%xmm1
addpd  %xmm5,%xmm1
movapd %xmm1,-0x50(%rsp)
movapd %xmm9,%xmm15
addpd  %xmm7,%xmm15
movapd %xmm8,%xmm1
addpd  %xmm6,%xmm1
movapd %xmm1,-0x60(%rsp)
movapd %xmm4,%xmm1
addpd  %xmm2,%xmm1
sub    $0xffffffffffffff80,%rsi
sub    $0xffffffffffffff80,%rdx
add    $0x4,%eax
cmp    %r10d,%eax
jl     1160 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x60>
addpd  %xmm2,%xmm4
addpd  %xmm6,%xmm8
addpd  %xmm7,%xmm9
addpd  %xmm5,%xmm3
addpd  %xmm0,%xmm14
movapd -0x70(%rsp),%xmm0
addpd  %xmm10,%xmm0
mov    %edi,%eax
and    $0xfffffffc,%eax
movapd -0x80(%rsp),%xmm6
movapd %xmm8,%xmm13
movapd %xmm11,%xmm15
movapd %xmm4,%xmm8
movapd %xmm0,%xmm10
cmp    %edi,%eax
jl     14ce <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x3ce>
shufpd $0x1,%xmm13,%xmm13
shufpd $0x1,%xmm8,%xmm8
jmp    1670 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x570>
xorpd  %xmm13,%xmm13
xorpd  %xmm6,%xmm6
xorpd  %xmm8,%xmm8
xorpd  %xmm15,%xmm15
xorpd  %xmm14,%xmm14
xorpd  %xmm10,%xmm10
xorpd  %xmm9,%xmm9
xorpd  %xmm3,%xmm3
jmp    1670 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x570>
xorpd  %xmm6,%xmm6
xor    %eax,%eax
xorpd  %xmm15,%xmm15
xorpd  %xmm14,%xmm14
xorpd  %xmm10,%xmm10
xorpd  %xmm9,%xmm9
xorpd  %xmm3,%xmm3
xorpd  %xmm8,%xmm8
xorpd  %xmm13,%xmm13
cmp    %edi,%eax
jge    1466 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x366>
sub    %eax,%edi
xor    %eax,%eax
movapd %xmm6,%xmm0
movapd %xmm13,-0x70(%rsp)
movapd %xmm15,%xmm1
movapd %xmm8,-0x80(%rsp)
nopl   0x0(%rax)
movapd %xmm3,%xmm15
movapd %xmm9,%xmm13
movapd %xmm10,%xmm2
movapd %xmm14,%xmm9
movapd %xmm1,-0x50(%rsp)
movapd %xmm0,%xmm11
movupd (%rsi,%rax,1),%xmm5
movupd 0x10(%rsi,%rax,1),%xmm3
movsd  (%rdx,%rax,1),%xmm6
movsd  0x8(%rdx,%rax,1),%xmm7
movsd  0x10(%rdx,%rax,1),%xmm0
movsd  0x18(%rdx,%rax,1),%xmm4
unpcklpd %xmm6,%xmm6
movapd %xmm5,%xmm8
mulpd  %xmm6,%xmm8
movapd %xmm8,%xmm10
movapd %xmm2,-0x60(%rsp)
addpd  %xmm2,%xmm10
movapd %xmm15,%xmm12
mulpd  %xmm3,%xmm6
movapd %xmm5,%xmm1
shufpd $0x1,%xmm5,%xmm1
movapd %xmm1,%xmm15
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm1
movapd -0x70(%rsp),%xmm2
addpd  %xmm1,%xmm2
movapd %xmm2,-0x70(%rsp)
movapd %xmm6,%xmm14
movapd %xmm9,-0x30(%rsp)
addpd  %xmm9,%xmm14
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm5
mulpd  %xmm3,%xmm4
shufpd $0x1,%xmm3,%xmm3
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm15
mulpd  %xmm3,%xmm7
mulpd  %xmm3,%xmm0
movapd %xmm15,%xmm3
movapd %xmm12,-0x40(%rsp)
addpd  %xmm12,%xmm3
movapd -0x80(%rsp),%xmm1
addpd  %xmm0,%xmm1
movapd %xmm1,-0x80(%rsp)
movapd %xmm7,%xmm9
movapd %xmm13,%xmm0
addpd  %xmm13,%xmm9
movapd %xmm5,%xmm0
addpd  %xmm11,%xmm0
movapd %xmm4,%xmm1
movapd -0x50(%rsp),%xmm12
addpd  %xmm12,%xmm1
add    $0x20,%rax
add    $0xffffffff,%edi
jne    14f0 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x3f0>
movapd %xmm11,%xmm2
movapd %xmm12,%xmm11
movapd -0x80(%rsp),%xmm1
shufpd $0x1,%xmm1,%xmm1
movapd -0x70(%rsp),%xmm0
shufpd $0x1,%xmm0,%xmm0
addpd  %xmm12,%xmm4
addpd  %xmm2,%xmm5
addpd  %xmm13,%xmm7
addpd  -0x40(%rsp),%xmm15
addpd  -0x30(%rsp),%xmm6
addpd  -0x60(%rsp),%xmm8
movapd %xmm6,%xmm14
movapd %xmm5,%xmm6
movapd %xmm8,%xmm10
movapd %xmm7,%xmm9
movapd %xmm15,%xmm3
movapd %xmm4,%xmm15
movapd %xmm0,%xmm13
movapd %xmm1,%xmm8
mov    0x20(%rsp),%eax
cmp    $0x4,%ecx
jl     1a5f <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x95f>
add    $0xfffffffd,%ecx
xor    %edx,%edx
xor    %esi,%esi
movapd %xmm3,%xmm7
nopl   0x0(%rax,%rax,1)
movapd %xmm10,-0x40(%rsp)
movapd %xmm14,-0x10(%rsp)
movupd (%r8,%rdx,1),%xmm5
movupd 0x10(%r8,%rdx,1),%xmm12
movupd 0x20(%r8,%rdx,1),%xmm11
movups 0x30(%r8,%rdx,1),%xmm0
movaps %xmm0,-0x80(%rsp)
movsd  (%r9,%rdx,1),%xmm4
movsd  0x8(%r9,%rdx,1),%xmm2
movsd  0x10(%r9,%rdx,1),%xmm1
movsd  0x18(%r9,%rdx,1),%xmm0
unpcklpd %xmm4,%xmm4
movapd %xmm5,%xmm3
mulpd  %xmm4,%xmm3
subpd  %xmm3,%xmm10
movapd %xmm12,%xmm3
movapd %xmm4,(%rsp)
mulpd  %xmm4,%xmm3
subpd  %xmm3,%xmm14
movapd %xmm5,%xmm3
shufpd $0x1,%xmm5,%xmm3
movapd %xmm12,%xmm4
shufpd $0x1,%xmm12,%xmm4
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm9
mulpd  %xmm3,%xmm2
subpd  %xmm2,%xmm7
unpcklpd %xmm1,%xmm1
movapd %xmm5,%xmm2
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm13
mulpd  %xmm12,%xmm1
subpd  %xmm1,%xmm8
unpcklpd %xmm0,%xmm0
movapd %xmm5,-0x50(%rsp)
movapd %xmm5,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
movapd %xmm12,-0x20(%rsp)
mulpd  %xmm12,%xmm0
subpd  %xmm0,%xmm15
movsd  0x20(%r9,%rdx,1),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm11,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm10
movapd -0x80(%rsp),%xmm1
movapd %xmm1,%xmm0
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm14
movapd %xmm1,%xmm0
movapd %xmm1,%xmm4
shufpd $0x1,%xmm1,%xmm0
movapd %xmm11,%xmm1
shufpd $0x1,%xmm11,%xmm1
movsd  0x28(%r9,%rdx,1),%xmm3
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm1
subpd  %xmm1,%xmm7
mulpd  %xmm0,%xmm3
subpd  %xmm3,%xmm9
movsd  0x30(%r9,%rdx,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm11,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm13
mulpd  %xmm4,%xmm0
subpd  %xmm0,%xmm8
movsd  0x38(%r9,%rdx,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm11,-0x30(%rsp)
mulpd  %xmm0,%xmm11
subpd  %xmm11,%xmm6
mulpd  %xmm4,%xmm0
subpd  %xmm0,%xmm15
movupd 0x40(%r8,%rdx,1),%xmm5
movupd 0x50(%r8,%rdx,1),%xmm3
movsd  0x40(%r9,%rdx,1),%xmm11
unpcklpd %xmm11,%xmm11
movapd %xmm5,%xmm0
mulpd  %xmm11,%xmm0
subpd  %xmm0,%xmm10
movapd %xmm3,%xmm0
mulpd  %xmm11,%xmm0
subpd  %xmm0,%xmm14
movapd %xmm5,%xmm0
shufpd $0x1,%xmm5,%xmm0
movapd %xmm3,%xmm1
shufpd $0x1,%xmm3,%xmm1
movsd  0x48(%r9,%rdx,1),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm9
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm7
movsd  0x50(%r9,%rdx,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm5,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm13
mulpd  %xmm3,%xmm0
subpd  %xmm0,%xmm8
movsd  0x58(%r9,%rdx,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm5,-0x60(%rsp)
movapd %xmm5,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
mulpd  %xmm3,%xmm0
subpd  %xmm0,%xmm15
movupd 0x60(%r8,%rdx,1),%xmm12
movupd 0x70(%r8,%rdx,1),%xmm1
movsd  0x60(%r9,%rdx,1),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm12,%xmm4
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm10
movapd %xmm10,-0x70(%rsp)
movapd %xmm1,%xmm4
mulpd  %xmm0,%xmm4
subpd  %xmm4,%xmm14
movapd %xmm12,%xmm4
shufpd $0x1,%xmm12,%xmm4
movsd  0x68(%r9,%rdx,1),%xmm5
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm4
subpd  %xmm4,%xmm7
movapd %xmm1,%xmm4
shufpd $0x1,%xmm1,%xmm4
mulpd  %xmm4,%xmm5
subpd  %xmm5,%xmm9
movsd  0x70(%r9,%rdx,1),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm12,%xmm5
mulpd  %xmm4,%xmm5
subpd  %xmm5,%xmm13
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm8
movsd  0x78(%r9,%rdx,1),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm12,%xmm5
mulpd  %xmm4,%xmm5
subpd  %xmm5,%xmm6
movapd -0x70(%rsp),%xmm10
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm15
add    $0x4,%esi
sub    $0xffffffffffffff80,%rdx
cmp    %ecx,%esi
jl     1690 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x590>
movapd 0x67a(%rip),%xmm10
movapd -0x50(%rsp),%xmm4
xorpd  %xmm10,%xmm4
movapd %xmm4,-0x50(%rsp)
movapd -0x20(%rsp),%xmm5
xorpd  %xmm10,%xmm5
movapd -0x30(%rsp),%xmm14
xorpd  %xmm10,%xmm14
movapd -0x80(%rsp),%xmm4
xorpd  %xmm10,%xmm4
movaps -0x60(%rsp),%xmm10
xorps  0x639(%rip),%xmm10
movaps %xmm10,-0x60(%rsp)
movapd 0x62a(%rip),%xmm10
xorpd  %xmm10,%xmm3
xorpd  %xmm10,%xmm12
xorpd  %xmm10,%xmm1
movapd (%rsp),%xmm10
mulpd  %xmm10,%xmm5
addpd  -0x10(%rsp),%xmm5
mulpd  %xmm2,%xmm4
addpd  %xmm5,%xmm4
mulpd  %xmm11,%xmm3
addpd  %xmm4,%xmm3
mulpd  %xmm0,%xmm1
addpd  %xmm3,%xmm1
movapd -0x50(%rsp),%xmm3
mulpd  %xmm10,%xmm3
addpd  -0x40(%rsp),%xmm3
mulpd  %xmm2,%xmm14
addpd  %xmm3,%xmm14
movapd -0x60(%rsp),%xmm2
mulpd  %xmm11,%xmm2
addpd  %xmm14,%xmm2
mulpd  %xmm0,%xmm12
addpd  %xmm2,%xmm12
shufpd $0x1,%xmm9,%xmm9
shufpd $0x1,%xmm7,%xmm7
movapd %xmm1,%xmm14
movapd %xmm12,%xmm10
movapd %xmm7,%xmm3
jmp    1a6a <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x96a>
shufpd $0x1,%xmm3,%xmm3
shufpd $0x1,%xmm9,%xmm9
mov    0x40(%rsp),%edx
test   %eax,%eax
je     1aca <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x9ca>
mov    0x28(%rsp),%rax
movupd (%rax),%xmm0
movupd 0x10(%rax),%xmm1
movupd 0x20(%rax),%xmm2
movapd %xmm3,%xmm4
movupd 0x30(%rax),%xmm3
addpd  %xmm0,%xmm10
addpd  %xmm1,%xmm14
addpd  %xmm2,%xmm4
addpd  %xmm3,%xmm9
movupd 0x40(%rax),%xmm0
addpd  %xmm0,%xmm13
movupd 0x50(%rax),%xmm0
addpd  %xmm0,%xmm8
movupd 0x60(%rax),%xmm0
addpd  %xmm0,%xmm6
movupd 0x70(%rax),%xmm0
addpd  %xmm0,%xmm15
jmp    1ace <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0x9ce>
movapd %xmm3,%xmm4
mov    0x38(%rsp),%rcx
mov    0x30(%rsp),%rax
test   %edx,%edx
je     1bfd <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xafd>
mov    0x48(%rsp),%rdx
movsd  (%rdx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm10
mulpd  %xmm0,%xmm14
movupd %xmm10,(%rax)
movupd %xmm14,0x10(%rax)
movsd  0x8(%rcx),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm10,%xmm1
mulpd  %xmm0,%xmm1
movapd %xmm4,%xmm5
subpd  %xmm1,%xmm5
mulpd  %xmm14,%xmm0
subpd  %xmm0,%xmm9
movsd  0x8(%rdx),%xmm0
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm5
mulpd  %xmm9,%xmm0
movupd %xmm5,0x20(%rax)
movupd %xmm0,0x30(%rax)
movsd  0x10(%rcx),%xmm1
movsd  0x30(%rcx),%xmm2
unpcklpd %xmm1,%xmm1
movapd %xmm10,%xmm3
mulpd  %xmm1,%xmm3
subpd  %xmm3,%xmm13
mulpd  %xmm14,%xmm1
subpd  %xmm1,%xmm8
unpcklpd %xmm2,%xmm2
movapd %xmm5,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm13
mulpd  %xmm0,%xmm2
subpd  %xmm2,%xmm8
movsd  0x10(%rdx),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm13
mulpd  %xmm8,%xmm1
movupd %xmm13,0x40(%rax)
movupd %xmm1,0x50(%rax)
movsd  0x18(%rcx),%xmm2
movsd  0x38(%rcx),%xmm3
movsd  0x58(%rcx),%xmm4
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm10
subpd  %xmm10,%xmm6
mulpd  %xmm14,%xmm2
subpd  %xmm2,%xmm15
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm5
subpd  %xmm5,%xmm6
mulpd  %xmm0,%xmm3
subpd  %xmm3,%xmm15
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm13
subpd  %xmm13,%xmm6
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm15
movsd  0x18(%rdx),%xmm0
jmp    1d24 <kernel_dgemm_dtrsm_nt_4x4_lib4_new+0xc24>
movsd  0x40b(%rip),%xmm0
movapd %xmm0,%xmm1
divsd  (%rcx),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm10
mulpd  %xmm1,%xmm14
movupd %xmm10,(%rax)
movupd %xmm14,0x10(%rax)
movapd %xmm0,%xmm7
divsd  0x28(%rcx),%xmm7
movsd  0x8(%rcx),%xmm2
unpcklpd %xmm2,%xmm2
movapd %xmm10,%xmm3
mulpd  %xmm2,%xmm3
movapd %xmm4,%xmm1
subpd  %xmm3,%xmm1
mulpd  %xmm14,%xmm2
subpd  %xmm2,%xmm9
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm1
mulpd  %xmm9,%xmm7
movupd %xmm1,0x20(%rax)
movupd %xmm7,0x30(%rax)
movapd %xmm0,%xmm2
divsd  0x50(%rcx),%xmm2
movsd  0x10(%rcx),%xmm3
movsd  0x30(%rcx),%xmm4
unpcklpd %xmm3,%xmm3
movapd %xmm10,%xmm5
mulpd  %xmm3,%xmm5
subpd  %xmm5,%xmm13
mulpd  %xmm14,%xmm3
subpd  %xmm3,%xmm8
unpcklpd %xmm4,%xmm4
movapd %xmm1,%xmm3
mulpd  %xmm4,%xmm3
subpd  %xmm3,%xmm13
mulpd  %xmm7,%xmm4
subpd  %xmm4,%xmm8
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm13
mulpd  %xmm8,%xmm2
movupd %xmm13,0x40(%rax)
movupd %xmm2,0x50(%rax)
divsd  0x78(%rcx),%xmm0
movsd  0x18(%rcx),%xmm3
movsd  0x38(%rcx),%xmm4
movsd  0x58(%rcx),%xmm5
unpcklpd %xmm3,%xmm3
mulpd  %xmm3,%xmm10
subpd  %xmm10,%xmm6
mulpd  %xmm14,%xmm3
subpd  %xmm3,%xmm15
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm1
subpd  %xmm1,%xmm6
mulpd  %xmm7,%xmm4
subpd  %xmm4,%xmm15
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm13
subpd  %xmm13,%xmm6
mulpd  %xmm2,%xmm5
subpd  %xmm5,%xmm15
unpcklpd %xmm0,%xmm0
mulpd  %xmm0,%xmm6
mulpd  %xmm15,%xmm0
movupd %xmm6,0x60(%rax)
movupd %xmm0,0x70(%rax)
add    $0x18,%rsp
ret

LLVM IR (-O0):
define void @kernel_dgemm_dtrsm_nt_4x4_lib4_new(i32 %0, double* %1, double* %2, i32 %3, double* %4, double* %5, i32 %6, double* %7, double* %8, double* %9, i32 %10, double* %11) {
%13 = alloca i32
%14 = alloca double*
%15 = alloca double*
%16 = alloca i32
%17 = alloca double*
%18 = alloca double*
%19 = alloca i32
%20 = alloca double*
%21 = alloca double*
%22 = alloca double*
%23 = alloca i32
%24 = alloca double*
%25 = alloca i32
%26 = alloca i32
%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
%58 = alloca double
%59 = alloca double
%60 = alloca double
store i32 %0, i32* %13
store double* %1, double** %14
store double* %2, double** %15
store i32 %3, i32* %16
store double* %4, double** %17
store double* %5, double** %18
store i32 %6, i32* %19
store double* %7, double** %20
store double* %8, double** %21
store double* %9, double** %22
store i32 %10, i32* %23
store double* %11, double** %24
store i32 4, i32* %25
store double 0.000000e+00, double* %35
store double 0.000000e+00, double* %36
store double 0.000000e+00, double* %37
store double 0.000000e+00, double* %38
store double 0.000000e+00, double* %39
store double 0.000000e+00, double* %40
store double 0.000000e+00, double* %41
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 i32 0, i32* %26
%61 = load i32, i32* %13
%62 = icmp sgt i32 %61, 0
br i1 %62, label %63, label %531
63: ; preds = %12
br label %64
64: ; preds = %426, %63
%65 = load i32, i32* %26
%66 = load i32, i32* %13
%67 = sub nsw i32 %66, 3
%68 = icmp slt i32 %65, %67
br i1 %68, label %69, label %429
69: ; preds = %64
%70 = load double*, double** %14
%71 = getelementptr inbounds double, double* %70, i64 0
%72 = load double, double* %71
store double %72, double* %27
%73 = load double*, double** %14
%74 = getelementptr inbounds double, double* %73, i64 1
%75 = load double, double* %74
store double %75, double* %28
%76 = load double*, double** %14
%77 = getelementptr inbounds double, double* %76, i64 2
%78 = load double, double* %77
store double %78, double* %29
%79 = load double*, double** %14
%80 = getelementptr inbounds double, double* %79, i64 3
%81 = load double, double* %80
store double %81, double* %30
%82 = load double*, double** %15
%83 = getelementptr inbounds double, double* %82, i64 0
%84 = load double, double* %83
store double %84, double* %31
%85 = load double*, double** %15
%86 = getelementptr inbounds double, double* %85, i64 1
%87 = load double, double* %86
store double %87, double* %32
%88 = load double*, double** %15
%89 = getelementptr inbounds double, double* %88, i64 2
%90 = load double, double* %89
store double %90, double* %33
%91 = load double*, double** %15
%92 = getelementptr inbounds double, double* %91, i64 3
%93 = load double, double* %92
store double %93, double* %34
%94 = load double, double* %27
%95 = load double, double* %31
%96 = load double, double* %35
%97 = call double @llvm.fmuladd.f64(double %94, double %95, double %96)
store double %97, double* %35
%98 = load double, double* %28
%99 = load double, double* %31
%100 = load double, double* %39
%101 = call double @llvm.fmuladd.f64(double %98, double %99, double %100)
store double %101, double* %39
%102 = load double, double* %29
%103 = load double, double* %31
%104 = load double, double* %43
%105 = call double @llvm.fmuladd.f64(double %102, double %103, double %104)
store double %105, double* %43
%106 = load double, double* %30
%107 = load double, double* %31
%108 = load double, double* %47
%109 = call double @llvm.fmuladd.f64(double %106, double %107, double %108)
store double %109, double* %47
%110 = load double, double* %27
%111 = load double, double* %32
%112 = load double, double* %36
%113 = call double @llvm.fmuladd.f64(double %110, double %111, double %112)
store double %113, double* %36
%114 = load double, double* %28
%115 = load double, double* %32
%116 = load double, double* %40
%117 = call double @llvm.fmuladd.f64(double %114, double %115, double %116)
store double %117, double* %40
%118 = load double, double* %29
%119 = load double, double* %32
%120 = load double, double* %44
%121 = call double @llvm.fmuladd.f64(double %118, double %119, double %120)
store double %121, double* %44
%122 = load double, double* %30
%123 = load double, double* %32
%124 = load double, double* %48
%125 = call double @llvm.fmuladd.f64(double %122, double %123, double %124)
store double %125, double* %48
%126 = load double, double* %27
%127 = load double, double* %33
%128 = load double, double* %37
%129 = call double @llvm.fmuladd.f64(double %126, double %127, double %128)
store double %129, double* %37
%130 = load double, double* %28
%131 = load double, double* %33
%132 = load double, double* %41
%133 = call double @llvm.fmuladd.f64(double %130, double %131, double %132)
store double %133, double* %41
%134 = load double, double* %29
%135 = load double, double* %33
%136 = load double, double* %45
%137 = call double @llvm.fmuladd.f64(double %134, double %135, double %136)
store double %137, double* %45
%138 = load double, double* %30
%139 = load double, double* %33
%140 = load double, double* %49
%141 = call double @llvm.fmuladd.f64(double %138, double %139, double %140)
store double %141, double* %49
%142 = load double, double* %27
%143 = load double, double* %34
%144 = load double, double* %38
%145 = call double @llvm.fmuladd.f64(double %142, double %143, double %144)
store double %145, double* %38
%146 = load double, double* %28
%147 = load double, double* %34
%148 = load double, double* %42
%149 = call double @llvm.fmuladd.f64(double %146, double %147, double %148)
store double %149, double* %42
%150 = load double, double* %29
%151 = load double, double* %34
%152 = load double, double* %46
%153 = call double @llvm.fmuladd.f64(double %150, double %151, double %152)
store double %153, double* %46
%154 = load double, double* %30
%155 = load double, double* %34
%156 = load double, double* %50
%157 = call double @llvm.fmuladd.f64(double %154, double %155, double %156)
store double %157, double* %50
%158 = load double*, double** %14
%159 = getelementptr inbounds double, double* %158, i64 4
%160 = load double, double* %159
store double %160, double* %27
%161 = load double*, double** %14
%162 = getelementptr inbounds double, double* %161, i64 5
%163 = load double, double* %162
store double %163, double* %28
%164 = load double*, double** %14
%165 = getelementptr inbounds double, double* %164, i64 6
%166 = load double, double* %165
store double %166, double* %29
%167 = load double*, double** %14
%168 = getelementptr inbounds double, double* %167, i64 7
%169 = load double, double* %168
store double %169, double* %30
%170 = load double*, double** %15
%171 = getelementptr inbounds double, double* %170, i64 4
%172 = load double, double* %171
store double %172, double* %31
%173 = load double*, double** %15
%174 = getelementptr inbounds double, double* %173, i64 5
%175 = load double, double* %174
store double %175, double* %32
%176 = load double*, double** %15
%177 = getelementptr inbounds double, double* %176, i64 6
%178 = load double, double* %177
store double %178, double* %33
%179 = load double*, double** %15
%180 = getelementptr inbounds double, double* %179, i64 7
%181 = load double, double* %180
store double %181, double* %34
%182 = load double, double* %27
%183 = load double, double* %31
%184 = load double, double* %35
%185 = call double @llvm.fmuladd.f64(double %182, double %183, double %184)
store double %185, double* %35
%186 = load double, double* %28
%187 = load double, double* %31
%188 = load double, double* %39
%189 = call double @llvm.fmuladd.f64(double %186, double %187, double %188)
store double %189, double* %39
%190 = load double, double* %29
%191 = load double, double* %31
%192 = load double, double* %43
%193 = call double @llvm.fmuladd.f64(double %190, double %191, double %192)
store double %193, double* %43
%194 = load double, double* %30
%195 = load double, double* %31
%196 = load double, double* %47
%197 = call double @llvm.fmuladd.f64(double %194, double %195, double %196)
store double %197, double* %47
%198 = load double, double* %27
%199 = load double, double* %32
%200 = load double, double* %36
%201 = call double @llvm.fmuladd.f64(double %198, double %199, double %200)
store double %201, double* %36
%202 = load double, double* %28
%203 = load double, double* %32
%204 = load double, double* %40
%205 = call double @llvm.fmuladd.f64(double %202, double %203, double %204)
store double %205, double* %40
%206 = load double, double* %29
%207 = load double, double* %32
%208 = load double, double* %44
%209 = call double @llvm.fmuladd.f64(double %206, double %207, double %208)
store double %209, double* %44
%210 = load double, double* %30
%211 = load double, double* %32
%212 = load double, double* %48
%213 = call double @llvm.fmuladd.f64(double %210, double %211, double %212)
store double %213, double* %48
%214 = load double, double* %27
%215 = load double, double* %33
%216 = load double, double* %37
%217 = call double @llvm.fmuladd.f64(double %214, double %215, double %216)
store double %217, double* %37
%218 = load double, double* %28
%219 = load double, double* %33
%220 = load double, double* %41
%221 = call double @llvm.fmuladd.f64(double %218, double %219, double %220)
store double %221, double* %41
%222 = load double, double* %29
%223 = load double, double* %33
%224 = load double, double* %45
%225 = call double @llvm.fmuladd.f64(double %222, double %223, double %224)
store double %225, double* %45
%226 = load double, double* %30
%227 = load double, double* %33
%228 = load double, double* %49
%229 = call double @llvm.fmuladd.f64(double %226, double %227, double %228)
store double %229, double* %49
%230 = load double, double* %27
%231 = load double, double* %34
%232 = load double, double* %38
%233 = call double @llvm.fmuladd.f64(double %230, double %231, double %232)
store double %233, double* %38
%234 = load double, double* %28
%235 = load double, double* %34
%236 = load double, double* %42
%237 = call double @llvm.fmuladd.f64(double %234, double %235, double %236)
store double %237, double* %42
%238 = load double, double* %29
%239 = load double, double* %34
%240 = load double, double* %46
%241 = call double @llvm.fmuladd.f64(double %238, double %239, double %240)
store double %241, double* %46
%242 = load double, double* %30
%243 = load double, double* %34
%244 = load double, double* %50
%245 = call double @llvm.fmuladd.f64(double %242, double %243, double %244)
store double %245, double* %50
%246 = load double*, double** %14
%247 = getelementptr inbounds double, double* %246, i64 8
%248 = load double, double* %247
store double %248, double* %27
%249 = load double*, double** %14
%250 = getelementptr inbounds double, double* %249, i64 9
%251 = load double, double* %250
store double %251, double* %28
%252 = load double*, double** %14
%253 = getelementptr inbounds double, double* %252, i64 10
%254 = load double, double* %253
store double %254, double* %29
%255 = load double*, double** %14
%256 = getelementptr inbounds double, double* %255, i64 11
%257 = load double, double* %256
store double %257, double* %30
%258 = load double*, double** %15
%259 = getelementptr inbounds double, double* %258, i64 8
%260 = load double, double* %259
store double %260, double* %31
%261 = load double*, double** %15
%262 = getelementptr inbounds double, double* %261, i64 9
%263 = load double, double* %262
store double %263, double* %32
%264 = load double*, double** %15
%265 = getelementptr inbounds double, double* %264, i64 10
%266 = load double, double* %265
store double %266, double* %33
%267 = load double*, double** %15
%268 = getelementptr inbounds double, double* %267, i64 11
%269 = load double, double* %268
store double %269, double* %34
%270 = load double, double* %27
%271 = load double, double* %31
%272 = load double, double* %35
%273 = call double @llvm.fmuladd.f64(double %270, double %271, double %272)
store double %273, double* %35
%274 = load double, double* %28
%275 = load double, double* %31
%276 = load double, double* %39
%277 = call double @llvm.fmuladd.f64(double %274, double %275, double %276)
store double %277, double* %39
%278 = load double, double* %29
%279 = load double, double* %31
%280 = load double, double* %43
%281 = call double @llvm.fmuladd.f64(double %278, double %279, double %280)
store double %281, double* %43
%282 = load double, double* %30
%283 = load double, double* %31
%284 = load double, double* %47
%285 = call double @llvm.fmuladd.f64(double %282, double %283, double %284)
store double %285, double* %47
%286 = load double, double* %27
%287 = load double, double* %32
%288 = load double, double* %36
%289 = call double @llvm.fmuladd.f64(double %286, double %287, double %288)
store double %289, double* %36
%290 = load double, double* %28
%291 = load double, double* %32
%292 = load double, double* %40
%293 = call double @llvm.fmuladd.f64(double %290, double %291, double %292)
store double %293, double* %40
%294 = load double, double* %29
%295 = load double, double* %32
%296 = load double, double* %44
%297 = call double @llvm.fmuladd.f64(double %294, double %295, double %296)
store double %297, double* %44
%298 = load double, double* %30
%299 = load double, double* %32
%300 = load double, double* %48
%301 = call double @llvm.fmuladd.f64(double %298, double %299, double %300)
store double %301, double* %48
%302 = load double, double* %27
%303 = load double, double* %33
%304 = load double, double* %37
%305 = call double @llvm.fmuladd.f64(double %302, double %303, double %304)
store double %305, double* %37
%306 = load double, double* %28
%307 = load double, double* %33
%308 = load double, double* %41
%309 = call double @llvm.fmuladd.f64(double %306, double %307, double %308)
store double %309, double* %41
%310 = load double, double* %29
%311 = load double, double* %33
%312 = load double, double* %45
%313 = call double @llvm.fmuladd.f64(double %310, double %311, double %312)
store double %313, double* %45
%314 = load double, double* %30
%315 = load double, double* %33
%316 = load double, double* %49
%317 = call double @llvm.fmuladd.f64(double %314, double %315, double %316)
store double %317, double* %49
%318 = load double, double* %27
%319 = load double, double* %34
%320 = load double, double* %38
%321 = call double @llvm.fmuladd.f64(double %318, double %319, double %320)
store double %321, double* %38
%322 = load double, double* %28
%323 = load double, double* %34
%324 = load double, double* %42
%325 = call double @llvm.fmuladd.f64(double %322, double %323, double %324)
store double %325, double* %42
%326 = load double, double* %29
%327 = load double, double* %34
%328 = load double, double* %46
%329 = call double @llvm.fmuladd.f64(double %326, double %327, double %328)
store double %329, double* %46
%330 = load double, double* %30
%331 = load double, double* %34
%332 = load double, double* %50
%333 = call double @llvm.fmuladd.f64(double %330, double %331, double %332)
store double %333, double* %50
%334 = load double*, double** %14
%335 = getelementptr inbounds double, double* %334, i64 12
%336 = load double, double* %335
store double %336, double* %27
%337 = load double*, double** %14
%338 = getelementptr inbounds double, double* %337, i64 13
%339 = load double, double* %338
store double %339, double* %28
%340 = load double*, double** %14
%341 = getelementptr inbounds double, double* %340, i64 14
%342 = load double, double* %341
store double %342, double* %29
%343 = load double*, double** %14
%344 = getelementptr inbounds double, double* %343, i64 15
%345 = load double, double* %344
store double %345, double* %30
%346 = load double*, double** %15
%347 = getelementptr inbounds double, double* %346, i64 12
%348 = load double, double* %347
store double %348, double* %31
%349 = load double*, double** %15
%350 = getelementptr inbounds double, double* %349, i64 13
%351 = load double, double* %350
store double %351, double* %32
%352 = load double*, double** %15
%353 = getelementptr inbounds double, double* %352, i64 14
%354 = load double, double* %353
store double %354, double* %33
%355 = load double*, double** %15
%356 = getelementptr inbounds double, double* %355, i64 15
%357 = load double, double* %356
store double %357, double* %34
%358 = load double, double* %27
%359 = load double, double* %31
%360 = load double, double* %35
%361 = call double @llvm.fmuladd.f64(double %358, double %359, double %360)
store double %361, double* %35
%362 = load double, double* %28
%363 = load double, double* %31
%364 = load double, double* %39
%365 = call double @llvm.fmuladd.f64(double %362, double %363, double %364)
store double %365, double* %39
%366 = load double, double* %29
%367 = load double, double* %31
%368 = load double, double* %43
%369 = call double @llvm.fmuladd.f64(double %366, double %367, double %368)
store double %369, double* %43
%370 = load double, double* %30
%371 = load double, double* %31
%372 = load double, double* %47
%373 = call double @llvm.fmuladd.f64(double %370, double %371, double %372)
store double %373, double* %47
%374 = load double, double* %27
%375 = load double, double* %32
%376 = load double, double* %36
%377 = call double @llvm.fmuladd.f64(double %374, double %375, double %376)
store double %377, double* %36
%378 = load double, double* %28
%379 = load double, double* %32
%380 = load double, double* %40
%381 = call double @llvm.fmuladd.f64(double %378, double %379, double %380)
store double %381, double* %40
%382 = load double, double* %29
%383 = load double, double* %32
%384 = load double, double* %44
%385 = call double @llvm.fmuladd.f64(double %382, double %383, double %384)
store double %385, double* %44
%386 = load double, double* %30
%387 = load double, double* %32
%388 = load double, double* %48
%389 = call double @llvm.fmuladd.f64(double %386, double %387, double %388)
store double %389, double* %48
%390 = load double, double* %27
%391 = load double, double* %33
%392 = load double, double* %37
%393 = call double @llvm.fmuladd.f64(double %390, double %391, double %392)
store double %393, double* %37
%394 = load double, double* %28
%395 = load double, double* %33
%396 = load double, double* %41
%397 = call double @llvm.fmuladd.f64(double %394, double %395, double %396)
store double %397, double* %41
%398 = load double, double* %29
%399 = load double, double* %33
%400 = load double, double* %45
%401 = call double @llvm.fmuladd.f64(double %398, double %399, double %400)
store double %401, double* %45
%402 = load double, double* %30
%403 = load double, double* %33
%404 = load double, double* %49
%405 = call double @llvm.fmuladd.f64(double %402, double %403, double %404)
store double %405, double* %49
%406 = load double, double* %27
%407 = load double, double* %34
%408 = load double, double* %38
%409 = call double @llvm.fmuladd.f64(double %406, double %407, double %408)
store double %409, double* %38
%410 = load double, double* %28
%411 = load double, double* %34
%412 = load double, double* %42
%413 = call double @llvm.fmuladd.f64(double %410, double %411, double %412)
store double %413, double* %42
%414 = load double, double* %29
%415 = load double, double* %34
%416 = load double, double* %46
%417 = call double @llvm.fmuladd.f64(double %414, double %415, double %416)
store double %417, double* %46
%418 = load double, double* %30
%419 = load double, double* %34
%420 = load double, double* %50
%421 = call double @llvm.fmuladd.f64(double %418, double %419, double %420)
store double %421, double* %50
%422 = load double*, double** %14
%423 = getelementptr inbounds double, double* %422, i64 16
store double* %423, double** %14
%424 = load double*, double** %15
%425 = getelementptr inbounds double, double* %424, i64 16
store double* %425, double** %15
br label %426
426: ; preds = %69
%427 = load i32, i32* %26
%428 = add nsw i32 %427, 4
store i32 %428, i32* %26
br label %64
429: ; preds = %64
br label %430
430: ; preds = %527, %429
%431 = load i32, i32* %26
%432 = load i32, i32* %13
%433 = icmp slt i32 %431, %432
br i1 %433, label %434, label %530
434: ; preds = %430
%435 = load double*, double** %14
%436 = getelementptr inbounds double, double* %435, i64 0
%437 = load double, double* %436
store double %437, double* %27
%438 = load double*, double** %14
%439 = getelementptr inbounds double, double* %438, i64 1
%440 = load double, double* %439
store double %440, double* %28
%441 = load double*, double** %14
%442 = getelementptr inbounds double, double* %441, i64 2
%443 = load double, double* %442
store double %443, double* %29
%444 = load double*, double** %14
%445 = getelementptr inbounds double, double* %444, i64 3
%446 = load double, double* %445
store double %446, double* %30
%447 = load double*, double** %15
%448 = getelementptr inbounds double, double* %447, i64 0
%449 = load double, double* %448
store double %449, double* %31
%450 = load double*, double** %15
%451 = getelementptr inbounds double, double* %450, i64 1
%452 = load double, double* %451
store double %452, double* %32
%453 = load double*, double** %15
%454 = getelementptr inbounds double, double* %453, i64 2
%455 = load double, double* %454
store double %455, double* %33
%456 = load double*, double** %15
%457 = getelementptr inbounds double, double* %456, i64 3
%458 = load double, double* %457
store double %458, double* %34
%459 = load double, double* %27
%460 = load double, double* %31
%461 = load double, double* %35
%462 = call double @llvm.fmuladd.f64(double %459, double %460, double %461)
store double %462, double* %35
%463 = load double, double* %28
%464 = load double, double* %31
%465 = load double, double* %39
%466 = call double @llvm.fmuladd.f64(double %463, double %464, double %465)
store double %466, double* %39
%467 = load double, double* %29
%468 = load double, double* %31
%469 = load double, double* %43
%470 = call double @llvm.fmuladd.f64(double %467, double %468, double %469)
store double %470, double* %43
%471 = load double, double* %30
%472 = load double, double* %31
%473 = load double, double* %47
%474 = call double @llvm.fmuladd.f64(double %471, double %472, double %473)
store double %474, double* %47
%475 = load double, double* %27
%476 = load double, double* %32
%477 = load double, double* %36
%478 = call double @llvm.fmuladd.f64(double %475, double %476, double %477)
store double %478, double* %36
%479 = load double, double* %28
%480 = load double, double* %32
%481 = load double, double* %40
%482 = call double @llvm.fmuladd.f64(double %479, double %480, double %481)
store double %482, double* %40
%483 = load double, double* %29
%484 = load double, double* %32
%485 = load double, double* %44
%486 = call double @llvm.fmuladd.f64(double %483, double %484, double %485)
store double %486, double* %44
%487 = load double, double* %30
%488 = load double, double* %32
%489 = load double, double* %48
%490 = call double @llvm.fmuladd.f64(double %487, double %488, double %489)
store double %490, double* %48
%491 = load double, double* %27
%492 = load double, double* %33
%493 = load double, double* %37
%494 = call double @llvm.fmuladd.f64(double %491, double %492, double %493)
store double %494, double* %37
%495 = load double, double* %28
%496 = load double, double* %33
%497 = load double, double* %41
%498 = call double @llvm.fmuladd.f64(double %495, double %496, double %497)
store double %498, double* %41
%499 = load double, double* %29
%500 = load double, double* %33
%501 = load double, double* %45
%502 = call double @llvm.fmuladd.f64(double %499, double %500, double %501)
store double %502, double* %45
%503 = load double, double* %30
%504 = load double, double* %33
%505 = load double, double* %49
%506 = call double @llvm.fmuladd.f64(double %503, double %504, double %505)
store double %506, double* %49
%507 = load double, double* %27
%508 = load double, double* %34
%509 = load double, double* %38
%510 = call double @llvm.fmuladd.f64(double %507, double %508, double %509)
store double %510, double* %38
%511 = load double, double* %28
%512 = load double, double* %34
%513 = load double, double* %42
%514 = call double @llvm.fmuladd.f64(double %511, double %512, double %513)
store double %514, double* %42
%515 = load double, double* %29
%516 = load double, double* %34
%517 = load double, double* %46
%518 = call double @llvm.fmuladd.f64(double %515, double %516, double %517)
store double %518, double* %46
%519 = load double, double* %30
%520 = load double, double* %34
%521 = load double, double* %50
%522 = call double @llvm.fmuladd.f64(double %519, double %520, double %521)
store double %522, double* %50
%523 = load double*, double** %14
%524 = getelementptr inbounds double, double* %523, i64 4
store double* %524, double** %14
%525 = load double*, double** %15
%526 = getelementptr inbounds double, double* %525, i64 4
store double* %526, double** %15
br label %527
527: ; preds = %434
%528 = load i32, i32* %26
%529 = add nsw i32 %528, 1
store i32 %529, i32* %26
br label %430
530: ; preds = %430
br label %531
531: ; preds = %530, %12
store i32 0, i32* %26
br label %532
532: ; preds = %958, %531
%533 = load i32, i32* %26
%534 = load i32, i32* %16
%535 = sub nsw i32 %534, 3
%536 = icmp slt i32 %533, %535
br i1 %536, label %537, label %961
537: ; preds = %532
%538 = load double*, double** %17
%539 = getelementptr inbounds double, double* %538, i64 0
%540 = load double, double* %539
store double %540, double* %27
%541 = load double*, double** %17
%542 = getelementptr inbounds double, double* %541, i64 1
%543 = load double, double* %542
store double %543, double* %28
%544 = load double*, double** %17
%545 = getelementptr inbounds double, double* %544, i64 2
%546 = load double, double* %545
store double %546, double* %29
%547 = load double*, double** %17
%548 = getelementptr inbounds double, double* %547, i64 3
%549 = load double, double* %548
store double %549, double* %30
%550 = load double*, double** %18
%551 = getelementptr inbounds double, double* %550, i64 0
%552 = load double, double* %551
store double %552, double* %31
%553 = load double*, double** %18
%554 = getelementptr inbounds double, double* %553, i64 1
%555 = load double, double* %554
store double %555, double* %32
%556 = load double*, double** %18
%557 = getelementptr inbounds double, double* %556, i64 2
%558 = load double, double* %557
store double %558, double* %33
%559 = load double*, double** %18
%560 = getelementptr inbounds double, double* %559, i64 3
%561 = load double, double* %560
store double %561, double* %34
%562 = load double, double* %27
%563 = load double, double* %31
%564 = load double, double* %35
%565 = fneg double %562
%566 = call double @llvm.fmuladd.f64(double %565, double %563, double %564)
store double %566, double* %35
%567 = load double, double* %28
%568 = load double, double* %31
%569 = load double, double* %39
%570 = fneg double %567
%571 = call double @llvm.fmuladd.f64(double %570, double %568, double %569)
store double %571, double* %39
%572 = load double, double* %29
%573 = load double, double* %31
%574 = load double, double* %43
%575 = fneg double %572
%576 = call double @llvm.fmuladd.f64(double %575, double %573, double %574)
store double %576, double* %43
%577 = load double, double* %30
%578 = load double, double* %31
%579 = load double, double* %47
%580 = fneg double %577
%581 = call double @llvm.fmuladd.f64(double %580, double %578, double %579)
store double %581, double* %47
%582 = load double, double* %27
%583 = load double, double* %32
%584 = load double, double* %36
%585 = fneg double %582
%586 = call double @llvm.fmuladd.f64(double %585, double %583, double %584)
store double %586, double* %36
%587 = load double, double* %28
%588 = load double, double* %32
%589 = load double, double* %40
%590 = fneg double %587
%591 = call double @llvm.fmuladd.f64(double %590, double %588, double %589)
store double %591, double* %40
%592 = load double, double* %29
%593 = load double, double* %32
%594 = load double, double* %44
%595 = fneg double %592
%596 = call double @llvm.fmuladd.f64(double %595, double %593, double %594)
store double %596, double* %44
%597 = load double, double* %30
%598 = load double, double* %32
%599 = load double, double* %48
%600 = fneg double %597
%601 = call double @llvm.fmuladd.f64(double %600, double %598, double %599)
store double %601, double* %48
%602 = load double, double* %27
%603 = load double, double* %33
%604 = load double, double* %37
%605 = fneg double %602
%606 = call double @llvm.fmuladd.f64(double %605, double %603, double %604)
store double %606, double* %37
%607 = load double, double* %28
%608 = load double, double* %33
%609 = load double, double* %41
%610 = fneg double %607
%611 = call double @llvm.fmuladd.f64(double %610, double %608, double %609)
store double %611, double* %41
%612 = load double, double* %29
%613 = load double, double* %33
%614 = load double, double* %45
%615 = fneg double %612
%616 = call double @llvm.fmuladd.f64(double %615, double %613, double %614)
store double %616, double* %45
%617 = load double, double* %30
%618 = load double, double* %33
%619 = load double, double* %49
%620 = fneg double %617
%621 = call double @llvm.fmuladd.f64(double %620, double %618, double %619)
store double %621, double* %49
%622 = load double, double* %27
%623 = load double, double* %34
%624 = load double, double* %38
%625 = fneg double %622
%626 = call double @llvm.fmuladd.f64(double %625, double %623, double %624)
store double %626, double* %38
%627 = load double, double* %28
%628 = load double, double* %34
%629 = load double, double* %42
%630 = fneg double %627
%631 = call double @llvm.fmuladd.f64(double %630, double %628, double %629)
store double %631, double* %42
%632 = load double, double* %29
%633 = load double, double* %34
%634 = load double, double* %46
%635 = fneg double %632
%636 = call double @llvm.fmuladd.f64(double %635, double %633, double %634)
store double %636, double* %46
%637 = load double, double* %30
%638 = load double, double* %34
%639 = load double, double* %50
%640 = fneg double %637
%641 = call double @llvm.fmuladd.f64(double %640, double %638, double %639)
store double %641, double* %50
%642 = load double*, double** %17
%643 = getelementptr inbounds double, double* %642, i64 4
%644 = load double, double* %643
store double %644, double* %27
%645 = load double*, double** %17
%646 = getelementptr inbounds double, double* %645, i64 5
%647 = load double, double* %646
store double %647, double* %28
%648 = load double*, double** %17
%649 = getelementptr inbounds double, double* %648, i64 6
%650 = load double, double* %649
store double %650, double* %29
%651 = load double*, double** %17
%652 = getelementptr inbounds double, double* %651, i64 7
%653 = load double, double* %652
store double %653, double* %30
%654 = load double*, double** %18
%655 = getelementptr inbounds double, double* %654, i64 4
%656 = load double, double* %655
store double %656, double* %31
%657 = load double*, double** %18
%658 = getelementptr inbounds double, double* %657, i64 5
%659 = load double, double* %658
store double %659, double* %32
%660 = load double*, double** %18
%661 = getelementptr inbounds double, double* %660, i64 6
%662 = load double, double* %661
store double %662, double* %33
%663 = load double*, double** %18
%664 = getelementptr inbounds double, double* %663, i64 7
%665 = load double, double* %664
store double %665, double* %34
%666 = load double, double* %27
%667 = load double, double* %31
%668 = load double, double* %35
%669 = fneg double %666
%670 = call double @llvm.fmuladd.f64(double %669, double %667, double %668)
store double %670, double* %35
%671 = load double, double* %28
%672 = load double, double* %31
%673 = load double, double* %39
%674 = fneg double %671
%675 = call double @llvm.fmuladd.f64(double %674, double %672, double %673)
store double %675, double* %39
%676 = load double, double* %29
%677 = load double, double* %31
%678 = load double, double* %43
%679 = fneg double %676
%680 = call double @llvm.fmuladd.f64(double %679, double %677, double %678)
store double %680, double* %43
%681 = load double, double* %30
%682 = load double, double* %31
%683 = load double, double* %47
%684 = fneg double %681
%685 = call double @llvm.fmuladd.f64(double %684, double %682, double %683)
store double %685, double* %47
%686 = load double, double* %27
%687 = load double, double* %32
%688 = load double, double* %36
%689 = fneg double %686
%690 = call double @llvm.fmuladd.f64(double %689, double %687, double %688)
store double %690, double* %36
%691 = load double, double* %28
%692 = load double, double* %32
%693 = load double, double* %40
%694 = fneg double %691
%695 = call double @llvm.fmuladd.f64(double %694, double %692, double %693)
store double %695, double* %40
%696 = load double, double* %29
%697 = load double, double* %32
%698 = load double, double* %44
%699 = fneg double %696
%700 = call double @llvm.fmuladd.f64(double %699, double %697, double %698)
store double %700, double* %44
%701 = load double, double* %30
%702 = load double, double* %32
%703 = load double, double* %48
%704 = fneg double %701
%705 = call double @llvm.fmuladd.f64(double %704, double %702, double %703)
store double %705, double* %48
%706 = load double, double* %27
%707 = load double, double* %33
%708 = load double, double* %37
%709 = fneg double %706
%710 = call double @llvm.fmuladd.f64(double %709, double %707, double %708)
store double %710, double* %37
%711 = load double, double* %28
%712 = load double, double* %33
%713 = load double, double* %41
%714 = fneg double %711
%715 = call double @llvm.fmuladd.f64(double %714, double %712, double %713)
store double %715, double* %41
%716 = load double, double* %29
%717 = load double, double* %33
%718 = load double, double* %45
%719 = fneg double %716
%720 = call double @llvm.fmuladd.f64(double %719, double %717, double %718)
store double %720, double* %45
%721 = load double, double* %30
%722 = load double, double* %33
%723 = load double, double* %49
%724 = fneg double %721
%725 = call double @llvm.fmuladd.f64(double %724, double %722, double %723)
store double %725, double* %49
%726 = load double, double* %27
%727 = load double, double* %34
%728 = load double, double* %38
%729 = fneg double %726
%730 = call double @llvm.fmuladd.f64(double %729, double %727, double %728)
store double %730, double* %38
%731 = load double, double* %28
%732 = load double, double* %34
%733 = load double, double* %42
%734 = fneg double %731
%735 = call double @llvm.fmuladd.f64(double %734, double %732, double %733)
store double %735, double* %42
%736 = load double, double* %29
%737 = load double, double* %34
%738 = load double, double* %46
%739 = fneg double %736
%740 = call double @llvm.fmuladd.f64(double %739, double %737, double %738)
store double %740, double* %46
%741 = load double, double* %30
%742 = load double, double* %34
%743 = load double, double* %50
%744 = fneg double %741
%745 = call double @llvm.fmuladd.f64(double %744, double %742, double %743)
store double %745, double* %50
%746 = load double*, double** %17
%747 = getelementptr inbounds double, double* %746, i64 8
%748 = load double, double* %747
store double %748, double* %27
%749 = load double*, double** %17
%750 = getelementptr inbounds double, double* %749, i64 9
%751 = load double, double* %750
store double %751, double* %28
%752 = load double*, double** %17
%753 = getelementptr inbounds double, double* %752, i64 10
%754 = load double, double* %753
store double %754, double* %29
%755 = load double*, double** %17
%756 = getelementptr inbounds double, double* %755, i64 11
%757 = load double, double* %756
store double %757, double* %30
%758 = load double*, double** %18
%759 = getelementptr inbounds double, double* %758, i64 8
%760 = load double, double* %759
store double %760, double* %31
%761 = load double*, double** %18
%762 = getelementptr inbounds double, double* %761, i64 9
%763 = load double, double* %762
store double %763, double* %32
%764 = load double*, double** %18
%765 = getelementptr inbounds double, double* %764, i64 10
%766 = load double, double* %765
store double %766, double* %33
%767 = load double*, double** %18
%768 = getelementptr inbounds double, double* %767, i64 11
%769 = load double, double* %768
store double %769, double* %34
%770 = load double, double* %27
%771 = load double, double* %31
%772 = load double, double* %35
%773 = fneg double %770
%774 = call double @llvm.fmuladd.f64(double %773, double %771, double %772)
store double %774, double* %35
%775 = load double, double* %28
%776 = load double, double* %31
%777 = load double, double* %39
%778 = fneg double %775
%779 = call double @llvm.fmuladd.f64(double %778, double %776, double %777)
store double %779, double* %39
%780 = load double, double* %29
%781 = load double, double* %31
%782 = load double, double* %43
%783 = fneg double %780
%784 = call double @llvm.fmuladd.f64(double %783, double %781, double %782)
store double %784, double* %43
%785 = load double, double* %30
%786 = load double, double* %31
%787 = load double, double* %47
%788 = fneg double %785
%789 = call double @llvm.fmuladd.f64(double %788, double %786, double %787)
store double %789, double* %47
%790 = load double, double* %27
%791 = load double, double* %32
%792 = load double, double* %36
%793 = fneg double %790
%794 = call double @llvm.fmuladd.f64(double %793, double %791, double %792)
store double %794, double* %36
%795 = load double, double* %28
%796 = load double, double* %32
%797 = load double, double* %40
%798 = fneg double %795
%799 = call double @llvm.fmuladd.f64(double %798, double %796, double %797)
store double %799, double* %40
%800 = load double, double* %29
%801 = load double, double* %32
%802 = load double, double* %44
%803 = fneg double %800
%804 = call double @llvm.fmuladd.f64(double %803, double %801, double %802)
store double %804, double* %44
%805 = load double, double* %30
%806 = load double, double* %32
%807 = load double, double* %48
%808 = fneg double %805
%809 = call double @llvm.fmuladd.f64(double %808, double %806, double %807)
store double %809, double* %48
%810 = load double, double* %27
%811 = load double, double* %33
%812 = load double, double* %37
%813 = fneg double %810
%814 = call double @llvm.fmuladd.f64(double %813, double %811, double %812)
store double %814, double* %37
%815 = load double, double* %28
%816 = load double, double* %33
%817 = load double, double* %41
%818 = fneg double %815
%819 = call double @llvm.fmuladd.f64(double %818, double %816, double %817)
store double %819, double* %41
%820 = load double, double* %29
%821 = load double, double* %33
%822 = load double, double* %45
%823 = fneg double %820
%824 = call double @llvm.fmuladd.f64(double %823, double %821, double %822)
store double %824, double* %45
%825 = load double, double* %30
%826 = load double, double* %33
%827 = load double, double* %49
%828 = fneg double %825
%829 = call double @llvm.fmuladd.f64(double %828, double %826, double %827)
store double %829, double* %49
%830 = load double, double* %27
%831 = load double, double* %34
%832 = load double, double* %38
%833 = fneg double %830
%834 = call double @llvm.fmuladd.f64(double %833, double %831, double %832)
store double %834, double* %38
%835 = load double, double* %28
%836 = load double, double* %34
%837 = load double, double* %42
%838 = fneg double %835
%839 = call double @llvm.fmuladd.f64(double %838, double %836, double %837)
store double %839, double* %42
%840 = load double, double* %29
%841 = load double, double* %34
%842 = load double, double* %46
%843 = fneg double %840
%844 = call double @llvm.fmuladd.f64(double %843, double %841, double %842)
store double %844, double* %46
%845 = load double, double* %30
%846 = load double, double* %34
%847 = load double, double* %50
%848 = fneg double %845
%849 = call double @llvm.fmuladd.f64(double %848, double %846, double %847)
store double %849, double* %50
%850 = load double*, double** %17
%851 = getelementptr inbounds double, double* %850, i64 12
%852 = load double, double* %851
store double %852, double* %27
%853 = load double*, double** %17
%854 = getelementptr inbounds double, double* %853, i64 13
%855 = load double, double* %854
store double %855, double* %28
%856 = load double*, double** %17
%857 = getelementptr inbounds double, double* %856, i64 14
%858 = load double, double* %857
store double %858, double* %29
%859 = load double*, double** %17
%860 = getelementptr inbounds double, double* %859, i64 15
%861 = load double, double* %860
store double %861, double* %30
%862 = load double*, double** %18
%863 = getelementptr inbounds double, double* %862, i64 12
%864 = load double, double* %863
store double %864, double* %31
%865 = load double*, double** %18
%866 = getelementptr inbounds double, double* %865, i64 13
%867 = load double, double* %866
store double %867, double* %32
%868 = load double*, double** %18
%869 = getelementptr inbounds double, double* %868, i64 14
%870 = load double, double* %869
store double %870, double* %33
%871 = load double*, double** %18
%872 = getelementptr inbounds double, double* %871, i64 15
%873 = load double, double* %872
store double %873, double* %34
%874 = load double, double* %27
%875 = load double, double* %31
%876 = load double, double* %35
%877 = fneg double %874
%878 = call double @llvm.fmuladd.f64(double %877, double %875, double %876)
store double %878, double* %35
%879 = load double, double* %28
%880 = load double, double* %31
%881 = load double, double* %39
%882 = fneg double %879
%883 = call double @llvm.fmuladd.f64(double %882, double %880, double %881)
store double %883, double* %39
%884 = load double, double* %29
%885 = load double, double* %31
%886 = load double, double* %43
%887 = fneg double %884
%888 = call double @llvm.fmuladd.f64(double %887, double %885, double %886)
store double %888, double* %43
%889 = load double, double* %30
%890 = load double, double* %31
%891 = load double, double* %47
%892 = fneg double %889
%893 = call double @llvm.fmuladd.f64(double %892, double %890, double %891)
store double %893, double* %47
%894 = load double, double* %27
%895 = load double, double* %32
%896 = load double, double* %36
%897 = fneg double %894
%898 = call double @llvm.fmuladd.f64(double %897, double %895, double %896)
store double %898, double* %36
%899 = load double, double* %28
%900 = load double, double* %32
%901 = load double, double* %40
%902 = fneg double %899
%903 = call double @llvm.fmuladd.f64(double %902, double %900, double %901)
store double %903, double* %40
%904 = load double, double* %29
%905 = load double, double* %32
%906 = load double, double* %44
%907 = fneg double %904
%908 = call double @llvm.fmuladd.f64(double %907, double %905, double %906)
store double %908, double* %44
%909 = load double, double* %30
%910 = load double, double* %32
%911 = load double, double* %48
%912 = fneg double %909
%913 = call double @llvm.fmuladd.f64(double %912, double %910, double %911)
store double %913, double* %48
%914 = load double, double* %27
%915 = load double, double* %33
%916 = load double, double* %37
%917 = fneg double %914
%918 = call double @llvm.fmuladd.f64(double %917, double %915, double %916)
store double %918, double* %37
%919 = load double, double* %28
%920 = load double, double* %33
%921 = load double, double* %41
%922 = fneg double %919
%923 = call double @llvm.fmuladd.f64(double %922, double %920, double %921)
store double %923, double* %41
%924 = load double, double* %29
%925 = load double, double* %33
%926 = load double, double* %45
%927 = fneg double %924
%928 = call double @llvm.fmuladd.f64(double %927, double %925, double %926)
store double %928, double* %45
%929 = load double, double* %30
%930 = load double, double* %33
%931 = load double, double* %49
%932 = fneg double %929
%933 = call double @llvm.fmuladd.f64(double %932, double %930, double %931)
store double %933, double* %49
%934 = load double, double* %27
%935 = load double, double* %34
%936 = load double, double* %38
%937 = fneg double %934
%938 = call double @llvm.fmuladd.f64(double %937, double %935, double %936)
store double %938, double* %38
%939 = load double, double* %28
%940 = load double, double* %34
%941 = load double, double* %42
%942 = fneg double %939
%943 = call double @llvm.fmuladd.f64(double %942, double %940, double %941)
store double %943, double* %42
%944 = load double, double* %29
%945 = load double, double* %34
%946 = load double, double* %46
%947 = fneg double %944
%948 = call double @llvm.fmuladd.f64(double %947, double %945, double %946)
store double %948, double* %46
%949 = load double, double* %30
%950 = load double, double* %34
%951 = load double, double* %50
%952 = fneg double %949
%953 = call double @llvm.fmuladd.f64(double %952, double %950, double %951)
store double %953, double* %50
%954 = load double*, double** %17
%955 = getelementptr inbounds double, double* %954, i64 16
store double* %955, double** %17
%956 = load double*, double** %18
%957 = getelementptr inbounds double, double* %956, i64 16
store double* %957, double** %18
br label %958
958: ; preds = %537
%959 = load i32, i32* %26
%960 = add nsw i32 %959, 4
store i32 %960, i32* %26
br label %532
961: ; preds = %532
%962 = load i32, i32* %19
%963 = icmp ne i32 %962, 0
br i1 %963, label %964, label %1045
964: ; preds = %961
%965 = load double*, double** %20
%966 = getelementptr inbounds double, double* %965, i64 0
%967 = load double, double* %966
%968 = load double, double* %35
%969 = fadd double %968, %967
store double %969, double* %35
%970 = load double*, double** %20
%971 = getelementptr inbounds double, double* %970, i64 1
%972 = load double, double* %971
%973 = load double, double* %39
%974 = fadd double %973, %972
store double %974, double* %39
%975 = load double*, double** %20
%976 = getelementptr inbounds double, double* %975, i64 2
%977 = load double, double* %976
%978 = load double, double* %43
%979 = fadd double %978, %977
store double %979, double* %43
%980 = load double*, double** %20
%981 = getelementptr inbounds double, double* %980, i64 3
%982 = load double, double* %981
%983 = load double, double* %47
%984 = fadd double %983, %982
store double %984, double* %47
%985 = load double*, double** %20
%986 = getelementptr inbounds double, double* %985, i64 4
%987 = load double, double* %986
%988 = load double, double* %36
%989 = fadd double %988, %987
store double %989, double* %36
%990 = load double*, double** %20
%991 = getelementptr inbounds double, double* %990, i64 5
%992 = load double, double* %991
%993 = load double, double* %40
%994 = fadd double %993, %992
store double %994, double* %40
%995 = load double*, double** %20
%996 = getelementptr inbounds double, double* %995, i64 6
%997 = load double, double* %996
%998 = load double, double* %44
%999 = fadd double %998, %997
store double %999, double* %44
%1000 = load double*, double** %20
%1001 = getelementptr inbounds double, double* %1000, i64 7
%1002 = load double, double* %1001
%1003 = load double, double* %48
%1004 = fadd double %1003, %1002
store double %1004, double* %48
%1005 = load double*, double** %20
%1006 = getelementptr inbounds double, double* %1005, i64 8
%1007 = load double, double* %1006
%1008 = load double, double* %37
%1009 = fadd double %1008, %1007
store double %1009, double* %37
%1010 = load double*, double** %20
%1011 = getelementptr inbounds double, double* %1010, i64 9
%1012 = load double, double* %1011
%1013 = load double, double* %41
%1014 = fadd double %1013, %1012
store double %1014, double* %41
%1015 = load double*, double** %20
%1016 = getelementptr inbounds double, double* %1015, i64 10
%1017 = load double, double* %1016
%1018 = load double, double* %45
%1019 = fadd double %1018, %1017
store double %1019, double* %45
%1020 = load double*, double** %20
%1021 = getelementptr inbounds double, double* %1020, i64 11
%1022 = load double, double* %1021
%1023 = load double, double* %49
%1024 = fadd double %1023, %1022
store double %1024, double* %49
%1025 = load double*, double** %20
%1026 = getelementptr inbounds double, double* %1025, i64 12
%1027 = load double, double* %1026
%1028 = load double, double* %38
%1029 = fadd double %1028, %1027
store double %1029, double* %38
%1030 = load double*, double** %20
%1031 = getelementptr inbounds double, double* %1030, i64 13
%1032 = load double, double* %1031
%1033 = load double, double* %42
%1034 = fadd double %1033, %1032
store double %1034, double* %42
%1035 = load double*, double** %20
%1036 = getelementptr inbounds double, double* %1035, i64 14
%1037 = load double, double* %1036
%1038 = load double, double* %46
%1039 = fadd double %1038, %1037
store double %1039, double* %46
%1040 = load double*, double** %20
%1041 = getelementptr inbounds double, double* %1040, i64 15
%1042 = load double, double* %1041
%1043 = load double, double* %50
%1044 = fadd double %1043, %1042
store double %1044, double* %50
br label %1045
1045: ; preds = %964, %961
%1046 = load i32, i32* %23
%1047 = icmp ne i32 %1046, 0
br i1 %1047, label %1048, label %1295
1048: ; preds = %1045
%1049 = load double*, double** %24
%1050 = getelementptr inbounds double, double* %1049, i64 0
%1051 = load double, double* %1050
store double %1051, double* %51
%1052 = load double, double* %51
%1053 = load double, double* %35
%1054 = fmul double %1053, %1052
store double %1054, double* %35
%1055 = load double, double* %51
%1056 = load double, double* %39
%1057 = fmul double %1056, %1055
store double %1057, double* %39
%1058 = load double, double* %51
%1059 = load double, double* %43
%1060 = fmul double %1059, %1058
store double %1060, double* %43
%1061 = load double, double* %51
%1062 = load double, double* %47
%1063 = fmul double %1062, %1061
store double %1063, double* %47
%1064 = load double, double* %35
%1065 = load double*, double** %21
%1066 = getelementptr inbounds double, double* %1065, i64 0
store double %1064, double* %1066
%1067 = load double, double* %39
%1068 = load double*, double** %21
%1069 = getelementptr inbounds double, double* %1068, i64 1
store double %1067, double* %1069
%1070 = load double, double* %43
%1071 = load double*, double** %21
%1072 = getelementptr inbounds double, double* %1071, i64 2
store double %1070, double* %1072
%1073 = load double, double* %47
%1074 = load double*, double** %21
%1075 = getelementptr inbounds double, double* %1074, i64 3
store double %1073, double* %1075
%1076 = load double*, double** %22
%1077 = getelementptr inbounds double, double* %1076, i64 1
%1078 = load double, double* %1077
store double %1078, double* %52
%1079 = load double*, double** %24
%1080 = getelementptr inbounds double, double* %1079, i64 1
%1081 = load double, double* %1080
store double %1081, double* %55
%1082 = load double, double* %35
%1083 = load double, double* %52
%1084 = load double, double* %36
%1085 = fneg double %1082
%1086 = call double @llvm.fmuladd.f64(double %1085, double %1083, double %1084)
store double %1086, double* %36
%1087 = load double, double* %39
%1088 = load double, double* %52
%1089 = load double, double* %40
%1090 = fneg double %1087
%1091 = call double @llvm.fmuladd.f64(double %1090, double %1088, double %1089)
store double %1091, double* %40
%1092 = load double, double* %43
%1093 = load double, double* %52
%1094 = load double, double* %44
%1095 = fneg double %1092
%1096 = call double @llvm.fmuladd.f64(double %1095, double %1093, double %1094)
store double %1096, double* %44
%1097 = load double, double* %47
%1098 = load double, double* %52
%1099 = load double, double* %48
%1100 = fneg double %1097
%1101 = call double @llvm.fmuladd.f64(double %1100, double %1098, double %1099)
store double %1101, double* %48
%1102 = load double, double* %55
%1103 = load double, double* %36
%1104 = fmul double %1103, %1102
store double %1104, double* %36
%1105 = load double, double* %55
%1106 = load double, double* %40
%1107 = fmul double %1106, %1105
store double %1107, double* %40
%1108 = load double, double* %55
%1109 = load double, double* %44
%1110 = fmul double %1109, %1108
store double %1110, double* %44
%1111 = load double, double* %55
%1112 = load double, double* %48
%1113 = fmul double %1112, %1111
store double %1113, double* %48
%1114 = load double, double* %36
%1115 = load double*, double** %21
%1116 = getelementptr inbounds double, double* %1115, i64 4
store double %1114, double* %1116
%1117 = load double, double* %40
%1118 = load double*, double** %21
%1119 = getelementptr inbounds double, double* %1118, i64 5
store double %1117, double* %1119
%1120 = load double, double* %44
%1121 = load double*, double** %21
%1122 = getelementptr inbounds double, double* %1121, i64 6
store double %1120, double* %1122
%1123 = load double, double* %48
%1124 = load double*, double** %21
%1125 = getelementptr inbounds double, double* %1124, i64 7
store double %1123, double* %1125
%1126 = load double*, double** %22
%1127 = getelementptr inbounds double, double* %1126, i64 2
%1128 = load double, double* %1127
store double %1128, double* %53
%1129 = load double*, double** %22
%1130 = getelementptr inbounds double, double* %1129, i64 6
%1131 = load double, double* %1130
store double %1131, double* %56
%1132 = load double*, double** %24
%1133 = getelementptr inbounds double, double* %1132, i64 2
%1134 = load double, double* %1133
store double %1134, double* %58
%1135 = load double, double* %35
%1136 = load double, double* %53
%1137 = load double, double* %37
%1138 = fneg double %1135
%1139 = call double @llvm.fmuladd.f64(double %1138, double %1136, double %1137)
store double %1139, double* %37
%1140 = load double, double* %39
%1141 = load double, double* %53
%1142 = load double, double* %41
%1143 = fneg double %1140
%1144 = call double @llvm.fmuladd.f64(double %1143, double %1141, double %1142)
store double %1144, double* %41
%1145 = load double, double* %43
%1146 = load double, double* %53
%1147 = load double, double* %45
%1148 = fneg double %1145
%1149 = call double @llvm.fmuladd.f64(double %1148, double %1146, double %1147)
store double %1149, double* %45
%1150 = load double, double* %47
%1151 = load double, double* %53
%1152 = load double, double* %49
%1153 = fneg double %1150
%1154 = call double @llvm.fmuladd.f64(double %1153, double %1151, double %1152)
store double %1154, double* %49
%1155 = load double, double* %36
%1156 = load double, double* %56
%1157 = load double, double* %37
%1158 = fneg double %1155
%1159 = call double @llvm.fmuladd.f64(double %1158, double %1156, double %1157)
store double %1159, double* %37
%1160 = load double, double* %40
%1161 = load double, double* %56
%1162 = load double, double* %41
%1163 = fneg double %1160
%1164 = call double @llvm.fmuladd.f64(double %1163, double %1161, double %1162)
store double %1164, double* %41
%1165 = load double, double* %44
%1166 = load double, double* %56
%1167 = load double, double* %45
%1168 = fneg double %1165
%1169 = call double @llvm.fmuladd.f64(double %1168, double %1166, double %1167)
store double %1169, double* %45
%1170 = load double, double* %48
%1171 = load double, double* %56
%1172 = load double, double* %49
%1173 = fneg double %1170
%1174 = call double @llvm.fmuladd.f64(double %1173, double %1171, double %1172)
store double %1174, double* %49
%1175 = load double, double* %58
%1176 = load double, double* %37
%1177 = fmul double %1176, %1175
store double %1177, double* %37
%1178 = load double, double* %58
%1179 = load double, double* %41
%1180 = fmul double %1179, %1178
store double %1180, double* %41
%1181 = load double, double* %58
%1182 = load double, double* %45
%1183 = fmul double %1182, %1181
store double %1183, double* %45
%1184 = load double, double* %58
%1185 = load double, double* %49
%1186 = fmul double %1185, %1184
store double %1186, double* %49
%1187 = load double, double* %37
%1188 = load double*, double** %21
%1189 = getelementptr inbounds double, double* %1188, i64 8
store double %1187, double* %1189
%1190 = load double, double* %41
%1191 = load double*, double** %21
%1192 = getelementptr inbounds double, double* %1191, i64 9
store double %1190, double* %1192
%1193 = load double, double* %45
%1194 = load double*, double** %21
%1195 = getelementptr inbounds double, double* %1194, i64 10
store double %1193, double* %1195
%1196 = load double, double* %49
%1197 = load double*, double** %21
%1198 = getelementptr inbounds double, double* %1197, i64 11
store double %1196, double* %1198
%1199 = load double*, double** %22
%1200 = getelementptr inbounds double, double* %1199, i64 3
%1201 = load double, double* %1200
store double %1201, double* %54
%1202 = load double*, double** %22
%1203 = getelementptr inbounds double, double* %1202, i64 7
%1204 = load double, double* %1203
store double %1204, double* %57
%1205 = load double*, double** %22
%1206 = getelementptr inbounds double, double* %1205, i64 11
%1207 = load double, double* %1206
store double %1207, double* %59
%1208 = load double*, double** %24
%1209 = getelementptr inbounds double, double* %1208, i64 3
%1210 = load double, double* %1209
store double %1210, double* %60
%1211 = load double, double* %35
%1212 = load double, double* %54
%1213 = load double, double* %38
%1214 = fneg double %1211
%1215 = call double @llvm.fmuladd.f64(double %1214, double %1212, double %1213)
store double %1215, double* %38
%1216 = load double, double* %39
%1217 = load double, double* %54
%1218 = load double, double* %42
%1219 = fneg double %1216
%1220 = call double @llvm.fmuladd.f64(double %1219, double %1217, double %1218)
store double %1220, double* %42
%1221 = load double, double* %43
%1222 = load double, double* %54
%1223 = load double, double* %46
%1224 = fneg double %1221
%1225 = call double @llvm.fmuladd.f64(double %1224, double %1222, double %1223)
store double %1225, double* %46
%1226 = load double, double* %47
%1227 = load double, double* %54
%1228 = load double, double* %50
%1229 = fneg double %1226
%1230 = call double @llvm.fmuladd.f64(double %1229, double %1227, double %1228)
store double %1230, double* %50
%1231 = load double, double* %36
%1232 = load double, double* %57
%1233 = load double, double* %38
%1234 = fneg double %1231
%1235 = call double @llvm.fmuladd.f64(double %1234, double %1232, double %1233)
store double %1235, double* %38
%1236 = load double, double* %40
%1237 = load double, double* %57
%1238 = load double, double* %42
%1239 = fneg double %1236
%1240 = call double @llvm.fmuladd.f64(double %1239, double %1237, double %1238)
store double %1240, double* %42
%1241 = load double, double* %44
%1242 = load double, double* %57
%1243 = load double, double* %46
%1244 = fneg double %1241
%1245 = call double @llvm.fmuladd.f64(double %1244, double %1242, double %1243)
store double %1245, double* %46
%1246 = load double, double* %48
%1247 = load double, double* %57
%1248 = load double, double* %50
%1249 = fneg double %1246
%1250 = call double @llvm.fmuladd.f64(double %1249, double %1247, double %1248)
store double %1250, double* %50
%1251 = load double, double* %37
%1252 = load double, double* %59
%1253 = load double, double* %38
%1254 = fneg double %1251
%1255 = call double @llvm.fmuladd.f64(double %1254, double %1252, double %1253)
store double %1255, double* %38
%1256 = load double, double* %41
%1257 = load double, double* %59
%1258 = load double, double* %42
%1259 = fneg double %1256
%1260 = call double @llvm.fmuladd.f64(double %1259, double %1257, double %1258)
store double %1260, double* %42
%1261 = load double, double* %45
%1262 = load double, double* %59
%1263 = load double, double* %46
%1264 = fneg double %1261
%1265 = call double @llvm.fmuladd.f64(double %1264, double %1262, double %1263)
store double %1265, double* %46
%1266 = load double, double* %49
%1267 = load double, double* %59
%1268 = load double, double* %50
%1269 = fneg double %1266
%1270 = call double @llvm.fmuladd.f64(double %1269, double %1267, double %1268)
store double %1270, double* %50
%1271 = load double, double* %60
%1272 = load double, double* %38
%1273 = fmul double %1272, %1271
store double %1273, double* %38
%1274 = load double, double* %60
%1275 = load double, double* %42
%1276 = fmul double %1275, %1274
store double %1276, double* %42
%1277 = load double, double* %60
%1278 = load double, double* %46
%1279 = fmul double %1278, %1277
store double %1279, double* %46
%1280 = load double, double* %60
%1281 = load double, double* %50
%1282 = fmul double %1281, %1280
store double %1282, double* %50
%1283 = load double, double* %38
%1284 = load double*, double** %21
%1285 = getelementptr inbounds double, double* %1284, i64 12
store double %1283, double* %1285
%1286 = load double, double* %42
%1287 = load double*, double** %21
%1288 = getelementptr inbounds double, double* %1287, i64 13
store double %1286, double* %1288
%1289 = load double, double* %46
%1290 = load double*, double** %21
%1291 = getelementptr inbounds double, double* %1290, i64 14
store double %1289, double* %1291
%1292 = load double, double* %50
%1293 = load double*, double** %21
%1294 = getelementptr inbounds double, double* %1293, i64 15
store double %1292, double* %1294
br label %1546
1295: ; preds = %1045
%1296 = load double*, double** %22
%1297 = getelementptr inbounds double, double* %1296, i64 0
%1298 = load double, double* %1297
%1299 = fdiv double 1.000000e+00, %1298
store double %1299, double* %51
%1300 = load double, double* %51
%1301 = load double, double* %35
%1302 = fmul double %1301, %1300
store double %1302, double* %35
%1303 = load double, double* %51
%1304 = load double, double* %39
%1305 = fmul double %1304, %1303
store double %1305, double* %39
%1306 = load double, double* %51
%1307 = load double, double* %43
%1308 = fmul double %1307, %1306
store double %1308, double* %43
%1309 = load double, double* %51
%1310 = load double, double* %47
%1311 = fmul double %1310, %1309
store double %1311, double* %47
%1312 = load double, double* %35
%1313 = load double*, double** %21
%1314 = getelementptr inbounds double, double* %1313, i64 0
store double %1312, double* %1314
%1315 = load double, double* %39
%1316 = load double*, double** %21
%1317 = getelementptr inbounds double, double* %1316, i64 1
store double %1315, double* %1317
%1318 = load double, double* %43
%1319 = load double*, double** %21
%1320 = getelementptr inbounds double, double* %1319, i64 2
store double %1318, double* %1320
%1321 = load double, double* %47
%1322 = load double*, double** %21
%1323 = getelementptr inbounds double, double* %1322, i64 3
store double %1321, double* %1323
%1324 = load double*, double** %22
%1325 = getelementptr inbounds double, double* %1324, i64 1
%1326 = load double, double* %1325
store double %1326, double* %52
%1327 = load double*, double** %22
%1328 = getelementptr inbounds double, double* %1327, i64 5
%1329 = load double, double* %1328
%1330 = fdiv double 1.000000e+00, %1329
store double %1330, double* %55
%1331 = load double, double* %35
%1332 = load double, double* %52
%1333 = load double, double* %36
%1334 = fneg double %1331
%1335 = call double @llvm.fmuladd.f64(double %1334, double %1332, double %1333)
store double %1335, double* %36
%1336 = load double, double* %39
%1337 = load double, double* %52
%1338 = load double, double* %40
%1339 = fneg double %1336
%1340 = call double @llvm.fmuladd.f64(double %1339, double %1337, double %1338)
store double %1340, double* %40
%1341 = load double, double* %43
%1342 = load double, double* %52
%1343 = load double, double* %44
%1344 = fneg double %1341
%1345 = call double @llvm.fmuladd.f64(double %1344, double %1342, double %1343)
store double %1345, double* %44
%1346 = load double, double* %47
%1347 = load double, double* %52
%1348 = load double, double* %48
%1349 = fneg double %1346
%1350 = call double @llvm.fmuladd.f64(double %1349, double %1347, double %1348)
store double %1350, double* %48
%1351 = load double, double* %55
%1352 = load double, double* %36
%1353 = fmul double %1352, %1351
store double %1353, double* %36
%1354 = load double, double* %55
%1355 = load double, double* %40
%1356 = fmul double %1355, %1354
store double %1356, double* %40
%1357 = load double, double* %55
%1358 = load double, double* %44
%1359 = fmul double %1358, %1357
store double %1359, double* %44
%1360 = load double, double* %55
%1361 = load double, double* %48
%1362 = fmul double %1361, %1360
store double %1362, double* %48
%1363 = load double, double* %36
%1364 = load double*, double** %21
%1365 = getelementptr inbounds double, double* %1364, i64 4
store double %1363, double* %1365
%1366 = load double, double* %40
%1367 = load double*, double** %21
%1368 = getelementptr inbounds double, double* %1367, i64 5
store double %1366, double* %1368
%1369 = load double, double* %44
%1370 = load double*, double** %21
%1371 = getelementptr inbounds double, double* %1370, i64 6
store double %1369, double* %1371
%1372 = load double, double* %48
%1373 = load double*, double** %21
%1374 = getelementptr inbounds double, double* %1373, i64 7
store double %1372, double* %1374
%1375 = load double*, double** %22
%1376 = getelementptr inbounds double, double* %1375, i64 2
%1377 = load double, double* %1376
store double %1377, double* %53
%1378 = load double*, double** %22
%1379 = getelementptr inbounds double, double* %1378, i64 6
%1380 = load double, double* %1379
store double %1380, double* %56
%1381 = load double*, double** %22
%1382 = getelementptr inbounds double, double* %1381, i64 10
%1383 = load double, double* %1382
%1384 = fdiv double 1.000000e+00, %1383
store double %1384, double* %58
%1385 = load double, double* %35
%1386 = load double, double* %53
%1387 = load double, double* %37
%1388 = fneg double %1385
%1389 = call double @llvm.fmuladd.f64(double %1388, double %1386, double %1387)
store double %1389, double* %37
%1390 = load double, double* %39
%1391 = load double, double* %53
%1392 = load double, double* %41
%1393 = fneg double %1390
%1394 = call double @llvm.fmuladd.f64(double %1393, double %1391, double %1392)
store double %1394, double* %41
%1395 = load double, double* %43
%1396 = load double, double* %53
%1397 = load double, double* %45
%1398 = fneg double %1395
%1399 = call double @llvm.fmuladd.f64(double %1398, double %1396, double %1397)
store double %1399, double* %45
%1400 = load double, double* %47
%1401 = load double, double* %53
%1402 = load double, double* %49
%1403 = fneg double %1400
%1404 = call double @llvm.fmuladd.f64(double %1403, double %1401, double %1402)
store double %1404, double* %49
%1405 = load double, double* %36
%1406 = load double, double* %56
%1407 = load double, double* %37
%1408 = fneg double %1405
%1409 = call double @llvm.fmuladd.f64(double %1408, double %1406, double %1407)
store double %1409, double* %37
%1410 = load double, double* %40
%1411 = load double, double* %56
%1412 = load double, double* %41
%1413 = fneg double %1410
%1414 = call double @llvm.fmuladd.f64(double %1413, double %1411, double %1412)
store double %1414, double* %41
%1415 = load double, double* %44
%1416 = load double, double* %56
%1417 = load double, double* %45
%1418 = fneg double %1415
%1419 = call double @llvm.fmuladd.f64(double %1418, double %1416, double %1417)
store double %1419, double* %45
%1420 = load double, double* %48
%1421 = load double, double* %56
%1422 = load double, double* %49
%1423 = fneg double %1420
%1424 = call double @llvm.fmuladd.f64(double %1423, double %1421, double %1422)
store double %1424, double* %49
%1425 = load double, double* %58
%1426 = load double, double* %37
%1427 = fmul double %1426, %1425
store double %1427, double* %37
%1428 = load double, double* %58
%1429 = load double, double* %41
%1430 = fmul double %1429, %1428
store double %1430, double* %41
%1431 = load double, double* %58
%1432 = load double, double* %45
%1433 = fmul double %1432, %1431
store double %1433, double* %45
%1434 = load double, double* %58
%1435 = load double, double* %49
%1436 = fmul double %1435, %1434
store double %1436, double* %49
%1437 = load double, double* %37
%1438 = load double*, double** %21
%1439 = getelementptr inbounds double, double* %1438, i64 8
store double %1437, double* %1439
%1440 = load double, double* %41
%1441 = load double*, double** %21
%1442 = getelementptr inbounds double, double* %1441, i64 9
store double %1440, double* %1442
%1443 = load double, double* %45
%1444 = load double*, double** %21
%1445 = getelementptr inbounds double, double* %1444, i64 10
store double %1443, double* %1445
%1446 = load double, double* %49
%1447 = load double*, double** %21
%1448 = getelementptr inbounds double, double* %1447, i64 11
store double %1446, double* %1448
%1449 = load double*, double** %22
%1450 = getelementptr inbounds double, double* %1449, i64 3
%1451 = load double, double* %1450
store double %1451, double* %54
%1452 = load double*, double** %22
%1453 = getelementptr inbounds double, double* %1452, i64 7
%1454 = load double, double* %1453
store double %1454, double* %57
%1455 = load double*, double** %22
%1456 = getelementptr inbounds double, double* %1455, i64 11
%1457 = load double, double* %1456
store double %1457, double* %59
%1458 = load double*, double** %22
%1459 = getelementptr inbounds double, double* %1458, i64 15
%1460 = load double, double* %1459
%1461 = fdiv double 1.000000e+00, %1460
store double %1461, double* %60
%1462 = load double, double* %35
%1463 = load double, double* %54
%1464 = load double, double* %38
%1465 = fneg double %1462
%1466 = call double @llvm.fmuladd.f64(double %1465, double %1463, double %1464)
store double %1466, double* %38
%1467 = load double, double* %39
%1468 = load double, double* %54
%1469 = load double, double* %42
%1470 = fneg double %1467
%1471 = call double @llvm.fmuladd.f64(double %1470, double %1468, double %1469)
store double %1471, double* %42
%1472 = load double, double* %43
%1473 = load double, double* %54
%1474 = load double, double* %46
%1475 = fneg double %1472
%1476 = call double @llvm.fmuladd.f64(double %1475, double %1473, double %1474)
store double %1476, double* %46
%1477 = load double, double* %47
%1478 = load double, double* %54
%1479 = load double, double* %50
%1480 = fneg double %1477
%1481 = call double @llvm.fmuladd.f64(double %1480, double %1478, double %1479)
store double %1481, double* %50
%1482 = load double, double* %36
%1483 = load double, double* %57
%1484 = load double, double* %38
%1485 = fneg double %1482
%1486 = call double @llvm.fmuladd.f64(double %1485, double %1483, double %1484)
store double %1486, double* %38
%1487 = load double, double* %40
%1488 = load double, double* %57
%1489 = load double, double* %42
%1490 = fneg double %1487
%1491 = call double @llvm.fmuladd.f64(double %1490, double %1488, double %1489)
store double %1491, double* %42
%1492 = load double, double* %44
%1493 = load double, double* %57
%1494 = load double, double* %46
%1495 = fneg double %1492
%1496 = call double @llvm.fmuladd.f64(double %1495, double %1493, double %1494)
store double %1496, double* %46
%1497 = load double, double* %48
%1498 = load double, double* %57
%1499 = load double, double* %50
%1500 = fneg double %1497
%1501 = call double @llvm.fmuladd.f64(double %1500, double %1498, double %1499)
store double %1501, double* %50
%1502 = load double, double* %37
%1503 = load double, double* %59
%1504 = load double, double* %38
%1505 = fneg double %1502
%1506 = call double @llvm.fmuladd.f64(double %1505, double %1503, double %1504)
store double %1506, double* %38
%1507 = load double, double* %41
%1508 = load double, double* %59
%1509 = load double, double* %42
%1510 = fneg double %1507
%1511 = call double @llvm.fmuladd.f64(double %1510, double %1508, double %1509)
store double %1511, double* %42
%1512 = load double, double* %45
%1513 = load double, double* %59
%1514 = load double, double* %46
%1515 = fneg double %1512
%1516 = call double @llvm.fmuladd.f64(double %1515, double %1513, double %1514)
store double %1516, double* %46
%1517 = load double, double* %49
%1518 = load double, double* %59
%1519 = load double, double* %50
%1520 = fneg double %1517
%1521 = call double @llvm.fmuladd.f64(double %1520, double %1518, double %1519)
store double %1521, double* %50
%1522 = load double, double* %60
%1523 = load double, double* %38
%1524 = fmul double %1523, %1522
store double %1524, double* %38
%1525 = load double, double* %60
%1526 = load double, double* %42
%1527 = fmul double %1526, %1525
store double %1527, double* %42
%1528 = load double, double* %60
%1529 = load double, double* %46
%1530 = fmul double %1529, %1528
store double %1530, double* %46
%1531 = load double, double* %60
%1532 = load double, double* %50
%1533 = fmul double %1532, %1531
store double %1533, double* %50
%1534 = load double, double* %38
%1535 = load double*, double** %21
%1536 = getelementptr inbounds double, double* %1535, i64 12
store double %1534, double* %1536
%1537 = load double, double* %42
%1538 = load double*, double** %21
%1539 = getelementptr inbounds double, double* %1538, i64 13
store double %1537, double* %1539
%1540 = load double, double* %46
%1541 = load double*, double** %21
%1542 = getelementptr inbounds double, double* %1541, i64 14
store double %1540, double* %1542
%1543 = load double, double* %50
%1544 = load double*, double** %21
%1545 = getelementptr inbounds double, double* %1544, i64 15
store double %1543, double* %1545
br label %1546
1546: ; preds = %1295, %1048
ret void
}

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