void kernel_dgemm_dtrsm_nt_4x4_vs_lib4(int km, int kn, int tri, int kadd,
                                       int ksub, double *Ap, double *Bp,
                                       double *Am, double *Bm, double *C,
                                       double *D, double *fact, int alg) {
  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) {
    if (tri == 1) {
      if (kadd >= 4) {
        a_0 = Ap[0 + 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_01 += a_0 * b_1;
        c_02 += a_0 * b_2;
        c_03 += a_0 * b_3;
        a_0 = Ap[0 + bs * 1];
        a_1 = Ap[1 + 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_01 += a_0 * b_1;
        c_11 += a_1 * b_1;
        c_02 += a_0 * b_2;
        c_12 += a_1 * b_2;
        c_03 += a_0 * b_3;
        c_13 += a_1 * b_3;
        a_0 = Ap[0 + bs * 2];
        a_1 = Ap[1 + bs * 2];
        a_2 = Ap[2 + 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_01 += a_0 * b_1;
        c_11 += a_1 * b_1;
        c_21 += a_2 * b_1;
        c_02 += a_0 * b_2;
        c_12 += a_1 * b_2;
        c_22 += a_2 * b_2;
        c_03 += a_0 * b_3;
        c_13 += a_1 * b_3;
        c_23 += a_2 * b_3;
        a_0 = 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;
        k += 4;
      } else {
        a_0 = Ap[0 + 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_01 += a_0 * b_1;
        c_02 += a_0 * b_2;
        c_03 += a_0 * b_3;
        k += 1;
        if (kadd > 1) {
          a_0 = Ap[0 + bs * 1];
          a_1 = Ap[1 + 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_01 += a_0 * b_1;
          c_11 += a_1 * b_1;
          c_02 += a_0 * b_2;
          c_12 += a_1 * b_2;
          c_03 += a_0 * b_3;
          c_13 += a_1 * b_3;
          k += 1;
          if (kadd > 2) {
            a_0 = Ap[0 + bs * 2];
            a_1 = Ap[1 + bs * 2];
            a_2 = Ap[2 + 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_01 += a_0 * b_1;
            c_11 += a_1 * b_1;
            c_21 += a_2 * b_1;
            c_02 += a_0 * b_2;
            c_12 += a_1 * b_2;
            c_22 += a_2 * b_2;
            c_03 += a_0 * b_3;
            c_13 += a_1 * b_3;
            c_23 += a_2 * b_3;
            k += 1;
          }
        }
      }
    }
    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;
  a_00 = fact[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;
  if (km >= 4)
    D[3 + bs * 0] = c_30;
  a_10 = fact[1];
  a_11 = fact[2];
  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;
  if (km >= 4)
    D[3 + bs * 1] = c_31;
  a_20 = fact[3];
  a_21 = fact[4];
  a_22 = fact[5];
  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;
  if (km >= 4)
    D[3 + bs * 2] = c_32;
  if (kn == 3)
    return;
  a_30 = fact[6];
  a_31 = fact[7];
  a_32 = fact[8];
  a_33 = fact[9];
  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;
  if (km >= 4)
    D[3 + bs * 3] = c_33;
}


x86 assembly (clang, -O0):
<kernel_dgemm_dtrsm_nt_4x4_vs_lib4>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb8,%rsp
mov    0x40(%rbp),%eax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%rax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%rax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8d,-0x14(%rbp)
mov    %r9,-0x20(%rbp)
movl   $0x4,-0x24(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x70(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x78(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x80(%rbp)
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
xorps  %xmm0,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
movl   $0x0,-0x28(%rbp)
cmpl   $0x0,-0x10(%rbp)
jle    29c9 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x18c9>
cmpl   $0x1,-0xc(%rbp)
jne    1cdb <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbdb>
cmpl   $0x4,-0x10(%rbp)
jl     18a9 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x7a9>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x20(%rbp)
mov    0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,0x10(%rbp)
mov    -0x28(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x28(%rbp)
jmp    1cd6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbd6>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
cmpl   $0x1,-0x10(%rbp)
jle    1cd1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbd1>
mov    -0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
cmpl   $0x2,-0x10(%rbp)
jle    1ccc <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbcc>
mov    -0x20(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    1cd1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbd1>
jmp    1cd6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbd6>
jmp    1cdb <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbdb>
jmp    1ce0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbe0>
mov    -0x28(%rbp),%eax
mov    -0x10(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2711 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x1611>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
add    $0x80,%rax
mov    %rax,-0x20(%rbp)
mov    0x10(%rbp),%rax
add    $0x80,%rax
mov    %rax,0x10(%rbp)
mov    -0x28(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x28(%rbp)
jmp    1ce0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xbe0>
jmp    2716 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x1616>
mov    -0x28(%rbp),%eax
cmp    -0x10(%rbp),%eax
jge    29c4 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x18c4>
mov    -0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    -0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x10(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x10(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x10(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x10(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x90(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xb0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0xd0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x98(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xb8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0xd8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0x80(%rbp),%xmm1
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xa0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xc0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x60(%rbp),%xmm2
movsd  -0xe0(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x30(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0x88(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x38(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xa8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x40(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xc8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x48(%rbp),%xmm0
movsd  -0x68(%rbp),%xmm2
movsd  -0xe8(%rbp),%xmm1
ff
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe8(%rbp)
ff
mov    -0x20(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x20(%rbp)
mov    0x10(%rbp),%rax
add    $0x20,%rax
mov    %rax,0x10(%rbp)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    2716 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x1616>
jmp    29c9 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x18c9>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    -0x14(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    39c1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x28c1>
mov    0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x18(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x18(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x18(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x20(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x20(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x20(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%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  -0x40(%rbp),%xmm0
movsd  -0x50(%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  -0x48(%rbp),%xmm0
movsd  -0x50(%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  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%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  -0x40(%rbp),%xmm0
movsd  -0x58(%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  -0x48(%rbp),%xmm0
movsd  -0x58(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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
mov    0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x18(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x18(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x20(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x20(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x20(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%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  -0x40(%rbp),%xmm0
movsd  -0x50(%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  -0x48(%rbp),%xmm0
movsd  -0x50(%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  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%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  -0x40(%rbp),%xmm0
movsd  -0x58(%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  -0x48(%rbp),%xmm0
movsd  -0x58(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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
mov    0x18(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x18(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x18(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x18(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x20(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x20(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  0x50(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x20(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%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  -0x40(%rbp),%xmm0
movsd  -0x50(%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  -0x48(%rbp),%xmm0
movsd  -0x50(%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  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%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  -0x40(%rbp),%xmm0
movsd  -0x58(%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  -0x48(%rbp),%xmm0
movsd  -0x58(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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
mov    0x18(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    0x18(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x38(%rbp)
mov    0x18(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x40(%rbp)
mov    0x18(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x48(%rbp)
mov    0x20(%rbp),%rax
movsd  0x60(%rax),%xmm0
movsd  %xmm0,-0x50(%rbp)
mov    0x20(%rbp),%rax
movsd  0x68(%rax),%xmm0
movsd  %xmm0,-0x58(%rbp)
mov    0x20(%rbp),%rax
movsd  0x70(%rax),%xmm0
movsd  %xmm0,-0x60(%rbp)
mov    0x20(%rbp),%rax
movsd  0x78(%rax),%xmm0
movsd  %xmm0,-0x68(%rbp)
movsd  -0x30(%rbp),%xmm0
movsd  -0x50(%rbp),%xmm2
movsd  -0x70(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x50(%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  -0x40(%rbp),%xmm0
movsd  -0x50(%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  -0x48(%rbp),%xmm0
movsd  -0x50(%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  -0x30(%rbp),%xmm0
movsd  -0x58(%rbp),%xmm2
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x38(%rbp),%xmm0
movsd  -0x58(%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  -0x40(%rbp),%xmm0
movsd  -0x58(%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  -0x48(%rbp),%xmm0
movsd  -0x58(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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  -0x30(%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  -0x38(%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  -0x40(%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  -0x48(%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
mov    0x18(%rbp),%rax
add    $0x80,%rax
mov    %rax,0x18(%rbp)
mov    0x20(%rbp),%rax
add    $0x80,%rax
mov    %rax,0x20(%rbp)
mov    -0x28(%rbp),%eax
add    $0x4,%eax
mov    %eax,-0x28(%rbp)
jmp    29d0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x18d0>
cmpl   $0x0,0x40(%rbp)
je     3b48 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2a48>
mov    0x28(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    0x28(%rbp),%rax
movsd  0x8(%rax),%xmm0
addsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x10(%rax),%xmm0
addsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x18(%rax),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x20(%rax),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    0x28(%rbp),%rax
movsd  0x28(%rax),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x30(%rax),%xmm0
addsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x38(%rax),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x40(%rax),%xmm0
addsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    0x28(%rbp),%rax
movsd  0x48(%rax),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x50(%rax),%xmm0
addsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x58(%rax),%xmm0
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x60(%rax),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x68(%rax),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x70(%rax),%xmm0
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
mov    0x28(%rbp),%rax
movsd  0x78(%rax),%xmm0
addsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0xf0(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
movsd  -0xf0(%rbp),%xmm0
ff
mulsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
mov    0x30(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x10(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     3bfc <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2afc>
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x38(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x110(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0xf8(%rbp),%xmm2
ff
movsd  -0x78(%rbp),%xmm1
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x90(%rbp),%xmm0
ff
movsd  -0xf8(%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  -0xf8(%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  -0xf8(%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  -0x110(%rbp),%xmm0
ff
mulsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
movsd  -0x110(%rbp),%xmm0
ff
mulsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
mulsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
movsd  -0x110(%rbp),%xmm0
ff
mulsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
mov    0x30(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x30(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     3db6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2cb6>
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x38(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x128(%rbp)
ff
movsd  -0x70(%rbp),%xmm0
movsd  -0x100(%rbp),%xmm2
ff
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  -0x90(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
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  -0xb0(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
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  -0xd0(%rbp),%xmm0
ff
movsd  -0x100(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x78(%rbp),%xmm0
movsd  -0x118(%rbp),%xmm2
ff
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  -0x98(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
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  -0xb8(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
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  -0xd8(%rbp),%xmm0
ff
movsd  -0x118(%rbp),%xmm2
ff
movsd  -0xe0(%rbp),%xmm1
ff
movq   %xmm0,%rax
movabs $0x8000000000000000,%rcx
xor    %rcx,%rax
movq   %rax,%xmm0
mulsd  %xmm2,%xmm0
addsd  %xmm1,%xmm0
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
mulsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
movsd  -0x128(%rbp),%xmm0
ff
mulsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
mulsd  -0xc0(%rbp),%xmm0
movsd  %xmm0,-0xc0(%rbp)
ff
movsd  -0x128(%rbp),%xmm0
ff
mulsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
movsd  -0x80(%rbp),%xmm0
mov    0x30(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x50(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4074 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2f74>
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x58(%rax)
cmpl   $0x3,-0x8(%rbp)
jne    4083 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2f83>
jmp    4460 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x3360>
mov    0x38(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x40(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x38(%rbp),%rax
movsd  0x48(%rax),%xmm0
movsd  %xmm0,-0x138(%rbp)
ff
movsd  -0x70(%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  -0x90(%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  -0xb0(%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  -0xd0(%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  -0x78(%rbp),%xmm0
movsd  -0x120(%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  -0x98(%rbp),%xmm0
ff
movsd  -0x120(%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  -0xb8(%rbp),%xmm0
ff
movsd  -0x120(%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  -0xd8(%rbp),%xmm0
ff
movsd  -0x120(%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  -0x80(%rbp),%xmm0
movsd  -0x130(%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  -0x130(%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  -0x130(%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  -0x130(%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  -0x138(%rbp),%xmm0
ff
mulsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
movsd  -0x138(%rbp),%xmm0
ff
mulsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
movsd  -0x88(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x70(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4460 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x3360>
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x30(%rbp),%rax
movsd  %xmm0,0x78(%rax)
add    $0xb8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dgemm_dtrsm_nt_4x4_vs_lib4>:
sub    $0xf8,%rsp
test   %ecx,%ecx
jle    12f0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x1f0>
mov    0x100(%rsp),%rax
cmp    $0x1,%edx
jne    1321 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x221>
movsd  (%r9),%xmm0
movsd  (%rax),%xmm7
mulsd  %xmm0,%xmm7
xorpd  %xmm2,%xmm2
addsd  %xmm2,%xmm7
movsd  0x8(%rax),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm2,%xmm6
movsd  0x10(%rax),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
mulsd  0x18(%rax),%xmm0
addsd  %xmm2,%xmm0
cmp    $0x4,%ecx
jb     1352 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x252>
movsd  0x20(%rax),%xmm2
movsd  0x28(%rax),%xmm3
movsd  0x30(%rax),%xmm5
movsd  0x38(%rax),%xmm4
unpcklpd %xmm2,%xmm2
movq   %xmm7,%xmm9
movupd 0x20(%r9),%xmm7
movupd 0x40(%r9),%xmm8
mulpd  %xmm7,%xmm2
addpd  %xmm9,%xmm2
unpcklpd %xmm3,%xmm3
movq   %xmm6,%xmm6
mulpd  %xmm7,%xmm3
addpd  %xmm6,%xmm3
unpcklpd %xmm5,%xmm5
movq   %xmm1,%xmm1
mulpd  %xmm7,%xmm5
addpd  %xmm1,%xmm5
unpcklpd %xmm4,%xmm4
movq   %xmm0,%xmm0
mulpd  %xmm7,%xmm4
addpd  %xmm0,%xmm4
movupd 0x40(%rax),%xmm10
movapd %xmm10,%xmm12
unpcklpd %xmm10,%xmm12
mulpd  %xmm8,%xmm12
addpd  %xmm2,%xmm12
movapd %xmm10,%xmm1
unpckhpd %xmm10,%xmm1
mulpd  %xmm8,%xmm1
addpd  %xmm3,%xmm1
movupd 0x50(%rax),%xmm7
movapd %xmm7,%xmm3
movsd  0x50(%r9),%xmm6
unpcklpd %xmm6,%xmm6
mulpd  %xmm6,%xmm10
mulpd  %xmm7,%xmm6
unpcklpd %xmm7,%xmm7
mulpd  %xmm8,%xmm7
addpd  %xmm5,%xmm7
unpckhpd %xmm3,%xmm3
mulpd  %xmm8,%xmm3
addpd  %xmm4,%xmm3
movupd 0x60(%r9),%xmm13
movupd 0x60(%rax),%xmm14
movapd %xmm14,%xmm8
movupd 0x70(%rax),%xmm0
movapd %xmm0,%xmm11
movapd %xmm0,%xmm15
movsd  0x70(%r9),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm4,%xmm2
mulpd  %xmm0,%xmm2
mulpd  %xmm14,%xmm4
movsd  0x78(%r9),%xmm5
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm0
mulpd  %xmm14,%xmm5
movapd %xmm14,%xmm9
unpcklpd %xmm14,%xmm14
mulpd  %xmm13,%xmm14
addpd  %xmm12,%xmm14
movapd %xmm15,%xmm12
unpckhpd %xmm9,%xmm9
mulpd  %xmm13,%xmm9
addpd  %xmm1,%xmm9
unpcklpd %xmm11,%xmm11
mulpd  %xmm13,%xmm11
addpd  %xmm7,%xmm11
unpckhpd %xmm15,%xmm12
mulpd  %xmm13,%xmm12
addpd  %xmm3,%xmm12
xorpd  %xmm1,%xmm1
addpd  %xmm1,%xmm10
addpd  %xmm1,%xmm6
addpd  %xmm6,%xmm2
movapd %xmm2,-0x80(%rsp)
addpd  %xmm10,%xmm4
movapd %xmm4,%xmm3
addpd  %xmm1,%xmm0
addpd  %xmm1,%xmm5
sub    $0xffffffffffffff80,%r9
sub    $0xffffffffffffff80,%rax
mov    $0x4,%edx
jmp    1467 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x367>
xorpd  %xmm11,%xmm11
xorpd  %xmm12,%xmm12
xorpd  %xmm13,%xmm13
xorpd  %xmm15,%xmm15
xorpd  %xmm3,%xmm3
xorpd  %xmm0,%xmm0
movapd %xmm0,-0x80(%rsp)
xorpd  %xmm14,%xmm14
xorpd  %xmm9,%xmm9
jmp    193f <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x83f>
xorpd  %xmm12,%xmm12
xor    %edx,%edx
xorpd  %xmm5,%xmm5
xorpd  %xmm0,%xmm0
xorpd  %xmm3,%xmm3
xorpd  %xmm1,%xmm1
movapd %xmm1,-0x80(%rsp)
xorpd  %xmm14,%xmm14
xorpd  %xmm9,%xmm9
xorpd  %xmm11,%xmm11
jmp    1467 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x367>
movq   %xmm0,%xmm12
movq   %xmm7,%xmm14
movq   %xmm6,%xmm9
movq   %xmm1,%xmm11
cmp    $0x2,%ecx
jb     13c6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2c6>
movupd 0x20(%r9),%xmm0
movsd  0x20(%rax),%xmm1
movsd  0x28(%rax),%xmm2
movsd  0x30(%rax),%xmm3
movsd  0x38(%rax),%xmm4
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm1,%xmm14
unpcklpd %xmm2,%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm2,%xmm9
unpcklpd %xmm3,%xmm3
mulpd  %xmm0,%xmm3
addpd  %xmm3,%xmm11
unpcklpd %xmm4,%xmm4
mulpd  %xmm0,%xmm4
addpd  %xmm4,%xmm12
jne    13e6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2e6>
xorpd  %xmm5,%xmm5
mov    $0x2,%edx
jmp    13cf <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x2cf>
xorpd  %xmm5,%xmm5
mov    $0x1,%edx
xorpd  %xmm0,%xmm0
xorpd  %xmm3,%xmm3
xorpd  %xmm1,%xmm1
movapd %xmm1,-0x80(%rsp)
jmp    1467 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x367>
movupd 0x40(%r9),%xmm0
movupd 0x40(%rax),%xmm1
movupd 0x50(%rax),%xmm6
movapd %xmm1,%xmm2
movapd %xmm6,%xmm3
movapd %xmm6,%xmm4
movsd  0x50(%r9),%xmm7
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm6
mulpd  %xmm1,%xmm7
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm1,%xmm14
unpckhpd %xmm2,%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm2,%xmm9
unpcklpd %xmm3,%xmm3
mulpd  %xmm0,%xmm3
addpd  %xmm3,%xmm11
unpckhpd %xmm4,%xmm4
mulpd  %xmm0,%xmm4
addpd  %xmm4,%xmm12
xorpd  %xmm5,%xmm5
addpd  %xmm5,%xmm6
movapd %xmm6,-0x80(%rsp)
addpd  %xmm5,%xmm7
movapd %xmm7,%xmm3
mov    $0x3,%edx
xorpd  %xmm0,%xmm0
lea    -0x3(%rcx),%r10d
cmp    %r10d,%edx
jge    1798 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x698>
movapd %xmm5,-0x70(%rsp)
movapd %xmm0,%xmm2
movapd %xmm3,-0x60(%rsp)
cs nopw 0x0(%rax,%rax,1)
xchg   %ax,%ax
movupd (%r9),%xmm5
movupd (%rax),%xmm15
movupd 0x10(%rax),%xmm0
movupd 0x20(%rax),%xmm8
movapd %xmm15,%xmm7
unpcklpd %xmm15,%xmm7
mulpd  %xmm5,%xmm7
addpd  %xmm14,%xmm7
movapd %xmm2,%xmm3
movapd %xmm15,%xmm2
unpckhpd %xmm15,%xmm2
mulpd  %xmm5,%xmm2
addpd  %xmm9,%xmm2
movapd %xmm0,%xmm4
movsd  0x10(%r9),%xmm6
unpcklpd %xmm6,%xmm6
movapd %xmm6,%xmm13
mulpd  %xmm15,%xmm13
mulpd  %xmm0,%xmm6
movsd  0x18(%r9),%xmm1
unpcklpd %xmm1,%xmm1
mulpd  %xmm1,%xmm15
mulpd  %xmm0,%xmm1
unpcklpd %xmm0,%xmm0
mulpd  %xmm5,%xmm0
addpd  %xmm11,%xmm0
movupd 0x30(%rax),%xmm10
unpckhpd %xmm4,%xmm4
mulpd  %xmm5,%xmm4
addpd  %xmm12,%xmm4
addpd  -0x60(%rsp),%xmm13
addpd  -0x80(%rsp),%xmm6
addpd  -0x70(%rsp),%xmm15
addpd  %xmm3,%xmm1
movupd 0x20(%r9),%xmm14
movsd  0x30(%r9),%xmm11
unpcklpd %xmm11,%xmm11
movapd %xmm11,%xmm9
movapd %xmm8,%xmm3
mulpd  %xmm8,%xmm11
unpcklpd %xmm8,%xmm8
mulpd  %xmm14,%xmm8
addpd  %xmm7,%xmm8
movapd %xmm10,%xmm5
movapd %xmm10,%xmm12
mulpd  %xmm10,%xmm9
movsd  0x38(%r9),%xmm7
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm10
mulpd  %xmm3,%xmm7
unpckhpd %xmm3,%xmm3
mulpd  %xmm14,%xmm3
addpd  %xmm2,%xmm3
unpcklpd %xmm5,%xmm5
mulpd  %xmm14,%xmm5
addpd  %xmm0,%xmm5
unpckhpd %xmm12,%xmm12
mulpd  %xmm14,%xmm12
addpd  %xmm4,%xmm12
addpd  %xmm6,%xmm9
addpd  %xmm13,%xmm11
addpd  %xmm1,%xmm10
addpd  %xmm15,%xmm7
movupd 0x40(%r9),%xmm2
movupd 0x50(%rax),%xmm14
movupd 0x40(%rax),%xmm4
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
mulpd  %xmm2,%xmm0
addpd  %xmm8,%xmm0
movapd %xmm4,%xmm1
unpckhpd %xmm4,%xmm1
mulpd  %xmm2,%xmm1
addpd  %xmm3,%xmm1
movapd %xmm14,%xmm8
movsd  0x50(%r9),%xmm3
unpcklpd %xmm3,%xmm3
movapd %xmm3,%xmm13
mulpd  %xmm4,%xmm13
mulpd  %xmm14,%xmm3
movsd  0x58(%r9),%xmm6
unpcklpd %xmm6,%xmm6
mulpd  %xmm6,%xmm4
mulpd  %xmm14,%xmm6
unpcklpd %xmm14,%xmm14
mulpd  %xmm2,%xmm14
addpd  %xmm5,%xmm14
unpckhpd %xmm8,%xmm8
mulpd  %xmm2,%xmm8
addpd  %xmm12,%xmm8
movapd %xmm8,-0x80(%rsp)
addpd  %xmm11,%xmm13
addpd  %xmm9,%xmm3
addpd  %xmm7,%xmm4
addpd  %xmm10,%xmm6
movupd 0x60(%r9),%xmm9
movupd 0x70(%rax),%xmm5
movupd 0x60(%rax),%xmm10
movapd %xmm10,%xmm7
movapd %xmm5,%xmm11
unpcklpd %xmm5,%xmm11
mulpd  %xmm9,%xmm11
addpd  %xmm14,%xmm11
movapd %xmm5,%xmm12
movsd  0x70(%r9),%xmm15
unpcklpd %xmm15,%xmm15
movapd %xmm15,%xmm2
mulpd  %xmm5,%xmm2
mulpd  %xmm10,%xmm15
movsd  0x78(%r9),%xmm8
unpcklpd %xmm8,%xmm8
mulpd  %xmm8,%xmm5
mulpd  %xmm10,%xmm8
unpcklpd %xmm10,%xmm10
mulpd  %xmm9,%xmm10
unpckhpd %xmm7,%xmm7
mulpd  %xmm9,%xmm7
unpckhpd %xmm12,%xmm12
mulpd  %xmm9,%xmm12
movapd %xmm10,%xmm14
addpd  %xmm0,%xmm14
addpd  -0x80(%rsp),%xmm12
movapd %xmm7,%xmm9
addpd  %xmm1,%xmm9
movapd %xmm2,-0x50(%rsp)
addpd  %xmm3,%xmm2
movapd %xmm2,-0x80(%rsp)
movapd %xmm15,%xmm2
addpd  %xmm13,%xmm2
movapd %xmm2,-0x60(%rsp)
movapd %xmm5,-0x40(%rsp)
movapd %xmm5,%xmm2
addpd  %xmm6,%xmm2
movapd %xmm8,%xmm5
addpd  %xmm4,%xmm5
movapd %xmm5,-0x70(%rsp)
sub    $0xffffffffffffff80,%r9
sub    $0xffffffffffffff80,%rax
add    $0x4,%edx
cmp    %r10d,%edx
jl     1490 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x390>
addpd  %xmm4,%xmm8
movapd -0x40(%rsp),%xmm2
addpd  %xmm6,%xmm2
addpd  %xmm13,%xmm15
movapd -0x50(%rsp),%xmm4
addpd  %xmm3,%xmm4
addpd  %xmm1,%xmm7
addpd  %xmm0,%xmm10
movapd %xmm2,%xmm0
movapd %xmm15,%xmm3
movapd %xmm4,-0x80(%rsp)
movapd %xmm10,%xmm14
movapd %xmm7,%xmm9
cmp    %ecx,%edx
jl     17a1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x6a1>
movapd %xmm8,%xmm13
movapd %xmm0,%xmm15
jmp    193f <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x83f>
movapd %xmm5,%xmm8
cmp    %ecx,%edx
jge    1789 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x689>
sub    %edx,%ecx
xor    %edx,%edx
movapd %xmm11,-0x70(%rsp)
movapd %xmm12,%xmm4
movapd %xmm8,%xmm7
movapd %xmm0,%xmm1
movapd %xmm9,%xmm5
movapd -0x80(%rsp),%xmm11
cs nopw 0x0(%rax,%rax,1)
movapd %xmm5,%xmm8
movapd %xmm14,%xmm5
movapd %xmm11,%xmm15
movapd %xmm3,-0x80(%rsp)
movapd %xmm1,-0x60(%rsp)
movapd %xmm7,-0x40(%rsp)
movapd %xmm4,%xmm3
movupd (%r9,%rdx,1),%xmm4
movupd (%rax,%rdx,1),%xmm6
movupd 0x10(%rax,%rdx,1),%xmm0
movapd %xmm6,%xmm10
movapd %xmm0,%xmm7
movapd %xmm0,%xmm2
movsd  0x10(%r9,%rdx,1),%xmm9
unpcklpd %xmm9,%xmm9
movapd %xmm9,%xmm12
mulpd  %xmm0,%xmm12
mulpd  %xmm6,%xmm9
movsd  0x18(%r9,%rdx,1),%xmm13
unpcklpd %xmm13,%xmm13
mulpd  %xmm13,%xmm0
mulpd  %xmm6,%xmm13
unpcklpd %xmm6,%xmm6
mulpd  %xmm4,%xmm6
unpcklpd %xmm7,%xmm7
mulpd  %xmm4,%xmm7
movapd -0x70(%rsp),%xmm1
addpd  %xmm7,%xmm1
movapd %xmm1,-0x70(%rsp)
movapd %xmm6,%xmm14
movapd %xmm5,-0x50(%rsp)
addpd  %xmm5,%xmm14
unpckhpd %xmm10,%xmm10
mulpd  %xmm4,%xmm10
unpckhpd %xmm2,%xmm2
mulpd  %xmm4,%xmm2
movapd %xmm10,%xmm5
movapd %xmm8,-0x10(%rsp)
addpd  %xmm8,%xmm5
movapd %xmm2,%xmm4
movapd %xmm3,-0x20(%rsp)
addpd  %xmm3,%xmm4
movapd %xmm12,%xmm11
movapd %xmm15,(%rsp)
addpd  %xmm15,%xmm11
movapd %xmm9,%xmm3
addpd  -0x80(%rsp),%xmm3
movapd %xmm0,%xmm1
addpd  -0x60(%rsp),%xmm1
movapd %xmm13,%xmm7
movapd -0x40(%rsp),%xmm8
addpd  %xmm8,%xmm7
add    $0x20,%rdx
add    $0xffffffff,%ecx
jne    17d0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x6d0>
movapd %xmm8,%xmm15
addpd  %xmm8,%xmm13
addpd  -0x60(%rsp),%xmm0
addpd  -0x80(%rsp),%xmm9
addpd  (%rsp),%xmm12
addpd  -0x20(%rsp),%xmm2
addpd  -0x10(%rsp),%xmm10
addpd  -0x50(%rsp),%xmm6
movapd %xmm0,%xmm15
movapd %xmm9,%xmm3
movapd %xmm12,-0x80(%rsp)
movapd %xmm2,%xmm12
movapd %xmm6,%xmm14
movapd %xmm10,%xmm9
movapd -0x70(%rsp),%xmm11
movapd %xmm9,-0x30(%rsp)
mov    0x130(%rsp),%r9d
cmp    $0x4,%r8d
jl     1edb <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xddb>
mov    0x110(%rsp),%r10
mov    0x108(%rsp),%rdx
add    $0xfffffffd,%r8d
xor    %eax,%eax
xor    %ecx,%ecx
movapd %xmm11,%xmm9
movapd %xmm12,%xmm11
movapd -0x80(%rsp),%xmm12
movapd %xmm3,%xmm10
movapd -0x30(%rsp),%xmm3
nopl   0x0(%rax)
movapd %xmm14,0xe0(%rsp)
movapd %xmm12,0x90(%rsp)
movapd %xmm10,0xa0(%rsp)
movapd %xmm15,0x60(%rsp)
movapd %xmm13,0x70(%rsp)
movupd (%rdx,%rax,1),%xmm1
movupd (%r10,%rax,1),%xmm7
movupd 0x10(%r10,%rax,1),%xmm5
movupd 0x20(%r10,%rax,1),%xmm8
movupd 0x30(%r10,%rax,1),%xmm6
movapd %xmm7,%xmm2
unpcklpd %xmm7,%xmm2
movapd %xmm1,%xmm0
movapd %xmm2,0xd0(%rsp)
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm14
movsd  0x10(%rdx,%rax,1),%xmm2
movsd  0x18(%rdx,%rax,1),%xmm4
movapd %xmm7,%xmm0
unpckhpd %xmm7,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm3
movapd %xmm5,%xmm0
unpcklpd %xmm5,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm9
movapd %xmm5,%xmm0
unpckhpd %xmm5,%xmm0
movapd %xmm1,-0x70(%rsp)
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm11
movapd %xmm2,-0x80(%rsp)
movapd %xmm2,%xmm0
unpcklpd %xmm2,%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm10
mulpd  %xmm5,%xmm0
subpd  %xmm0,%xmm12
movapd %xmm4,-0x30(%rsp)
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
movapd %xmm0,%xmm1
movapd %xmm7,0x10(%rsp)
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm5,0xb0(%rsp)
mulpd  %xmm5,%xmm0
subpd  %xmm0,%xmm15
movupd 0x20(%rdx,%rax,1),%xmm1
movapd %xmm8,%xmm2
unpcklpd %xmm8,%xmm2
movapd %xmm1,%xmm0
movapd %xmm2,0x80(%rsp)
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm14
movapd %xmm8,%xmm0
unpckhpd %xmm8,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm3
movapd %xmm6,%xmm0
unpcklpd %xmm6,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm9
movapd %xmm6,%xmm0
unpckhpd %xmm6,%xmm0
movapd %xmm1,-0x60(%rsp)
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm11
movsd  0x30(%rdx,%rax,1),%xmm0
movapd %xmm0,-0x50(%rsp)
unpcklpd %xmm0,%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm6,%xmm1
subpd  %xmm1,%xmm12
mulpd  %xmm8,%xmm0
subpd  %xmm0,%xmm10
movsd  0x38(%rdx,%rax,1),%xmm0
movapd %xmm0,0x30(%rsp)
unpcklpd %xmm0,%xmm0
movapd %xmm0,%xmm1
movapd %xmm6,(%rsp)
mulpd  %xmm6,%xmm1
subpd  %xmm1,%xmm15
movapd %xmm8,0xc0(%rsp)
mulpd  %xmm8,%xmm0
subpd  %xmm0,%xmm13
movupd 0x40(%r10,%rax,1),%xmm6
movapd %xmm6,%xmm5
unpcklpd %xmm6,%xmm5
movupd 0x40(%rdx,%rax,1),%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm5,%xmm1
subpd  %xmm1,%xmm14
movapd %xmm6,%xmm1
unpckhpd %xmm6,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm3
movupd 0x50(%r10,%rax,1),%xmm1
movapd %xmm1,%xmm2
unpcklpd %xmm1,%xmm2
mulpd  %xmm0,%xmm2
subpd  %xmm2,%xmm9
movapd %xmm1,%xmm2
unpckhpd %xmm1,%xmm2
movapd %xmm0,-0x40(%rsp)
mulpd  %xmm0,%xmm2
subpd  %xmm2,%xmm11
movsd  0x50(%rdx,%rax,1),%xmm2
movapd %xmm2,-0x10(%rsp)
unpcklpd %xmm2,%xmm2
movapd %xmm2,%xmm4
mulpd  %xmm6,%xmm4
subpd  %xmm4,%xmm10
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm12
movsd  0x58(%rdx,%rax,1),%xmm2
movapd %xmm2,0x20(%rsp)
unpcklpd %xmm2,%xmm2
movapd %xmm2,%xmm4
movapd %xmm6,0x50(%rsp)
mulpd  %xmm6,%xmm4
subpd  %xmm4,%xmm13
movapd %xmm1,0x40(%rsp)
mulpd  %xmm1,%xmm2
subpd  %xmm2,%xmm15
movupd 0x60(%r10,%rax,1),%xmm4
movapd %xmm4,%xmm8
unpcklpd %xmm4,%xmm8
movupd 0x60(%rdx,%rax,1),%xmm2
movapd %xmm2,%xmm6
mulpd  %xmm8,%xmm6
subpd  %xmm6,%xmm14
movapd %xmm4,%xmm6
unpckhpd %xmm4,%xmm6
mulpd  %xmm2,%xmm6
subpd  %xmm6,%xmm3
movupd 0x70(%r10,%rax,1),%xmm6
movapd %xmm6,%xmm7
unpcklpd %xmm6,%xmm7
mulpd  %xmm2,%xmm7
subpd  %xmm7,%xmm9
movapd %xmm6,%xmm7
unpckhpd %xmm6,%xmm7
mulpd  %xmm2,%xmm7
subpd  %xmm7,%xmm11
movsd  0x70(%rdx,%rax,1),%xmm0
movapd %xmm0,-0x20(%rsp)
unpcklpd %xmm0,%xmm0
movapd %xmm0,%xmm7
mulpd  %xmm6,%xmm7
subpd  %xmm7,%xmm12
mulpd  %xmm4,%xmm0
subpd  %xmm0,%xmm10
movsd  0x78(%rdx,%rax,1),%xmm1
movapd %xmm1,%xmm7
unpcklpd %xmm1,%xmm7
movapd %xmm7,%xmm0
mulpd  %xmm6,%xmm0
subpd  %xmm0,%xmm15
mulpd  %xmm4,%xmm7
subpd  %xmm7,%xmm13
add    $0x4,%ecx
sub    $0xffffffffffffff80,%rax
cmp    %r8d,%ecx
jl     1990 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x890>
movapd 0x1335(%rip),%xmm0
movapd -0x70(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x70(%rsp)
movapd -0x80(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x80(%rsp)
movapd -0x30(%rsp),%xmm10
xorpd  %xmm0,%xmm10
movapd -0x60(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x60(%rsp)
movapd -0x50(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x50(%rsp)
movapd 0x30(%rsp),%xmm12
xorpd  %xmm0,%xmm12
movapd -0x40(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x40(%rsp)
movapd -0x10(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x10(%rsp)
movapd 0x20(%rsp),%xmm15
xorpd  %xmm0,%xmm15
xorpd  %xmm0,%xmm2
movapd -0x20(%rsp),%xmm7
xorpd  %xmm0,%xmm7
movapd %xmm7,-0x20(%rsp)
xorpd  %xmm0,%xmm1
pshufd $0x44,%xmm10,%xmm0
movapd %xmm3,-0x30(%rsp)
movdqa %xmm0,%xmm10
movapd 0xb0(%rsp),%xmm14
mulpd  %xmm14,%xmm10
addpd  0x60(%rsp),%xmm10
mulpd  0x10(%rsp),%xmm0
addpd  0x70(%rsp),%xmm0
pshufd $0x44,%xmm12,%xmm7
movapd %xmm11,%xmm13
movdqa %xmm7,%xmm12
movapd 0xc0(%rsp),%xmm3
mulpd  %xmm3,%xmm12
addpd  %xmm0,%xmm12
mulpd  (%rsp),%xmm7
addpd  %xmm10,%xmm7
pshufd $0x44,%xmm15,%xmm0
movdqa %xmm0,%xmm10
movapd 0x40(%rsp),%xmm11
mulpd  %xmm11,%xmm10
addpd  %xmm7,%xmm10
movapd 0x50(%rsp),%xmm7
mulpd  %xmm7,%xmm0
addpd  %xmm12,%xmm0
movapd %xmm13,%xmm12
pshufd $0x44,%xmm1,%xmm15
movdqa %xmm15,%xmm13
mulpd  %xmm4,%xmm13
addpd  %xmm0,%xmm13
mulpd  %xmm6,%xmm15
addpd  %xmm10,%xmm15
pshufd $0x44,-0x80(%rsp),%xmm0
mulpd  %xmm0,%xmm14
addpd  0x90(%rsp),%xmm14
mulpd  0x10(%rsp),%xmm0
addpd  0xa0(%rsp),%xmm0
pshufd $0x44,-0x50(%rsp),%xmm1
mulpd  %xmm1,%xmm3
addpd  %xmm0,%xmm3
mulpd  (%rsp),%xmm1
addpd  %xmm14,%xmm1
pshufd $0x44,-0x10(%rsp),%xmm0
mulpd  %xmm0,%xmm11
addpd  %xmm1,%xmm11
mulpd  %xmm7,%xmm0
addpd  %xmm3,%xmm0
pshufd $0x44,-0x20(%rsp),%xmm1
mulpd  %xmm1,%xmm4
addpd  %xmm0,%xmm4
mulpd  %xmm6,%xmm1
addpd  %xmm11,%xmm1
movapd %xmm1,-0x80(%rsp)
movapd -0x70(%rsp),%xmm0
mulpd  0xd0(%rsp),%xmm0
addpd  0xe0(%rsp),%xmm0
movapd -0x60(%rsp),%xmm1
mulpd  0x80(%rsp),%xmm1
addpd  %xmm0,%xmm1
movapd -0x40(%rsp),%xmm0
mulpd  %xmm5,%xmm0
addpd  %xmm1,%xmm0
mulpd  %xmm8,%xmm2
addpd  %xmm0,%xmm2
movapd %xmm4,%xmm3
movapd %xmm2,%xmm14
movapd %xmm9,%xmm11
mov    0x128(%rsp),%rax
mov    0x120(%rsp),%rcx
test   %r9d,%r9d
je     1f76 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xe76>
mov    0x118(%rsp),%rdx
movupd (%rdx),%xmm0
addpd  %xmm0,%xmm14
movupd 0x20(%rdx),%xmm0
movapd -0x30(%rsp),%xmm6
addpd  %xmm0,%xmm6
movupd 0x40(%rdx),%xmm0
addpd  %xmm0,%xmm11
movupd 0x60(%rdx),%xmm0
addpd  %xmm0,%xmm12
movsd  0x10(%rdx),%xmm0
movhpd 0x30(%rdx),%xmm0
movsd  0x50(%rdx),%xmm1
movhpd 0x70(%rdx),%xmm1
movapd -0x80(%rsp),%xmm2
addpd  %xmm1,%xmm2
movapd %xmm2,-0x80(%rsp)
movapd %xmm3,%xmm10
addpd  %xmm0,%xmm10
movsd  0x18(%rdx),%xmm0
movhpd 0x38(%rdx),%xmm0
movsd  0x58(%rdx),%xmm1
movhpd 0x78(%rdx),%xmm1
addpd  %xmm1,%xmm15
addpd  %xmm0,%xmm13
jmp    1f81 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xe81>
movapd %xmm3,%xmm10
movapd -0x30(%rsp),%xmm6
movapd %xmm12,-0x60(%rsp)
movapd %xmm15,-0x70(%rsp)
movsd  (%rax),%xmm0
movapd %xmm0,%xmm2
unpcklpd %xmm0,%xmm2
mulpd  %xmm14,%xmm2
movapd %xmm10,%xmm3
mulsd  %xmm0,%xmm3
movapd %xmm13,%xmm1
mulsd  %xmm13,%xmm0
movupd %xmm2,(%rcx)
movsd  %xmm3,0x10(%rcx)
cmp    $0x4,%edi
jl     1fc6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xec6>
movsd  %xmm0,0x18(%rcx)
movsd  0x8(%rax),%xmm5
movsd  0x10(%rax),%xmm4
movapd 0x1027(%rip),%xmm12
movapd %xmm3,%xmm15
mulsd  %xmm5,%xmm3
movapd %xmm0,%xmm13
mulsd  %xmm5,%xmm0
unpcklpd %xmm5,%xmm5
mulpd  %xmm2,%xmm5
xorpd  %xmm12,%xmm2
subpd  %xmm5,%xmm6
xorpd  %xmm12,%xmm15
unpckhpd %xmm10,%xmm10
subsd  %xmm3,%xmm10
xorpd  %xmm12,%xmm13
unpckhpd %xmm1,%xmm1
subsd  %xmm0,%xmm1
mulsd  %xmm4,%xmm10
mulsd  %xmm4,%xmm1
movapd %xmm4,%xmm14
unpcklpd %xmm4,%xmm14
mulpd  %xmm6,%xmm14
movupd %xmm14,0x20(%rcx)
movsd  %xmm10,0x30(%rcx)
cmp    $0x4,%edi
jl     2046 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xf46>
movsd  %xmm1,0x38(%rcx)
movsd  0x18(%rax),%xmm0
movsd  0x20(%rax),%xmm3
movsd  0x28(%rax),%xmm5
movapd %xmm0,%xmm6
unpcklpd %xmm0,%xmm6
mulpd  %xmm2,%xmm6
addpd  %xmm11,%xmm6
movapd %xmm15,%xmm4
mulsd  %xmm0,%xmm4
movapd -0x80(%rsp),%xmm9
addsd  %xmm9,%xmm4
mulsd  %xmm13,%xmm0
addsd  -0x70(%rsp),%xmm0
movapd %xmm3,%xmm7
unpcklpd %xmm3,%xmm7
mulpd  %xmm14,%xmm7
subpd  %xmm7,%xmm6
movapd %xmm10,%xmm7
mulsd  %xmm3,%xmm7
subsd  %xmm7,%xmm4
movapd %xmm1,%xmm7
mulsd  %xmm1,%xmm3
subsd  %xmm3,%xmm0
mulsd  %xmm5,%xmm4
mulsd  %xmm5,%xmm0
unpcklpd %xmm5,%xmm5
mulpd  %xmm6,%xmm5
movupd %xmm5,0x40(%rcx)
movsd  %xmm4,0x50(%rcx)
cmp    $0x4,%edi
jl     20d4 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0xfd4>
movsd  %xmm0,0x58(%rcx)
cmp    $0x3,%esi
je     21b5 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x10b5>
xorpd  %xmm12,%xmm10
xorpd  %xmm12,%xmm14
movsd  0x30(%rax),%xmm6
movsd  0x38(%rax),%xmm11
movsd  0x40(%rax),%xmm8
movapd %xmm9,%xmm3
movsd  0x48(%rax),%xmm9
movapd %xmm6,%xmm1
unpcklpd %xmm6,%xmm1
mulpd  %xmm1,%xmm2
addpd  -0x60(%rsp),%xmm2
unpckhpd %xmm3,%xmm3
mulsd  %xmm6,%xmm15
addsd  %xmm3,%xmm15
movapd %xmm11,%xmm1
unpcklpd %xmm11,%xmm1
mulpd  %xmm14,%xmm1
addpd  %xmm2,%xmm1
mulsd  %xmm11,%xmm10
addsd  %xmm15,%xmm10
movapd %xmm8,%xmm2
unpcklpd %xmm8,%xmm2
mulpd  %xmm2,%xmm5
subpd  %xmm5,%xmm1
mulsd  %xmm8,%xmm4
subsd  %xmm4,%xmm10
movapd %xmm9,%xmm2
unpcklpd %xmm9,%xmm2
mulpd  %xmm1,%xmm2
mulsd  %xmm9,%xmm10
movupd %xmm2,0x60(%rcx)
movsd  %xmm10,0x70(%rcx)
cmp    $0x4,%edi
jl     21b5 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4+0x10b5>
xorpd  %xmm12,%xmm7
movapd -0x70(%rsp),%xmm1
unpckhpd %xmm1,%xmm1
mulsd  %xmm6,%xmm13
addsd  %xmm1,%xmm13
mulsd  %xmm11,%xmm7
addsd  %xmm13,%xmm7
mulsd  %xmm8,%xmm0
subsd  %xmm0,%xmm7
mulsd  %xmm9,%xmm7
movsd  %xmm7,0x78(%rcx)
add    $0xf8,%rsp
ret

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

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