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


x86 assembly (clang, -O0):
<kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new>:
push   %rbp
mov    %rsp,%rbp
sub    $0xb8,%rsp
mov    0x50(%rbp),%rax
mov    0x48(%rbp),%eax
mov    0x40(%rbp),%rax
mov    0x38(%rbp),%rax
mov    0x30(%rbp),%rax
mov    0x28(%rbp),%eax
mov    0x20(%rbp),%rax
mov    0x18(%rbp),%rax
mov    0x10(%rbp),%eax
mov    %edi,-0x4(%rbp)
mov    %esi,-0x8(%rbp)
mov    %edx,-0xc(%rbp)
mov    %ecx,-0x10(%rbp)
mov    %r8,-0x18(%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,-0xc(%rbp)
jle    29cf <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x18cf>
cmpl   $0x1,-0x10(%rbp)
jne    1ce1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbe1>
cmpl   $0x4,-0xc(%rbp)
jl     18af <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x7af>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%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
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    -0x18(%rbp),%rax
movsd  0x20(%rax),%xmm0
movsd  %xmm0,-0x30(%rbp)
mov    -0x18(%rbp),%rax
movsd  0x28(%rax),%xmm0
movsd  %xmm0,-0x38(%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
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    -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    -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
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    -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
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    -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    1cdc <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbdc>
mov    -0x18(%rbp),%rax
movsd  (%rax),%xmm0
movsd  %xmm0,-0x30(%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
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,-0xc(%rbp)
jle    1cd7 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbd7>
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    -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
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,-0xc(%rbp)
jle    1cd2 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbd2>
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    -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
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    1cd7 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbd7>
jmp    1cdc <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbdc>
jmp    1ce1 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbe1>
jmp    1ce6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbe6>
mov    -0x28(%rbp),%eax
mov    -0xc(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    2717 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1617>
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
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    -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
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    -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
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    -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
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    -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    1ce6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xbe6>
jmp    271c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x161c>
mov    -0x28(%rbp),%eax
cmp    -0xc(%rbp),%eax
jge    29ca <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x18ca>
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
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    -0x18(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x18(%rbp)
mov    -0x20(%rbp),%rax
add    $0x20,%rax
mov    %rax,-0x20(%rbp)
mov    -0x28(%rbp),%eax
add    $0x1,%eax
mov    %eax,-0x28(%rbp)
jmp    271c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x161c>
jmp    29cf <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x18cf>
movl   $0x0,-0x28(%rbp)
mov    -0x28(%rbp),%eax
mov    0x10(%rbp),%ecx
sub    $0x3,%ecx
cmp    %ecx,%eax
jge    39c7 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x28c7>
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
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    29d6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x18d6>
cmpl   $0x0,0x28(%rbp)
je     3b4e <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2a4e>
mov    0x30(%rbp),%rax
movsd  (%rax),%xmm0
addsd  -0x70(%rbp),%xmm0
movsd  %xmm0,-0x70(%rbp)
mov    0x30(%rbp),%rax
movsd  0x8(%rax),%xmm0
addsd  -0x90(%rbp),%xmm0
ff
movsd  %xmm0,-0x90(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x10(%rax),%xmm0
addsd  -0xb0(%rbp),%xmm0
ff
movsd  %xmm0,-0xb0(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x18(%rax),%xmm0
addsd  -0xd0(%rbp),%xmm0
ff
movsd  %xmm0,-0xd0(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x20(%rax),%xmm0
addsd  -0x78(%rbp),%xmm0
movsd  %xmm0,-0x78(%rbp)
mov    0x30(%rbp),%rax
movsd  0x28(%rax),%xmm0
addsd  -0x98(%rbp),%xmm0
ff
movsd  %xmm0,-0x98(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x30(%rax),%xmm0
addsd  -0xb8(%rbp),%xmm0
ff
movsd  %xmm0,-0xb8(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x38(%rax),%xmm0
addsd  -0xd8(%rbp),%xmm0
ff
movsd  %xmm0,-0xd8(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x40(%rax),%xmm0
addsd  -0x80(%rbp),%xmm0
movsd  %xmm0,-0x80(%rbp)
mov    0x30(%rbp),%rax
movsd  0x48(%rax),%xmm0
addsd  -0xa0(%rbp),%xmm0
ff
movsd  %xmm0,-0xa0(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x50(%rax),%xmm0
addsd  -0xc0(%rbp),%xmm0
ff
movsd  %xmm0,-0xc0(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x58(%rax),%xmm0
addsd  -0xe0(%rbp),%xmm0
ff
movsd  %xmm0,-0xe0(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x60(%rax),%xmm0
addsd  -0x88(%rbp),%xmm0
ff
movsd  %xmm0,-0x88(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x68(%rax),%xmm0
addsd  -0xa8(%rbp),%xmm0
ff
movsd  %xmm0,-0xa8(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x70(%rax),%xmm0
addsd  -0xc8(%rbp),%xmm0
ff
movsd  %xmm0,-0xc8(%rbp)
ff
mov    0x30(%rbp),%rax
movsd  0x78(%rax),%xmm0
addsd  -0xe8(%rbp),%xmm0
ff
movsd  %xmm0,-0xe8(%rbp)
ff
cmpl   $0x0,0x48(%rbp)
je     4475 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3375>
mov    0x50(%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    0x38(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x10(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     3c0c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2b0c>
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x40(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x50(%rbp),%rax
movsd  0x8(%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    0x38(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x30(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     3dc6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2cc6>
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x40(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x50(%rbp),%rax
movsd  0x10(%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
movsd  %xmm0,-0xa0(%rbp)
movsd  -0x128(%rbp),%xmm0
ff
mulsd  -0xc0(%rbp),%xmm0
ff
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    0x38(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x50(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4084 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2f84>
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x58(%rax)
cmpl   $0x3,-0x8(%rbp)
jne    4093 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2f93>
jmp    4db2 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3cb2>
mov    0x40(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x50(%rbp),%rax
movsd  0x18(%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    0x38(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x70(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4470 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3370>
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x78(%rax)
jmp    4db2 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3cb2>
mov    0x40(%rbp),%rax
movsd  0xb7f(%rip),%xmm0
divsd  (%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    0x38(%rbp),%rax
movsd  %xmm0,(%rax)
movsd  -0x90(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x8(%rax)
movsd  -0xb0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x10(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4531 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3431>
movsd  -0xd0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x18(%rax)
mov    0x40(%rbp),%rax
movsd  0x8(%rax),%xmm0
movsd  %xmm0,-0xf8(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0xab2(%rip),%xmm0
divsd  0x28(%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    0x38(%rbp),%rax
movsd  %xmm0,0x20(%rax)
movsd  -0x98(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x28(%rax)
movsd  -0xb8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x30(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     46f3 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x35f3>
movsd  -0xd8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x38(%rax)
mov    0x40(%rbp),%rax
movsd  0x10(%rax),%xmm0
movsd  %xmm0,-0x100(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x30(%rax),%xmm0
movsd  %xmm0,-0x118(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x8df(%rip),%xmm0
divsd  0x50(%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
ff
mulsd  -0xc0(%rbp),%xmm0
ff
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    0x38(%rbp),%rax
movsd  %xmm0,0x40(%rax)
movsd  -0xa0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x48(%rax)
movsd  -0xc0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x50(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     49b9 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x38b9>
movsd  -0xe0(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x58(%rax)
cmpl   $0x3,-0x8(%rbp)
jne    49c8 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x38c8>
jmp    4db2 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3cb2>
mov    0x40(%rbp),%rax
movsd  0x18(%rax),%xmm0
movsd  %xmm0,-0x108(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x38(%rax),%xmm0
movsd  %xmm0,-0x120(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x58(%rax),%xmm0
movsd  %xmm0,-0x130(%rbp)
ff
mov    0x40(%rbp),%rax
movsd  0x5f9(%rip),%xmm0
divsd  0x78(%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    0x38(%rbp),%rax
movsd  %xmm0,0x60(%rax)
movsd  -0xa8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x68(%rax)
movsd  -0xc8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x70(%rax)
cmpl   $0x4,-0x4(%rbp)
jl     4dad <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3cad>
movsd  -0xe8(%rbp),%xmm0
ff
mov    0x38(%rbp),%rax
movsd  %xmm0,0x78(%rax)
jmp    4db2 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3cb2>
add    $0xb8,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new>:
sub    $0x118,%rsp
mov    0x120(%rsp),%r10d
test   %edx,%edx
jle    12fb <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1fb>
cmp    $0x1,%ecx
jne    132b <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x22b>
movsd  (%r8),%xmm0
movsd  (%r9),%xmm7
mulsd  %xmm0,%xmm7
xorpd  %xmm2,%xmm2
addsd  %xmm2,%xmm7
movsd  0x8(%r9),%xmm6
mulsd  %xmm0,%xmm6
addsd  %xmm2,%xmm6
movsd  0x10(%r9),%xmm1
mulsd  %xmm0,%xmm1
addsd  %xmm2,%xmm1
mulsd  0x18(%r9),%xmm0
addsd  %xmm2,%xmm0
cmp    $0x4,%edx
jb     1358 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x258>
movsd  0x20(%r9),%xmm2
movsd  0x28(%r9),%xmm3
movsd  0x30(%r9),%xmm5
movsd  0x38(%r9),%xmm4
unpcklpd %xmm2,%xmm2
movq   %xmm7,%xmm9
movupd 0x20(%r8),%xmm7
movupd 0x40(%r8),%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(%r9),%xmm9
movapd %xmm9,%xmm10
unpcklpd %xmm9,%xmm10
mulpd  %xmm8,%xmm10
addpd  %xmm2,%xmm10
movapd %xmm9,%xmm14
unpckhpd %xmm9,%xmm14
mulpd  %xmm8,%xmm14
addpd  %xmm3,%xmm14
movupd 0x50(%r9),%xmm7
movapd %xmm7,%xmm0
movsd  0x50(%r8),%xmm6
unpcklpd %xmm6,%xmm6
mulpd  %xmm6,%xmm9
mulpd  %xmm7,%xmm6
unpcklpd %xmm7,%xmm7
mulpd  %xmm8,%xmm7
addpd  %xmm5,%xmm7
unpckhpd %xmm0,%xmm0
mulpd  %xmm8,%xmm0
addpd  %xmm4,%xmm0
movupd 0x60(%r8),%xmm8
movupd 0x60(%r9),%xmm12
movapd %xmm12,%xmm15
movupd 0x70(%r9),%xmm3
movapd %xmm3,%xmm13
movapd %xmm3,%xmm11
movsd  0x70(%r8),%xmm4
unpcklpd %xmm4,%xmm4
movapd %xmm4,%xmm1
mulpd  %xmm3,%xmm1
mulpd  %xmm12,%xmm4
movsd  0x78(%r8),%xmm5
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm3
mulpd  %xmm12,%xmm5
movapd %xmm12,%xmm2
movapd %xmm4,%xmm12
unpcklpd %xmm2,%xmm2
mulpd  %xmm8,%xmm2
addpd  %xmm10,%xmm2
movapd %xmm2,%xmm10
unpckhpd %xmm15,%xmm15
mulpd  %xmm8,%xmm15
addpd  %xmm14,%xmm15
unpcklpd %xmm13,%xmm13
mulpd  %xmm8,%xmm13
addpd  %xmm7,%xmm13
movapd %xmm1,%xmm14
unpckhpd %xmm11,%xmm11
mulpd  %xmm8,%xmm11
addpd  %xmm0,%xmm11
xorpd  %xmm1,%xmm1
addpd  %xmm1,%xmm9
addpd  %xmm1,%xmm6
addpd  %xmm6,%xmm14
addpd  %xmm9,%xmm12
addpd  %xmm1,%xmm3
addpd  %xmm1,%xmm5
sub    $0xffffffffffffff80,%r8
sub    $0xffffffffffffff80,%r9
mov    $0x4,%ecx
jmp    146c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x36c>
xorpd  %xmm13,%xmm13
xorpd  %xmm0,%xmm0
movapd %xmm0,-0x60(%rsp)
xorpd  %xmm11,%xmm11
xorpd  %xmm3,%xmm3
xorpd  %xmm12,%xmm12
xorpd  %xmm14,%xmm14
xorpd  %xmm6,%xmm6
xorpd  %xmm15,%xmm15
jmp    195d <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x85d>
xorpd  %xmm11,%xmm11
xor    %ecx,%ecx
xorpd  %xmm5,%xmm5
xorpd  %xmm3,%xmm3
xorpd  %xmm12,%xmm12
xorpd  %xmm14,%xmm14
xorpd  %xmm10,%xmm10
xorpd  %xmm15,%xmm15
xorpd  %xmm13,%xmm13
jmp    146c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x36c>
movq   %xmm0,%xmm11
movq   %xmm7,%xmm10
movq   %xmm6,%xmm15
movq   %xmm1,%xmm13
cmp    $0x2,%edx
jb     13d0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2d0>
movupd 0x20(%r8),%xmm0
movsd  0x20(%r9),%xmm1
movsd  0x28(%r9),%xmm2
movsd  0x30(%r9),%xmm3
movsd  0x38(%r9),%xmm4
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm1,%xmm10
unpcklpd %xmm2,%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm2,%xmm15
unpcklpd %xmm3,%xmm3
mulpd  %xmm0,%xmm3
addpd  %xmm3,%xmm13
unpcklpd %xmm4,%xmm4
mulpd  %xmm0,%xmm4
addpd  %xmm4,%xmm11
jne    13ec <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2ec>
xorpd  %xmm5,%xmm5
mov    $0x2,%ecx
jmp    13d9 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x2d9>
xorpd  %xmm5,%xmm5
mov    $0x1,%ecx
xorpd  %xmm3,%xmm3
xorpd  %xmm12,%xmm12
xorpd  %xmm14,%xmm14
jmp    146c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x36c>
movupd 0x40(%r8),%xmm0
movupd 0x40(%r9),%xmm1
movupd 0x50(%r9),%xmm14
movapd %xmm1,%xmm2
movapd %xmm14,%xmm3
movapd %xmm14,%xmm4
movsd  0x50(%r8),%xmm12
unpcklpd %xmm12,%xmm12
mulpd  %xmm12,%xmm14
mulpd  %xmm1,%xmm12
unpcklpd %xmm1,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm1,%xmm10
unpckhpd %xmm2,%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm2,%xmm15
unpcklpd %xmm3,%xmm3
mulpd  %xmm0,%xmm3
addpd  %xmm3,%xmm13
unpckhpd %xmm4,%xmm4
mulpd  %xmm0,%xmm4
addpd  %xmm4,%xmm11
xorpd  %xmm5,%xmm5
addpd  %xmm5,%xmm14
addpd  %xmm5,%xmm12
mov    $0x3,%ecx
xorpd  %xmm3,%xmm3
lea    -0x3(%rdx),%eax
cmp    %eax,%ecx
jge    17b7 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x6b7>
movapd %xmm10,%xmm8
movapd %xmm11,%xmm10
movapd %xmm5,%xmm7
movapd %xmm12,%xmm1
movapd %xmm3,-0x80(%rsp)
movapd %xmm14,-0x70(%rsp)
movapd %xmm15,%xmm12
nopl   0x0(%rax)
movupd (%r8),%xmm6
movupd (%r9),%xmm14
movapd %xmm7,%xmm15
movapd %xmm1,%xmm7
movupd 0x10(%r9),%xmm1
movupd 0x20(%r9),%xmm0
movapd %xmm14,%xmm3
unpcklpd %xmm14,%xmm3
mulpd  %xmm6,%xmm3
addpd  %xmm8,%xmm3
movapd %xmm14,%xmm9
unpckhpd %xmm14,%xmm9
mulpd  %xmm6,%xmm9
addpd  %xmm12,%xmm9
movapd %xmm1,%xmm4
movsd  0x10(%r8),%xmm5
unpcklpd %xmm5,%xmm5
movapd %xmm5,%xmm2
mulpd  %xmm14,%xmm2
movapd %xmm2,%xmm8
mulpd  %xmm1,%xmm5
movsd  0x18(%r8),%xmm2
unpcklpd %xmm2,%xmm2
mulpd  %xmm2,%xmm14
mulpd  %xmm1,%xmm2
unpcklpd %xmm1,%xmm1
mulpd  %xmm6,%xmm1
addpd  %xmm13,%xmm1
movupd 0x30(%r9),%xmm11
unpckhpd %xmm4,%xmm4
mulpd  %xmm6,%xmm4
addpd  %xmm10,%xmm4
addpd  %xmm7,%xmm8
movapd %xmm8,%xmm10
addpd  -0x70(%rsp),%xmm5
addpd  %xmm15,%xmm14
addpd  -0x80(%rsp),%xmm2
movupd 0x20(%r8),%xmm15
movsd  0x30(%r8),%xmm12
unpcklpd %xmm12,%xmm12
movapd %xmm12,%xmm7
mulpd  %xmm0,%xmm12
movapd %xmm0,%xmm8
unpcklpd %xmm0,%xmm8
mulpd  %xmm15,%xmm8
addpd  %xmm3,%xmm8
movapd %xmm11,%xmm6
movapd %xmm11,%xmm13
mulpd  %xmm11,%xmm7
movapd %xmm7,%xmm3
movsd  0x38(%r8),%xmm7
unpcklpd %xmm7,%xmm7
mulpd  %xmm7,%xmm11
mulpd  %xmm0,%xmm7
unpckhpd %xmm0,%xmm0
mulpd  %xmm15,%xmm0
addpd  %xmm9,%xmm0
unpcklpd %xmm6,%xmm6
mulpd  %xmm15,%xmm6
addpd  %xmm1,%xmm6
unpckhpd %xmm13,%xmm13
mulpd  %xmm15,%xmm13
addpd  %xmm4,%xmm13
addpd  %xmm5,%xmm3
movapd %xmm3,%xmm15
addpd  %xmm10,%xmm12
addpd  %xmm2,%xmm11
addpd  %xmm14,%xmm7
movupd 0x40(%r8),%xmm10
movupd 0x50(%r9),%xmm5
movupd 0x40(%r9),%xmm14
movapd %xmm14,%xmm2
unpcklpd %xmm14,%xmm2
mulpd  %xmm10,%xmm2
addpd  %xmm8,%xmm2
movapd %xmm14,%xmm3
unpckhpd %xmm14,%xmm3
mulpd  %xmm10,%xmm3
addpd  %xmm0,%xmm3
movapd %xmm5,%xmm1
movsd  0x50(%r8),%xmm0
unpcklpd %xmm0,%xmm0
movapd %xmm0,%xmm9
mulpd  %xmm14,%xmm9
mulpd  %xmm5,%xmm0
movsd  0x58(%r8),%xmm4
unpcklpd %xmm4,%xmm4
mulpd  %xmm4,%xmm14
mulpd  %xmm5,%xmm4
unpcklpd %xmm5,%xmm5
mulpd  %xmm10,%xmm5
addpd  %xmm6,%xmm5
unpckhpd %xmm1,%xmm1
mulpd  %xmm10,%xmm1
addpd  %xmm13,%xmm1
movapd %xmm1,-0x80(%rsp)
addpd  %xmm12,%xmm9
addpd  %xmm15,%xmm0
addpd  %xmm7,%xmm14
addpd  %xmm11,%xmm4
movupd 0x60(%r8),%xmm12
movupd 0x70(%r9),%xmm7
movupd 0x60(%r9),%xmm15
movapd %xmm15,%xmm11
movapd %xmm7,%xmm13
unpcklpd %xmm7,%xmm13
mulpd  %xmm12,%xmm13
addpd  %xmm5,%xmm13
movapd %xmm7,%xmm10
movsd  0x70(%r8),%xmm6
unpcklpd %xmm6,%xmm6
movapd %xmm6,%xmm1
mulpd  %xmm7,%xmm1
mulpd  %xmm15,%xmm6
movsd  0x78(%r8),%xmm5
unpcklpd %xmm5,%xmm5
mulpd  %xmm5,%xmm7
mulpd  %xmm15,%xmm5
unpcklpd %xmm15,%xmm15
mulpd  %xmm12,%xmm15
unpckhpd %xmm11,%xmm11
mulpd  %xmm12,%xmm11
unpckhpd %xmm10,%xmm10
mulpd  %xmm12,%xmm10
movapd %xmm15,%xmm8
addpd  %xmm2,%xmm8
addpd  -0x80(%rsp),%xmm10
movapd %xmm11,%xmm12
addpd  %xmm3,%xmm12
movapd %xmm1,-0x40(%rsp)
addpd  %xmm0,%xmm1
movapd %xmm1,-0x70(%rsp)
movapd %xmm6,%xmm1
addpd  %xmm9,%xmm1
movapd %xmm7,-0x50(%rsp)
addpd  %xmm4,%xmm7
movapd %xmm7,-0x80(%rsp)
movapd %xmm5,%xmm7
addpd  %xmm14,%xmm7
sub    $0xffffffffffffff80,%r8
sub    $0xffffffffffffff80,%r9
add    $0x4,%ecx
cmp    %eax,%ecx
jl     14a0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x3a0>
addpd  %xmm14,%xmm5
movapd -0x50(%rsp),%xmm1
addpd  %xmm4,%xmm1
addpd  %xmm9,%xmm6
movapd -0x40(%rsp),%xmm14
addpd  %xmm0,%xmm14
addpd  %xmm3,%xmm11
addpd  %xmm2,%xmm15
movapd %xmm1,%xmm3
movapd %xmm6,%xmm12
movapd %xmm15,%xmm6
movapd %xmm11,%xmm15
movapd %xmm10,%xmm11
cmp    %edx,%ecx
jl     17c0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x6c0>
movapd %xmm11,-0x60(%rsp)
movapd %xmm5,%xmm11
jmp    195d <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x85d>
movapd %xmm10,%xmm6
cmp    %edx,%ecx
jge    17a6 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x6a6>
sub    %ecx,%edx
xor    %eax,%eax
movapd %xmm11,%xmm4
movapd %xmm14,%xmm9
movapd %xmm5,%xmm7
movapd %xmm3,%xmm1
movapd %xmm15,%xmm5
movapd %xmm6,%xmm14
movapd %xmm13,-0x80(%rsp)
movapd %xmm12,%xmm3
nopl   0x0(%rax)
movapd %xmm5,%xmm11
movapd %xmm14,%xmm5
movapd %xmm9,%xmm12
movapd %xmm3,-0x70(%rsp)
movapd %xmm1,-0x50(%rsp)
movapd %xmm7,-0x40(%rsp)
movapd %xmm4,%xmm9
movupd (%r8,%rax,1),%xmm4
movupd (%r9,%rax,1),%xmm6
movupd 0x10(%r9,%rax,1),%xmm0
movapd %xmm6,%xmm15
movapd %xmm0,%xmm7
movapd %xmm0,%xmm2
movsd  0x10(%r8,%rax,1),%xmm8
unpcklpd %xmm8,%xmm8
movapd %xmm8,%xmm13
mulpd  %xmm0,%xmm13
mulpd  %xmm6,%xmm8
movsd  0x18(%r8,%rax,1),%xmm10
unpcklpd %xmm10,%xmm10
mulpd  %xmm10,%xmm0
mulpd  %xmm6,%xmm10
unpcklpd %xmm6,%xmm6
mulpd  %xmm4,%xmm6
unpcklpd %xmm7,%xmm7
mulpd  %xmm4,%xmm7
movapd -0x80(%rsp),%xmm1
addpd  %xmm7,%xmm1
movapd %xmm1,-0x80(%rsp)
movapd %xmm6,%xmm14
movapd %xmm5,(%rsp)
addpd  %xmm5,%xmm14
unpckhpd %xmm15,%xmm15
mulpd  %xmm4,%xmm15
unpckhpd %xmm2,%xmm2
mulpd  %xmm4,%xmm2
movapd %xmm15,%xmm5
movapd %xmm11,-0x10(%rsp)
addpd  %xmm11,%xmm5
movapd %xmm2,%xmm4
movapd %xmm9,-0x20(%rsp)
addpd  %xmm9,%xmm4
movapd %xmm13,%xmm9
movapd %xmm12,-0x30(%rsp)
addpd  %xmm12,%xmm9
movapd %xmm8,%xmm3
addpd  -0x70(%rsp),%xmm3
movapd %xmm0,%xmm1
addpd  -0x50(%rsp),%xmm1
movapd %xmm10,%xmm7
movapd -0x40(%rsp),%xmm11
addpd  %xmm11,%xmm7
add    $0x20,%rax
add    $0xffffffff,%edx
jne    17f0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x6f0>
movapd %xmm11,%xmm12
addpd  %xmm11,%xmm10
addpd  -0x50(%rsp),%xmm0
addpd  -0x70(%rsp),%xmm8
addpd  -0x30(%rsp),%xmm13
addpd  -0x20(%rsp),%xmm2
addpd  -0x10(%rsp),%xmm15
addpd  (%rsp),%xmm6
movapd %xmm2,-0x60(%rsp)
movapd %xmm10,%xmm11
movapd %xmm8,%xmm12
movapd %xmm13,%xmm14
movapd %xmm0,%xmm3
movapd -0x80(%rsp),%xmm13
mov    0x138(%rsp),%r8d
cmp    $0x4,%r10d
jl     1f0c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xe0c>
mov    0x130(%rsp),%r9
mov    0x128(%rsp),%rdx
add    $0xfffffffd,%r10d
xor    %ecx,%ecx
xor    %eax,%eax
movapd -0x60(%rsp),%xmm9
movapd %xmm6,%xmm5
cs nopw 0x0(%rax,%rax,1)
nopl   0x0(%rax)
movapd %xmm5,0x100(%rsp)
movapd %xmm14,0xb0(%rsp)
movapd %xmm12,0xc0(%rsp)
movapd %xmm3,0x70(%rsp)
movapd %xmm11,0x80(%rsp)
movupd (%rdx,%rcx,1),%xmm1
movupd (%r9,%rcx,1),%xmm7
movupd 0x10(%r9,%rcx,1),%xmm6
movupd 0x20(%r9,%rcx,1),%xmm10
movapd %xmm3,%xmm8
movupd 0x30(%r9,%rcx,1),%xmm3
movapd %xmm7,%xmm2
unpcklpd %xmm7,%xmm2
movapd %xmm1,%xmm0
movapd %xmm2,0xf0(%rsp)
mulpd  %xmm2,%xmm0
subpd  %xmm0,%xmm5
movsd  0x10(%rdx,%rcx,1),%xmm2
movsd  0x18(%rdx,%rcx,1),%xmm4
movapd %xmm7,%xmm0
unpckhpd %xmm7,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm15
movapd %xmm6,%xmm0
unpcklpd %xmm6,%xmm0
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm13
movapd %xmm6,%xmm0
unpckhpd %xmm6,%xmm0
movapd %xmm1,-0x80(%rsp)
mulpd  %xmm1,%xmm0
subpd  %xmm0,%xmm9
movapd %xmm2,-0x50(%rsp)
movapd %xmm2,%xmm0
unpcklpd %xmm2,%xmm0
movapd %xmm0,%xmm1
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm12
mulpd  %xmm6,%xmm0
subpd  %xmm0,%xmm14
movapd %xmm4,0x60(%rsp)
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
movapd %xmm0,%xmm1
movapd %xmm7,0xa0(%rsp)
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm11
movapd %xmm6,0xd0(%rsp)
mulpd  %xmm6,%xmm0
subpd  %xmm0,%xmm8
movupd 0x20(%rdx,%rcx,1),%xmm0
movapd %xmm10,%xmm2
unpcklpd %xmm10,%xmm2
movapd %xmm0,%xmm1
movapd %xmm2,0x90(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm5
movapd %xmm10,%xmm1
unpckhpd %xmm10,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm15
movapd %xmm3,%xmm1
unpcklpd %xmm3,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm3,%xmm1
unpckhpd %xmm3,%xmm1
movapd %xmm0,-0x70(%rsp)
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm9
movsd  0x30(%rdx,%rcx,1),%xmm1
movapd %xmm1,(%rsp)
unpcklpd %xmm1,%xmm1
movapd %xmm1,%xmm2
mulpd  %xmm3,%xmm2
subpd  %xmm2,%xmm14
mulpd  %xmm10,%xmm1
subpd  %xmm1,%xmm12
movsd  0x38(%rdx,%rcx,1),%xmm1
movapd %xmm1,0x30(%rsp)
unpcklpd %xmm1,%xmm1
movapd %xmm1,%xmm2
movapd %xmm3,0x10(%rsp)
mulpd  %xmm3,%xmm2
movapd %xmm8,%xmm3
subpd  %xmm2,%xmm3
movapd %xmm10,0xe0(%rsp)
mulpd  %xmm10,%xmm1
subpd  %xmm1,%xmm11
movupd 0x40(%r9,%rcx,1),%xmm6
movapd %xmm6,%xmm0
unpcklpd %xmm6,%xmm0
movupd 0x40(%rdx,%rcx,1),%xmm2
movapd %xmm2,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm5
movapd %xmm6,%xmm1
unpckhpd %xmm6,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm15
movupd 0x50(%r9,%rcx,1),%xmm7
movapd %xmm7,%xmm1
unpcklpd %xmm7,%xmm1
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm13
movapd %xmm7,%xmm1
unpckhpd %xmm7,%xmm1
movapd %xmm2,-0x40(%rsp)
mulpd  %xmm2,%xmm1
subpd  %xmm1,%xmm9
movsd  0x50(%rdx,%rcx,1),%xmm1
movapd %xmm1,-0x20(%rsp)
unpcklpd %xmm1,%xmm1
movapd %xmm1,%xmm4
mulpd  %xmm6,%xmm4
subpd  %xmm4,%xmm12
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm14
movsd  0x58(%rdx,%rcx,1),%xmm1
movapd %xmm1,0x20(%rsp)
unpcklpd %xmm1,%xmm1
movapd %xmm1,%xmm4
movapd %xmm6,0x50(%rsp)
mulpd  %xmm6,%xmm4
subpd  %xmm4,%xmm11
movapd %xmm7,0x40(%rsp)
mulpd  %xmm7,%xmm1
subpd  %xmm1,%xmm3
movupd 0x60(%r9,%rcx,1),%xmm8
movapd %xmm8,%xmm1
unpcklpd %xmm8,%xmm1
movupd 0x60(%rdx,%rcx,1),%xmm2
movapd %xmm2,%xmm4
mulpd  %xmm1,%xmm4
subpd  %xmm4,%xmm5
movapd %xmm8,%xmm4
unpckhpd %xmm8,%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm15
movupd 0x70(%r9,%rcx,1),%xmm10
movapd %xmm10,%xmm4
unpcklpd %xmm10,%xmm4
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm13
movapd %xmm10,%xmm4
unpckhpd %xmm10,%xmm4
movapd %xmm2,-0x10(%rsp)
mulpd  %xmm2,%xmm4
subpd  %xmm4,%xmm9
movsd  0x70(%rdx,%rcx,1),%xmm4
movapd %xmm4,-0x30(%rsp)
unpcklpd %xmm4,%xmm4
movapd %xmm4,%xmm6
mulpd  %xmm10,%xmm6
subpd  %xmm6,%xmm14
mulpd  %xmm8,%xmm4
subpd  %xmm4,%xmm12
movsd  0x78(%rdx,%rcx,1),%xmm4
movapd %xmm4,%xmm6
unpcklpd %xmm4,%xmm6
movapd %xmm15,%xmm2
movapd %xmm6,%xmm7
mulpd  %xmm10,%xmm7
subpd  %xmm7,%xmm3
mulpd  %xmm8,%xmm6
subpd  %xmm6,%xmm11
add    $0x4,%eax
sub    $0xffffffffffffff80,%rcx
cmp    %r10d,%eax
jl     19a0 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x8a0>
movapd %xmm8,%xmm7
movapd %xmm9,-0x60(%rsp)
movapd 0x12fa(%rip),%xmm2
movapd -0x80(%rsp),%xmm3
xorpd  %xmm2,%xmm3
movapd %xmm3,-0x80(%rsp)
movapd -0x50(%rsp),%xmm3
xorpd  %xmm2,%xmm3
movapd %xmm3,-0x50(%rsp)
movapd 0x60(%rsp),%xmm3
xorpd  %xmm2,%xmm3
movapd -0x70(%rsp),%xmm5
xorpd  %xmm2,%xmm5
movapd %xmm5,-0x70(%rsp)
movapd (%rsp),%xmm5
xorpd  %xmm2,%xmm5
movapd %xmm5,(%rsp)
movapd 0x30(%rsp),%xmm5
xorpd  %xmm2,%xmm5
movapd -0x40(%rsp),%xmm6
xorpd  %xmm2,%xmm6
movapd %xmm6,-0x40(%rsp)
movapd -0x20(%rsp),%xmm6
xorpd  %xmm2,%xmm6
movapd %xmm6,-0x20(%rsp)
movapd 0x20(%rsp),%xmm9
xorpd  %xmm2,%xmm9
movapd -0x10(%rsp),%xmm6
xorpd  %xmm2,%xmm6
movapd %xmm6,-0x10(%rsp)
movapd -0x30(%rsp),%xmm6
xorpd  %xmm2,%xmm6
movapd %xmm6,-0x30(%rsp)
xorpd  %xmm2,%xmm4
pshufd $0x44,%xmm3,%xmm6
movdqa %xmm6,%xmm3
movapd 0xd0(%rsp),%xmm8
mulpd  %xmm8,%xmm3
addpd  0x70(%rsp),%xmm3
movapd 0xa0(%rsp),%xmm14
mulpd  %xmm14,%xmm6
addpd  0x80(%rsp),%xmm6
pshufd $0x44,%xmm5,%xmm2
movdqa %xmm2,%xmm12
movapd 0xe0(%rsp),%xmm5
mulpd  %xmm5,%xmm12
addpd  %xmm6,%xmm12
mulpd  0x10(%rsp),%xmm2
addpd  %xmm3,%xmm2
pshufd $0x44,%xmm9,%xmm6
movdqa %xmm6,%xmm3
movapd 0x40(%rsp),%xmm9
mulpd  %xmm9,%xmm3
addpd  %xmm2,%xmm3
movapd 0x50(%rsp),%xmm2
mulpd  %xmm2,%xmm6
addpd  %xmm12,%xmm6
pshufd $0x44,%xmm4,%xmm4
movdqa %xmm4,%xmm11
mulpd  %xmm7,%xmm11
addpd  %xmm6,%xmm11
mulpd  %xmm10,%xmm4
addpd  %xmm3,%xmm4
movapd %xmm4,%xmm3
pshufd $0x44,-0x50(%rsp),%xmm4
mulpd  %xmm4,%xmm8
addpd  0xb0(%rsp),%xmm8
mulpd  %xmm14,%xmm4
addpd  0xc0(%rsp),%xmm4
pshufd $0x44,(%rsp),%xmm6
mulpd  %xmm6,%xmm5
addpd  %xmm4,%xmm5
mulpd  0x10(%rsp),%xmm6
addpd  %xmm8,%xmm6
pshufd $0x44,-0x20(%rsp),%xmm4
mulpd  %xmm4,%xmm9
addpd  %xmm6,%xmm9
mulpd  %xmm2,%xmm4
addpd  %xmm5,%xmm4
pshufd $0x44,-0x30(%rsp),%xmm14
44
mulpd  %xmm14,%xmm7
addpd  %xmm4,%xmm7
mulpd  %xmm10,%xmm14
addpd  %xmm9,%xmm14
movapd -0x80(%rsp),%xmm2
mulpd  0xf0(%rsp),%xmm2
addpd  0x100(%rsp),%xmm2
movapd -0x70(%rsp),%xmm4
mulpd  0x90(%rsp),%xmm4
addpd  %xmm2,%xmm4
movapd -0x40(%rsp),%xmm2
mulpd  %xmm0,%xmm2
addpd  %xmm4,%xmm2
movapd -0x10(%rsp),%xmm6
mulpd  %xmm1,%xmm6
addpd  %xmm2,%xmm6
movapd %xmm7,%xmm12
mov    0x158(%rsp),%edx
test   %r8d,%r8d
je     1f8c <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xe8c>
mov    0x140(%rsp),%rax
movupd (%rax),%xmm0
addpd  %xmm0,%xmm6
movupd 0x20(%rax),%xmm0
addpd  %xmm0,%xmm15
movupd 0x40(%rax),%xmm0
addpd  %xmm0,%xmm13
movupd 0x60(%rax),%xmm0
movapd -0x60(%rsp),%xmm1
addpd  %xmm0,%xmm1
movapd %xmm1,-0x60(%rsp)
movsd  0x10(%rax),%xmm0
movhpd 0x30(%rax),%xmm0
movsd  0x50(%rax),%xmm1
movhpd 0x70(%rax),%xmm1
addpd  %xmm1,%xmm14
addpd  %xmm0,%xmm12
movsd  0x18(%rax),%xmm0
movhpd 0x38(%rax),%xmm0
movsd  0x58(%rax),%xmm1
movhpd 0x78(%rax),%xmm1
addpd  %xmm1,%xmm3
addpd  %xmm0,%xmm11
mov    0x150(%rsp),%rcx
mov    0x148(%rsp),%rax
test   %edx,%edx
movapd %xmm3,-0x80(%rsp)
je     2202 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1102>
movapd %xmm15,%xmm10
mov    0x160(%rsp),%rdx
movsd  (%rdx),%xmm0
movapd %xmm0,%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm1,%xmm6
movapd %xmm12,%xmm2
mulsd  %xmm0,%xmm2
mulsd  %xmm11,%xmm0
movupd %xmm6,(%rax)
movsd  %xmm2,0x10(%rax)
cmp    $0x4,%edi
movapd %xmm12,%xmm9
jl     1fed <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xeed>
movsd  %xmm0,0x18(%rax)
movapd %xmm14,%xmm8
movsd  0x8(%rcx),%xmm5
movsd  0x8(%rdx),%xmm4
movapd 0xffc(%rip),%xmm1
movapd %xmm2,%xmm15
mulsd  %xmm5,%xmm2
movapd %xmm0,%xmm14
mulsd  %xmm5,%xmm0
unpcklpd %xmm5,%xmm5
mulpd  %xmm6,%xmm5
movapd %xmm6,%xmm12
xorpd  %xmm1,%xmm12
movapd %xmm10,%xmm6
subpd  %xmm5,%xmm6
xorpd  %xmm1,%xmm15
unpckhpd %xmm9,%xmm9
subsd  %xmm2,%xmm9
xorpd  %xmm1,%xmm14
unpckhpd %xmm11,%xmm11
subsd  %xmm0,%xmm11
mulsd  %xmm4,%xmm9
mulsd  %xmm4,%xmm11
movapd %xmm4,%xmm0
unpcklpd %xmm4,%xmm0
mulpd  %xmm6,%xmm0
movupd %xmm0,0x20(%rax)
movsd  %xmm9,0x30(%rax)
cmp    $0x4,%edi
jl     207b <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0xf7b>
movsd  %xmm11,0x38(%rax)
movsd  0x10(%rcx),%xmm2
movsd  0x30(%rcx),%xmm7
movsd  0x10(%rdx),%xmm5
movapd %xmm2,%xmm6
unpcklpd %xmm2,%xmm6
mulpd  %xmm12,%xmm6
addpd  %xmm13,%xmm6
movapd %xmm15,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm8,%xmm4
mulsd  %xmm14,%xmm2
addsd  %xmm3,%xmm2
movapd %xmm7,%xmm1
unpcklpd %xmm7,%xmm1
mulpd  %xmm0,%xmm1
subpd  %xmm1,%xmm6
movapd %xmm9,%xmm3
movapd %xmm9,%xmm1
mulsd  %xmm7,%xmm1
subsd  %xmm1,%xmm4
movapd %xmm11,%xmm13
mulsd  %xmm11,%xmm7
subsd  %xmm7,%xmm2
mulsd  %xmm5,%xmm4
mulsd  %xmm5,%xmm2
unpcklpd %xmm5,%xmm5
mulpd  %xmm6,%xmm5
movupd %xmm5,0x40(%rax)
movsd  %xmm4,0x50(%rax)
cmp    $0x4,%edi
jl     2107 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1007>
movsd  %xmm2,0x58(%rax)
cmp    $0x3,%esi
je     2455 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1355>
movapd %xmm3,%xmm7
movapd 0xee4(%rip),%xmm1
xorpd  %xmm1,%xmm7
xorpd  %xmm1,%xmm0
movsd  0x18(%rcx),%xmm6
movsd  0x38(%rcx),%xmm11
movsd  0x58(%rcx),%xmm9
movsd  0x18(%rdx),%xmm10
movapd %xmm6,%xmm1
unpcklpd %xmm6,%xmm1
mulpd  %xmm1,%xmm12
addpd  -0x60(%rsp),%xmm12
unpckhpd %xmm8,%xmm8
mulsd  %xmm6,%xmm15
addsd  %xmm8,%xmm15
movapd %xmm11,%xmm1
unpcklpd %xmm11,%xmm1
mulpd  %xmm0,%xmm1
addpd  %xmm12,%xmm1
mulsd  %xmm11,%xmm7
addsd  %xmm15,%xmm7
movapd %xmm9,%xmm0
unpcklpd %xmm9,%xmm0
mulpd  %xmm0,%xmm5
subpd  %xmm5,%xmm1
mulsd  %xmm9,%xmm4
subsd  %xmm4,%xmm7
movapd %xmm10,%xmm0
unpcklpd %xmm10,%xmm0
mulpd  %xmm1,%xmm0
mulsd  %xmm10,%xmm7
movupd %xmm0,0x60(%rax)
movsd  %xmm7,0x70(%rax)
cmp    $0x4,%edi
jl     2455 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1355>
movapd %xmm13,%xmm12
xorpd  0xe36(%rip),%xmm12
movapd -0x80(%rsp),%xmm13
unpckhpd %xmm13,%xmm13
mulsd  %xmm6,%xmm14
addsd  %xmm13,%xmm14
mulsd  %xmm11,%xmm12
movapd %xmm12,%xmm0
addsd  %xmm14,%xmm0
mulsd  %xmm9,%xmm2
subsd  %xmm2,%xmm0
mulsd  %xmm10,%xmm0
jmp    2450 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1350>
movapd %xmm14,%xmm9
movsd  0xe00(%rip),%xmm8
movapd %xmm8,%xmm0
divsd  (%rcx),%xmm0
movapd %xmm0,%xmm1
unpcklpd %xmm0,%xmm1
mulpd  %xmm1,%xmm6
movapd %xmm12,%xmm1
mulsd  %xmm0,%xmm1
mulsd  %xmm11,%xmm0
movapd %xmm6,%xmm7
movupd %xmm6,(%rax)
movsd  %xmm1,0x10(%rax)
cmp    $0x4,%edi
jl     224a <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x114a>
movsd  %xmm0,0x18(%rax)
movsd  0x8(%rcx),%xmm4
movapd %xmm8,%xmm2
divsd  0x28(%rcx),%xmm2
movapd 0xd9f(%rip),%xmm3
movapd %xmm1,%xmm14
mulsd  %xmm4,%xmm1
movapd %xmm0,%xmm10
mulsd  %xmm4,%xmm0
unpcklpd %xmm4,%xmm4
mulpd  %xmm7,%xmm4
xorpd  %xmm3,%xmm7
subpd  %xmm4,%xmm15
xorpd  %xmm3,%xmm14
unpckhpd %xmm12,%xmm12
subsd  %xmm1,%xmm12
xorpd  %xmm3,%xmm10
unpckhpd %xmm11,%xmm11
subsd  %xmm0,%xmm11
mulsd  %xmm2,%xmm12
mulsd  %xmm2,%xmm11
movapd %xmm2,%xmm0
unpcklpd %xmm2,%xmm0
mulpd  %xmm15,%xmm0
movupd %xmm0,0x20(%rax)
movsd  %xmm12,0x30(%rax)
cmp    $0x4,%edi
jl     22cf <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x11cf>
movsd  %xmm11,0x38(%rax)
movapd -0x60(%rsp),%xmm15
movsd  0x10(%rcx),%xmm2
movsd  0x30(%rcx),%xmm3
movapd %xmm8,%xmm5
divsd  0x50(%rcx),%xmm5
movapd %xmm2,%xmm1
unpcklpd %xmm2,%xmm1
mulpd  %xmm7,%xmm1
addpd  %xmm13,%xmm1
movapd %xmm14,%xmm4
mulsd  %xmm2,%xmm4
addsd  %xmm9,%xmm4
mulsd  %xmm10,%xmm2
addsd  -0x80(%rsp),%xmm2
movapd %xmm3,%xmm6
unpcklpd %xmm3,%xmm6
mulpd  %xmm0,%xmm6
subpd  %xmm6,%xmm1
movapd %xmm12,%xmm13
movapd %xmm12,%xmm6
mulsd  %xmm3,%xmm6
subsd  %xmm6,%xmm4
movapd %xmm11,%xmm12
mulsd  %xmm11,%xmm3
subsd  %xmm3,%xmm2
mulsd  %xmm5,%xmm4
mulsd  %xmm5,%xmm2
unpcklpd %xmm5,%xmm5
mulpd  %xmm1,%xmm5
movupd %xmm5,0x40(%rax)
movsd  %xmm4,0x50(%rax)
cmp    $0x4,%edi
jl     2368 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1268>
movsd  %xmm2,0x58(%rax)
cmp    $0x3,%esi
je     2455 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1355>
movapd %xmm13,%xmm6
movapd 0xc82(%rip),%xmm1
xorpd  %xmm1,%xmm6
xorpd  %xmm1,%xmm0
movsd  0x18(%rcx),%xmm1
movsd  0x38(%rcx),%xmm13
movsd  0x58(%rcx),%xmm11
divsd  0x78(%rcx),%xmm8
movapd %xmm1,%xmm3
unpcklpd %xmm1,%xmm3
mulpd  %xmm3,%xmm7
addpd  %xmm15,%xmm7
unpckhpd %xmm9,%xmm9
mulsd  %xmm1,%xmm14
addsd  %xmm9,%xmm14
movapd %xmm13,%xmm3
unpcklpd %xmm13,%xmm3
mulpd  %xmm0,%xmm3
addpd  %xmm7,%xmm3
mulsd  %xmm13,%xmm6
addsd  %xmm14,%xmm6
movapd %xmm11,%xmm0
unpcklpd %xmm11,%xmm0
mulpd  %xmm0,%xmm5
subpd  %xmm5,%xmm3
mulsd  %xmm11,%xmm4
subsd  %xmm4,%xmm6
movapd %xmm8,%xmm0
unpcklpd %xmm8,%xmm0
mulpd  %xmm3,%xmm0
mulsd  %xmm8,%xmm6
movupd %xmm0,0x60(%rax)
movsd  %xmm6,0x70(%rax)
cmp    $0x4,%edi
jl     2455 <kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new+0x1355>
xorpd  0xbe1(%rip),%xmm12
movapd -0x80(%rsp),%xmm0
unpckhpd %xmm0,%xmm0
mulsd  %xmm1,%xmm10
addsd  %xmm0,%xmm10
mulsd  %xmm13,%xmm12
addsd  %xmm10,%xmm12
mulsd  %xmm11,%xmm2
movapd %xmm12,%xmm0
subsd  %xmm2,%xmm0
mulsd  %xmm8,%xmm0
movsd  %xmm0,0x78(%rax)
add    $0x118,%rsp
ret

LLVM IR (-O0):
define void @kernel_dgemm_dtrsm_nt_4x4_vs_lib4_new(i32 %0, i32 %1, i32 %2, i32 %3, double* %4, double* %5, i32 %6, double* %7, double* %8, i32 %9, double* %10, double* %11, double* %12, i32 %13, double* %14) {
%16 = alloca i32
%17 = alloca i32
%18 = alloca i32
%19 = alloca i32
%20 = alloca double*
%21 = alloca double*
%22 = alloca i32
%23 = alloca double*
%24 = alloca double*
%25 = alloca i32
%26 = alloca double*
%27 = alloca double*
%28 = alloca double*
%29 = alloca i32
%30 = alloca double*
%31 = alloca i32
%32 = alloca i32
%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
%63 = alloca double
%64 = alloca double
%65 = alloca double
%66 = alloca double
store i32 %0, i32* %16
store i32 %1, i32* %17
store i32 %2, i32* %18
store i32 %3, i32* %19
store double* %4, double** %20
store double* %5, double** %21
store i32 %6, i32* %22
store double* %7, double** %23
store double* %8, double** %24
store i32 %9, i32* %25
store double* %10, double** %26
store double* %11, double** %27
store double* %12, double** %28
store i32 %13, i32* %29
store double* %14, double** %30
store i32 4, i32* %31
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 double 0.000000e+00, double* %53
store double 0.000000e+00, double* %54
store double 0.000000e+00, double* %55
store double 0.000000e+00, double* %56
store i32 0, i32* %32
%67 = load i32, i32* %18
%68 = icmp sgt i32 %67, 0
br i1 %68, label %69, label %954
69: ; preds = %15
%70 = load i32, i32* %19
%71 = icmp eq i32 %70, 1
br i1 %71, label %72, label %486
72: ; preds = %69
%73 = load i32, i32* %18
%74 = icmp sge i32 %73, 4
br i1 %74, label %75, label %320
75: ; preds = %72
%76 = load double*, double** %20
%77 = getelementptr inbounds double, double* %76, i64 0
%78 = load double, double* %77
store double %78, double* %33
%79 = load double*, double** %21
%80 = getelementptr inbounds double, double* %79, i64 0
%81 = load double, double* %80
store double %81, double* %37
%82 = load double*, double** %21
%83 = getelementptr inbounds double, double* %82, i64 1
%84 = load double, double* %83
store double %84, double* %38
%85 = load double*, double** %21
%86 = getelementptr inbounds double, double* %85, i64 2
%87 = load double, double* %86
store double %87, double* %39
%88 = load double*, double** %21
%89 = getelementptr inbounds double, double* %88, i64 3
%90 = load double, double* %89
store double %90, double* %40
%91 = load double, double* %33
%92 = load double, double* %37
%93 = load double, double* %41
%94 = call double @llvm.fmuladd.f64(double %91, double %92, double %93)
store double %94, double* %41
%95 = load double, double* %33
%96 = load double, double* %38
%97 = load double, double* %42
%98 = call double @llvm.fmuladd.f64(double %95, double %96, double %97)
store double %98, double* %42
%99 = load double, double* %33
%100 = load double, double* %39
%101 = load double, double* %43
%102 = call double @llvm.fmuladd.f64(double %99, double %100, double %101)
store double %102, double* %43
%103 = load double, double* %33
%104 = load double, double* %40
%105 = load double, double* %44
%106 = call double @llvm.fmuladd.f64(double %103, double %104, double %105)
store double %106, double* %44
%107 = load double*, double** %20
%108 = getelementptr inbounds double, double* %107, i64 4
%109 = load double, double* %108
store double %109, double* %33
%110 = load double*, double** %20
%111 = getelementptr inbounds double, double* %110, i64 5
%112 = load double, double* %111
store double %112, double* %34
%113 = load double*, double** %21
%114 = getelementptr inbounds double, double* %113, i64 4
%115 = load double, double* %114
store double %115, double* %37
%116 = load double*, double** %21
%117 = getelementptr inbounds double, double* %116, i64 5
%118 = load double, double* %117
store double %118, double* %38
%119 = load double*, double** %21
%120 = getelementptr inbounds double, double* %119, i64 6
%121 = load double, double* %120
store double %121, double* %39
%122 = load double*, double** %21
%123 = getelementptr inbounds double, double* %122, i64 7
%124 = load double, double* %123
store double %124, double* %40
%125 = load double, double* %33
%126 = load double, double* %37
%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* %34
%130 = load double, double* %37
%131 = load double, double* %45
%132 = call double @llvm.fmuladd.f64(double %129, double %130, double %131)
store double %132, double* %45
%133 = load double, double* %33
%134 = load double, double* %38
%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* %34
%138 = load double, double* %38
%139 = load double, double* %46
%140 = call double @llvm.fmuladd.f64(double %137, double %138, double %139)
store double %140, double* %46
%141 = load double, double* %33
%142 = load double, double* %39
%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* %34
%146 = load double, double* %39
%147 = load double, double* %47
%148 = call double @llvm.fmuladd.f64(double %145, double %146, double %147)
store double %148, double* %47
%149 = load double, double* %33
%150 = load double, double* %40
%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* %34
%154 = load double, double* %40
%155 = load double, double* %48
%156 = call double @llvm.fmuladd.f64(double %153, double %154, double %155)
store double %156, double* %48
%157 = load double*, double** %20
%158 = getelementptr inbounds double, double* %157, i64 8
%159 = load double, double* %158
store double %159, double* %33
%160 = load double*, double** %20
%161 = getelementptr inbounds double, double* %160, i64 9
%162 = load double, double* %161
store double %162, double* %34
%163 = load double*, double** %20
%164 = getelementptr inbounds double, double* %163, i64 10
%165 = load double, double* %164
store double %165, double* %35
%166 = load double*, double** %21
%167 = getelementptr inbounds double, double* %166, i64 8
%168 = load double, double* %167
store double %168, double* %37
%169 = load double*, double** %21
%170 = getelementptr inbounds double, double* %169, i64 9
%171 = load double, double* %170
store double %171, double* %38
%172 = load double*, double** %21
%173 = getelementptr inbounds double, double* %172, i64 10
%174 = load double, double* %173
store double %174, double* %39
%175 = load double*, double** %21
%176 = getelementptr inbounds double, double* %175, i64 11
%177 = load double, double* %176
store double %177, double* %40
%178 = load double, double* %33
%179 = load double, double* %37
%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* %34
%183 = load double, double* %37
%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* %35
%187 = load double, double* %37
%188 = load double, double* %49
%189 = call double @llvm.fmuladd.f64(double %186, double %187, double %188)
store double %189, double* %49
%190 = load double, double* %33
%191 = load double, double* %38
%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* %34
%195 = load double, double* %38
%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* %35
%199 = load double, double* %38
%200 = load double, double* %50
%201 = call double @llvm.fmuladd.f64(double %198, double %199, double %200)
store double %201, double* %50
%202 = load double, double* %33
%203 = load double, double* %39
%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* %34
%207 = load double, double* %39
%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* %35
%211 = load double, double* %39
%212 = load double, double* %51
%213 = call double @llvm.fmuladd.f64(double %210, double %211, double %212)
store double %213, double* %51
%214 = load double, double* %33
%215 = load double, double* %40
%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* %34
%219 = load double, double* %40
%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* %35
%223 = load double, double* %40
%224 = load double, double* %52
%225 = call double @llvm.fmuladd.f64(double %222, double %223, double %224)
store double %225, double* %52
%226 = load double*, double** %20
%227 = getelementptr inbounds double, double* %226, i64 12
%228 = load double, double* %227
store double %228, double* %33
%229 = load double*, double** %20
%230 = getelementptr inbounds double, double* %229, i64 13
%231 = load double, double* %230
store double %231, double* %34
%232 = load double*, double** %20
%233 = getelementptr inbounds double, double* %232, i64 14
%234 = load double, double* %233
store double %234, double* %35
%235 = load double*, double** %20
%236 = getelementptr inbounds double, double* %235, i64 15
%237 = load double, double* %236
store double %237, double* %36
%238 = load double*, double** %21
%239 = getelementptr inbounds double, double* %238, i64 12
%240 = load double, double* %239
store double %240, double* %37
%241 = load double*, double** %21
%242 = getelementptr inbounds double, double* %241, i64 13
%243 = load double, double* %242
store double %243, double* %38
%244 = load double*, double** %21
%245 = getelementptr inbounds double, double* %244, i64 14
%246 = load double, double* %245
store double %246, double* %39
%247 = load double*, double** %21
%248 = getelementptr inbounds double, double* %247, i64 15
%249 = load double, double* %248
store double %249, double* %40
%250 = load double, double* %33
%251 = load double, double* %37
%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* %34
%255 = load double, double* %37
%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* %35
%259 = load double, double* %37
%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* %36
%263 = load double, double* %37
%264 = load double, double* %53
%265 = call double @llvm.fmuladd.f64(double %262, double %263, double %264)
store double %265, double* %53
%266 = load double, double* %33
%267 = load double, double* %38
%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* %34
%271 = load double, double* %38
%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* %35
%275 = load double, double* %38
%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* %36
%279 = load double, double* %38
%280 = load double, double* %54
%281 = call double @llvm.fmuladd.f64(double %278, double %279, double %280)
store double %281, double* %54
%282 = load double, double* %33
%283 = load double, double* %39
%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* %34
%287 = load double, double* %39
%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* %35
%291 = load double, double* %39
%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* %36
%295 = load double, double* %39
%296 = load double, double* %55
%297 = call double @llvm.fmuladd.f64(double %294, double %295, double %296)
store double %297, double* %55
%298 = load double, double* %33
%299 = load double, double* %40
%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* %34
%303 = load double, double* %40
%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* %35
%307 = load double, double* %40
%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* %36
%311 = load double, double* %40
%312 = load double, double* %56
%313 = call double @llvm.fmuladd.f64(double %310, double %311, double %312)
store double %313, double* %56
%314 = load double*, double** %20
%315 = getelementptr inbounds double, double* %314, i64 16
store double* %315, double** %20
%316 = load double*, double** %21
%317 = getelementptr inbounds double, double* %316, i64 16
store double* %317, double** %21
%318 = load i32, i32* %32
%319 = add nsw i32 %318, 4
store i32 %319, i32* %32
br label %485
320: ; preds = %72
%321 = load double*, double** %20
%322 = getelementptr inbounds double, double* %321, i64 0
%323 = load double, double* %322
store double %323, double* %33
%324 = load double*, double** %21
%325 = getelementptr inbounds double, double* %324, i64 0
%326 = load double, double* %325
store double %326, double* %37
%327 = load double*, double** %21
%328 = getelementptr inbounds double, double* %327, i64 1
%329 = load double, double* %328
store double %329, double* %38
%330 = load double*, double** %21
%331 = getelementptr inbounds double, double* %330, i64 2
%332 = load double, double* %331
store double %332, double* %39
%333 = load double*, double** %21
%334 = getelementptr inbounds double, double* %333, i64 3
%335 = load double, double* %334
store double %335, double* %40
%336 = load double, double* %33
%337 = load double, double* %37
%338 = load double, double* %41
%339 = call double @llvm.fmuladd.f64(double %336, double %337, double %338)
store double %339, double* %41
%340 = load double, double* %33
%341 = load double, double* %38
%342 = load double, double* %42
%343 = call double @llvm.fmuladd.f64(double %340, double %341, double %342)
store double %343, double* %42
%344 = load double, double* %33
%345 = load double, double* %39
%346 = load double, double* %43
%347 = call double @llvm.fmuladd.f64(double %344, double %345, double %346)
store double %347, double* %43
%348 = load double, double* %33
%349 = load double, double* %40
%350 = load double, double* %44
%351 = call double @llvm.fmuladd.f64(double %348, double %349, double %350)
store double %351, double* %44
%352 = load i32, i32* %32
%353 = add nsw i32 %352, 1
store i32 %353, i32* %32
%354 = load i32, i32* %18
%355 = icmp sgt i32 %354, 1
br i1 %355, label %356, label %484
356: ; preds = %320
%357 = load double*, double** %20
%358 = getelementptr inbounds double, double* %357, i64 4
%359 = load double, double* %358
store double %359, double* %33
%360 = load double*, double** %20
%361 = getelementptr inbounds double, double* %360, i64 5
%362 = load double, double* %361
store double %362, double* %34
%363 = load double*, double** %21
%364 = getelementptr inbounds double, double* %363, i64 4
%365 = load double, double* %364
store double %365, double* %37
%366 = load double*, double** %21
%367 = getelementptr inbounds double, double* %366, i64 5
%368 = load double, double* %367
store double %368, double* %38
%369 = load double*, double** %21
%370 = getelementptr inbounds double, double* %369, i64 6
%371 = load double, double* %370
store double %371, double* %39
%372 = load double*, double** %21
%373 = getelementptr inbounds double, double* %372, i64 7
%374 = load double, double* %373
store double %374, double* %40
%375 = load double, double* %33
%376 = load double, double* %37
%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* %34
%380 = load double, double* %37
%381 = load double, double* %45
%382 = call double @llvm.fmuladd.f64(double %379, double %380, double %381)
store double %382, double* %45
%383 = load double, double* %33
%384 = load double, double* %38
%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* %34
%388 = load double, double* %38
%389 = load double, double* %46
%390 = call double @llvm.fmuladd.f64(double %387, double %388, double %389)
store double %390, double* %46
%391 = load double, double* %33
%392 = load double, double* %39
%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* %34
%396 = load double, double* %39
%397 = load double, double* %47
%398 = call double @llvm.fmuladd.f64(double %395, double %396, double %397)
store double %398, double* %47
%399 = load double, double* %33
%400 = load double, double* %40
%401 = load double, double* %44
%402 = call double @llvm.fmuladd.f64(double %399, double %400, double %401)
store double %402, double* %44
%403 = load double, double* %34
%404 = load double, double* %40
%405 = load double, double* %48
%406 = call double @llvm.fmuladd.f64(double %403, double %404, double %405)
store double %406, double* %48
%407 = load i32, i32* %32
%408 = add nsw i32 %407, 1
store i32 %408, i32* %32
%409 = load i32, i32* %18
%410 = icmp sgt i32 %409, 2
br i1 %410, label %411, label %483
411: ; preds = %356
%412 = load double*, double** %20
%413 = getelementptr inbounds double, double* %412, i64 8
%414 = load double, double* %413
store double %414, double* %33
%415 = load double*, double** %20
%416 = getelementptr inbounds double, double* %415, i64 9
%417 = load double, double* %416
store double %417, double* %34
%418 = load double*, double** %20
%419 = getelementptr inbounds double, double* %418, i64 10
%420 = load double, double* %419
store double %420, double* %35
%421 = load double*, double** %21
%422 = getelementptr inbounds double, double* %421, i64 8
%423 = load double, double* %422
store double %423, double* %37
%424 = load double*, double** %21
%425 = getelementptr inbounds double, double* %424, i64 9
%426 = load double, double* %425
store double %426, double* %38
%427 = load double*, double** %21
%428 = getelementptr inbounds double, double* %427, i64 10
%429 = load double, double* %428
store double %429, double* %39
%430 = load double*, double** %21
%431 = getelementptr inbounds double, double* %430, i64 11
%432 = load double, double* %431
store double %432, double* %40
%433 = load double, double* %33
%434 = load double, double* %37
%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* %34
%438 = load double, double* %37
%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* %35
%442 = load double, double* %37
%443 = load double, double* %49
%444 = call double @llvm.fmuladd.f64(double %441, double %442, double %443)
store double %444, double* %49
%445 = load double, double* %33
%446 = load double, double* %38
%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* %34
%450 = load double, double* %38
%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* %35
%454 = load double, double* %38
%455 = load double, double* %50
%456 = call double @llvm.fmuladd.f64(double %453, double %454, double %455)
store double %456, double* %50
%457 = load double, double* %33
%458 = load double, double* %39
%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* %34
%462 = load double, double* %39
%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* %35
%466 = load double, double* %39
%467 = load double, double* %51
%468 = call double @llvm.fmuladd.f64(double %465, double %466, double %467)
store double %468, double* %51
%469 = load double, double* %33
%470 = load double, double* %40
%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* %34
%474 = load double, double* %40
%475 = load double, double* %48
%476 = call double @llvm.fmuladd.f64(double %473, double %474, double %475)
store double %476, double* %48
%477 = load double, double* %35
%478 = load double, double* %40
%479 = load double, double* %52
%480 = call double @llvm.fmuladd.f64(double %477, double %478, double %479)
store double %480, double* %52
%481 = load i32, i32* %32
%482 = add nsw i32 %481, 1
store i32 %482, i32* %32
br label %483
483: ; preds = %411, %356
br label %484
484: ; preds = %483, %320
br label %485
485: ; preds = %484, %75
br label %486
486: ; preds = %485, %69
br label %487
487: ; preds = %849, %486
%488 = load i32, i32* %32
%489 = load i32, i32* %18
%490 = sub nsw i32 %489, 3
%491 = icmp slt i32 %488, %490
br i1 %491, label %492, label %852
492: ; preds = %487
%493 = load double*, double** %20
%494 = getelementptr inbounds double, double* %493, i64 0
%495 = load double, double* %494
store double %495, double* %33
%496 = load double*, double** %20
%497 = getelementptr inbounds double, double* %496, i64 1
%498 = load double, double* %497
store double %498, double* %34
%499 = load double*, double** %20
%500 = getelementptr inbounds double, double* %499, i64 2
%501 = load double, double* %500
store double %501, double* %35
%502 = load double*, double** %20
%503 = getelementptr inbounds double, double* %502, i64 3
%504 = load double, double* %503
store double %504, double* %36
%505 = load double*, double** %21
%506 = getelementptr inbounds double, double* %505, i64 0
%507 = load double, double* %506
store double %507, double* %37
%508 = load double*, double** %21
%509 = getelementptr inbounds double, double* %508, i64 1
%510 = load double, double* %509
store double %510, double* %38
%511 = load double*, double** %21
%512 = getelementptr inbounds double, double* %511, i64 2
%513 = load double, double* %512
store double %513, double* %39
%514 = load double*, double** %21
%515 = getelementptr inbounds double, double* %514, i64 3
%516 = load double, double* %515
store double %516, double* %40
%517 = load double, double* %33
%518 = load double, double* %37
%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* %34
%522 = load double, double* %37
%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* %35
%526 = load double, double* %37
%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* %36
%530 = load double, double* %37
%531 = load double, double* %53
%532 = call double @llvm.fmuladd.f64(double %529, double %530, double %531)
store double %532, double* %53
%533 = load double, double* %33
%534 = load double, double* %38
%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* %34
%538 = load double, double* %38
%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* %35
%542 = load double, double* %38
%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* %36
%546 = load double, double* %38
%547 = load double, double* %54
%548 = call double @llvm.fmuladd.f64(double %545, double %546, double %547)
store double %548, double* %54
%549 = load double, double* %33
%550 = load double, double* %39
%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* %34
%554 = load double, double* %39
%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* %35
%558 = load double, double* %39
%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* %36
%562 = load double, double* %39
%563 = load double, double* %55
%564 = call double @llvm.fmuladd.f64(double %561, double %562, double %563)
store double %564, double* %55
%565 = load double, double* %33
%566 = load double, double* %40
%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* %34
%570 = load double, double* %40
%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* %35
%574 = load double, double* %40
%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* %36
%578 = load double, double* %40
%579 = load double, double* %56
%580 = call double @llvm.fmuladd.f64(double %577, double %578, double %579)
store double %580, double* %56
%581 = load double*, double** %20
%582 = getelementptr inbounds double, double* %581, i64 4
%583 = load double, double* %582
store double %583, double* %33
%584 = load double*, double** %20
%585 = getelementptr inbounds double, double* %584, i64 5
%586 = load double, double* %585
store double %586, double* %34
%587 = load double*, double** %20
%588 = getelementptr inbounds double, double* %587, i64 6
%589 = load double, double* %588
store double %589, double* %35
%590 = load double*, double** %20
%591 = getelementptr inbounds double, double* %590, i64 7
%592 = load double, double* %591
store double %592, double* %36
%593 = load double*, double** %21
%594 = getelementptr inbounds double, double* %593, i64 4
%595 = load double, double* %594
store double %595, double* %37
%596 = load double*, double** %21
%597 = getelementptr inbounds double, double* %596, i64 5
%598 = load double, double* %597
store double %598, double* %38
%599 = load double*, double** %21
%600 = getelementptr inbounds double, double* %599, i64 6
%601 = load double, double* %600
store double %601, double* %39
%602 = load double*, double** %21
%603 = getelementptr inbounds double, double* %602, i64 7
%604 = load double, double* %603
store double %604, double* %40
%605 = load double, double* %33
%606 = load double, double* %37
%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* %34
%610 = load double, double* %37
%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* %35
%614 = load double, double* %37
%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* %36
%618 = load double, double* %37
%619 = load double, double* %53
%620 = call double @llvm.fmuladd.f64(double %617, double %618, double %619)
store double %620, double* %53
%621 = load double, double* %33
%622 = load double, double* %38
%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* %34
%626 = load double, double* %38
%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* %35
%630 = load double, double* %38
%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* %36
%634 = load double, double* %38
%635 = load double, double* %54
%636 = call double @llvm.fmuladd.f64(double %633, double %634, double %635)
store double %636, double* %54
%637 = load double, double* %33
%638 = load double, double* %39
%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* %34
%642 = load double, double* %39
%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* %35
%646 = load double, double* %39
%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* %36
%650 = load double, double* %39
%651 = load double, double* %55
%652 = call double @llvm.fmuladd.f64(double %649, double %650, double %651)
store double %652, double* %55
%653 = load double, double* %33
%654 = load double, double* %40
%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* %34
%658 = load double, double* %40
%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* %35
%662 = load double, double* %40
%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* %36
%666 = load double, double* %40
%667 = load double, double* %56
%668 = call double @llvm.fmuladd.f64(double %665, double %666, double %667)
store double %668, double* %56
%669 = load double*, double** %20
%670 = getelementptr inbounds double, double* %669, i64 8
%671 = load double, double* %670
store double %671, double* %33
%672 = load double*, double** %20
%673 = getelementptr inbounds double, double* %672, i64 9
%674 = load double, double* %673
store double %674, double* %34
%675 = load double*, double** %20
%676 = getelementptr inbounds double, double* %675, i64 10
%677 = load double, double* %676
store double %677, double* %35
%678 = load double*, double** %20
%679 = getelementptr inbounds double, double* %678, i64 11
%680 = load double, double* %679
store double %680, double* %36
%681 = load double*, double** %21
%682 = getelementptr inbounds double, double* %681, i64 8
%683 = load double, double* %682
store double %683, double* %37
%684 = load double*, double** %21
%685 = getelementptr inbounds double, double* %684, i64 9
%686 = load double, double* %685
store double %686, double* %38
%687 = load double*, double** %21
%688 = getelementptr inbounds double, double* %687, i64 10
%689 = load double, double* %688
store double %689, double* %39
%690 = load double*, double** %21
%691 = getelementptr inbounds double, double* %690, i64 11
%692 = load double, double* %691
store double %692, double* %40
%693 = load double, double* %33
%694 = load double, double* %37
%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* %34
%698 = load double, double* %37
%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* %35
%702 = load double, double* %37
%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* %36
%706 = load double, double* %37
%707 = load double, double* %53
%708 = call double @llvm.fmuladd.f64(double %705, double %706, double %707)
store double %708, double* %53
%709 = load double, double* %33
%710 = load double, double* %38
%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* %34
%714 = load double, double* %38
%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* %35
%718 = load double, double* %38
%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* %36
%722 = load double, double* %38
%723 = load double, double* %54
%724 = call double @llvm.fmuladd.f64(double %721, double %722, double %723)
store double %724, double* %54
%725 = load double, double* %33
%726 = load double, double* %39
%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* %34
%730 = load double, double* %39
%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* %35
%734 = load double, double* %39
%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* %36
%738 = load double, double* %39
%739 = load double, double* %55
%740 = call double @llvm.fmuladd.f64(double %737, double %738, double %739)
store double %740, double* %55
%741 = load double, double* %33
%742 = load double, double* %40
%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* %34
%746 = load double, double* %40
%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* %35
%750 = load double, double* %40
%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* %36
%754 = load double, double* %40
%755 = load double, double* %56
%756 = call double @llvm.fmuladd.f64(double %753, double %754, double %755)
store double %756, double* %56
%757 = load double*, double** %20
%758 = getelementptr inbounds double, double* %757, i64 12
%759 = load double, double* %758
store double %759, double* %33
%760 = load double*, double** %20
%761 = getelementptr inbounds double, double* %760, i64 13
%762 = load double, double* %761
store double %762, double* %34
%763 = load double*, double** %20
%764 = getelementptr inbounds double, double* %763, i64 14
%765 = load double, double* %764
store double %765, double* %35
%766 = load double*, double** %20
%767 = getelementptr inbounds double, double* %766, i64 15
%768 = load double, double* %767
store double %768, double* %36
%769 = load double*, double** %21
%770 = getelementptr inbounds double, double* %769, i64 12
%771 = load double, double* %770
store double %771, double* %37
%772 = load double*, double** %21
%773 = getelementptr inbounds double, double* %772, i64 13
%774 = load double, double* %773
store double %774, double* %38
%775 = load double*, double** %21
%776 = getelementptr inbounds double, double* %775, i64 14
%777 = load double, double* %776
store double %777, double* %39
%778 = load double*, double** %21
%779 = getelementptr inbounds double, double* %778, i64 15
%780 = load double, double* %779
store double %780, double* %40
%781 = load double, double* %33
%782 = load double, double* %37
%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* %34
%786 = load double, double* %37
%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* %35
%790 = load double, double* %37
%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* %36
%794 = load double, double* %37
%795 = load double, double* %53
%796 = call double @llvm.fmuladd.f64(double %793, double %794, double %795)
store double %796, double* %53
%797 = load double, double* %33
%798 = load double, double* %38
%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* %34
%802 = load double, double* %38
%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* %35
%806 = load double, double* %38
%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* %36
%810 = load double, double* %38
%811 = load double, double* %54
%812 = call double @llvm.fmuladd.f64(double %809, double %810, double %811)
store double %812, double* %54
%813 = load double, double* %33
%814 = load double, double* %39
%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* %34
%818 = load double, double* %39
%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* %35
%822 = load double, double* %39
%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* %36
%826 = load double, double* %39
%827 = load double, double* %55
%828 = call double @llvm.fmuladd.f64(double %825, double %826, double %827)
store double %828, double* %55
%829 = load double, double* %33
%830 = load double, double* %40
%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* %34
%834 = load double, double* %40
%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* %35
%838 = load double, double* %40
%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* %36
%842 = load double, double* %40
%843 = load double, double* %56
%844 = call double @llvm.fmuladd.f64(double %841, double %842, double %843)
store double %844, double* %56
%845 = load double*, double** %20
%846 = getelementptr inbounds double, double* %845, i64 16
store double* %846, double** %20
%847 = load double*, double** %21
%848 = getelementptr inbounds double, double* %847, i64 16
store double* %848, double** %21
br label %849
849: ; preds = %492
%850 = load i32, i32* %32
%851 = add nsw i32 %850, 4
store i32 %851, i32* %32
br label %487
852: ; preds = %487
br label %853
853: ; preds = %950, %852
%854 = load i32, i32* %32
%855 = load i32, i32* %18
%856 = icmp slt i32 %854, %855
br i1 %856, label %857, label %953
857: ; preds = %853
%858 = load double*, double** %20
%859 = getelementptr inbounds double, double* %858, i64 0
%860 = load double, double* %859
store double %860, double* %33
%861 = load double*, double** %20
%862 = getelementptr inbounds double, double* %861, i64 1
%863 = load double, double* %862
store double %863, double* %34
%864 = load double*, double** %20
%865 = getelementptr inbounds double, double* %864, i64 2
%866 = load double, double* %865
store double %866, double* %35
%867 = load double*, double** %20
%868 = getelementptr inbounds double, double* %867, i64 3
%869 = load double, double* %868
store double %869, double* %36
%870 = load double*, double** %21
%871 = getelementptr inbounds double, double* %870, i64 0
%872 = load double, double* %871
store double %872, double* %37
%873 = load double*, double** %21
%874 = getelementptr inbounds double, double* %873, i64 1
%875 = load double, double* %874
store double %875, double* %38
%876 = load double*, double** %21
%877 = getelementptr inbounds double, double* %876, i64 2
%878 = load double, double* %877
store double %878, double* %39
%879 = load double*, double** %21
%880 = getelementptr inbounds double, double* %879, i64 3
%881 = load double, double* %880
store double %881, double* %40
%882 = load double, double* %33
%883 = load double, double* %37
%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* %34
%887 = load double, double* %37
%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* %35
%891 = load double, double* %37
%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* %36
%895 = load double, double* %37
%896 = load double, double* %53
%897 = call double @llvm.fmuladd.f64(double %894, double %895, double %896)
store double %897, double* %53
%898 = load double, double* %33
%899 = load double, double* %38
%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* %34
%903 = load double, double* %38
%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* %35
%907 = load double, double* %38
%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* %36
%911 = load double, double* %38
%912 = load double, double* %54
%913 = call double @llvm.fmuladd.f64(double %910, double %911, double %912)
store double %913, double* %54
%914 = load double, double* %33
%915 = load double, double* %39
%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* %34
%919 = load double, double* %39
%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* %35
%923 = load double, double* %39
%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* %36
%927 = load double, double* %39
%928 = load double, double* %55
%929 = call double @llvm.fmuladd.f64(double %926, double %927, double %928)
store double %929, double* %55
%930 = load double, double* %33
%931 = load double, double* %40
%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* %34
%935 = load double, double* %40
%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* %35
%939 = load double, double* %40
%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* %36
%943 = load double, double* %40
%944 = load double, double* %56
%945 = call double @llvm.fmuladd.f64(double %942, double %943, double %944)
store double %945, double* %56
%946 = load double*, double** %20
%947 = getelementptr inbounds double, double* %946, i64 4
store double* %947, double** %20
%948 = load double*, double** %21
%949 = getelementptr inbounds double, double* %948, i64 4
store double* %949, double** %21
br label %950
950: ; preds = %857
%951 = load i32, i32* %32
%952 = add nsw i32 %951, 1
store i32 %952, i32* %32
br label %853
953: ; preds = %853
br label %954
954: ; preds = %953, %15
store i32 0, i32* %32
br label %955
955: ; preds = %1381, %954
%956 = load i32, i32* %32
%957 = load i32, i32* %22
%958 = sub nsw i32 %957, 3
%959 = icmp slt i32 %956, %958
br i1 %959, label %960, label %1384
960: ; preds = %955
%961 = load double*, double** %23
%962 = getelementptr inbounds double, double* %961, i64 0
%963 = load double, double* %962
store double %963, double* %33
%964 = load double*, double** %23
%965 = getelementptr inbounds double, double* %964, i64 1
%966 = load double, double* %965
store double %966, double* %34
%967 = load double*, double** %23
%968 = getelementptr inbounds double, double* %967, i64 2
%969 = load double, double* %968
store double %969, double* %35
%970 = load double*, double** %23
%971 = getelementptr inbounds double, double* %970, i64 3
%972 = load double, double* %971
store double %972, double* %36
%973 = load double*, double** %24
%974 = getelementptr inbounds double, double* %973, i64 0
%975 = load double, double* %974
store double %975, double* %37
%976 = load double*, double** %24
%977 = getelementptr inbounds double, double* %976, i64 1
%978 = load double, double* %977
store double %978, double* %38
%979 = load double*, double** %24
%980 = getelementptr inbounds double, double* %979, i64 2
%981 = load double, double* %980
store double %981, double* %39
%982 = load double*, double** %24
%983 = getelementptr inbounds double, double* %982, i64 3
%984 = load double, double* %983
store double %984, double* %40
%985 = load double, double* %33
%986 = load double, double* %37
%987 = load double, double* %41
%988 = fneg double %985
%989 = call double @llvm.fmuladd.f64(double %988, double %986, double %987)
store double %989, double* %41
%990 = load double, double* %34
%991 = load double, double* %37
%992 = load double, double* %45
%993 = fneg double %990
%994 = call double @llvm.fmuladd.f64(double %993, double %991, double %992)
store double %994, double* %45
%995 = load double, double* %35
%996 = load double, double* %37
%997 = load double, double* %49
%998 = fneg double %995
%999 = call double @llvm.fmuladd.f64(double %998, double %996, double %997)
store double %999, double* %49
%1000 = load double, double* %36
%1001 = load double, double* %37
%1002 = load double, double* %53
%1003 = fneg double %1000
%1004 = call double @llvm.fmuladd.f64(double %1003, double %1001, double %1002)
store double %1004, double* %53
%1005 = load double, double* %33
%1006 = load double, double* %38
%1007 = load double, double* %42
%1008 = fneg double %1005
%1009 = call double @llvm.fmuladd.f64(double %1008, double %1006, double %1007)
store double %1009, double* %42
%1010 = load double, double* %34
%1011 = load double, double* %38
%1012 = load double, double* %46
%1013 = fneg double %1010
%1014 = call double @llvm.fmuladd.f64(double %1013, double %1011, double %1012)
store double %1014, double* %46
%1015 = load double, double* %35
%1016 = load double, double* %38
%1017 = load double, double* %50
%1018 = fneg double %1015
%1019 = call double @llvm.fmuladd.f64(double %1018, double %1016, double %1017)
store double %1019, double* %50
%1020 = load double, double* %36
%1021 = load double, double* %38
%1022 = load double, double* %54
%1023 = fneg double %1020
%1024 = call double @llvm.fmuladd.f64(double %1023, double %1021, double %1022)
store double %1024, double* %54
%1025 = load double, double* %33
%1026 = load double, double* %39
%1027 = load double, double* %43
%1028 = fneg double %1025
%1029 = call double @llvm.fmuladd.f64(double %1028, double %1026, double %1027)
store double %1029, double* %43
%1030 = load double, double* %34
%1031 = load double, double* %39
%1032 = load double, double* %47
%1033 = fneg double %1030
%1034 = call double @llvm.fmuladd.f64(double %1033, double %1031, double %1032)
store double %1034, double* %47
%1035 = load double, double* %35
%1036 = load double, double* %39
%1037 = load double, double* %51
%1038 = fneg double %1035
%1039 = call double @llvm.fmuladd.f64(double %1038, double %1036, double %1037)
store double %1039, double* %51
%1040 = load double, double* %36
%1041 = load double, double* %39
%1042 = load double, double* %55
%1043 = fneg double %1040
%1044 = call double @llvm.fmuladd.f64(double %1043, double %1041, double %1042)
store double %1044, double* %55
%1045 = load double, double* %33
%1046 = load double, double* %40
%1047 = load double, double* %44
%1048 = fneg double %1045
%1049 = call double @llvm.fmuladd.f64(double %1048, double %1046, double %1047)
store double %1049, double* %44
%1050 = load double, double* %34
%1051 = load double, double* %40
%1052 = load double, double* %48
%1053 = fneg double %1050
%1054 = call double @llvm.fmuladd.f64(double %1053, double %1051, double %1052)
store double %1054, double* %48
%1055 = load double, double* %35
%1056 = load double, double* %40
%1057 = load double, double* %52
%1058 = fneg double %1055
%1059 = call double @llvm.fmuladd.f64(double %1058, double %1056, double %1057)
store double %1059, double* %52
%1060 = load double, double* %36
%1061 = load double, double* %40
%1062 = load double, double* %56
%1063 = fneg double %1060
%1064 = call double @llvm.fmuladd.f64(double %1063, double %1061, double %1062)
store double %1064, double* %56
%1065 = load double*, double** %23
%1066 = getelementptr inbounds double, double* %1065, i64 4
%1067 = load double, double* %1066
store double %1067, double* %33
%1068 = load double*, double** %23
%1069 = getelementptr inbounds double, double* %1068, i64 5
%1070 = load double, double* %1069
store double %1070, double* %34
%1071 = load double*, double** %23
%1072 = getelementptr inbounds double, double* %1071, i64 6
%1073 = load double, double* %1072
store double %1073, double* %35
%1074 = load double*, double** %23
%1075 = getelementptr inbounds double, double* %1074, i64 7
%1076 = load double, double* %1075
store double %1076, double* %36
%1077 = load double*, double** %24
%1078 = getelementptr inbounds double, double* %1077, i64 4
%1079 = load double, double* %1078
store double %1079, double* %37
%1080 = load double*, double** %24
%1081 = getelementptr inbounds double, double* %1080, i64 5
%1082 = load double, double* %1081
store double %1082, double* %38
%1083 = load double*, double** %24
%1084 = getelementptr inbounds double, double* %1083, i64 6
%1085 = load double, double* %1084
store double %1085, double* %39
%1086 = load double*, double** %24
%1087 = getelementptr inbounds double, double* %1086, i64 7
%1088 = load double, double* %1087
store double %1088, double* %40
%1089 = load double, double* %33
%1090 = load double, double* %37
%1091 = load double, double* %41
%1092 = fneg double %1089
%1093 = call double @llvm.fmuladd.f64(double %1092, double %1090, double %1091)
store double %1093, double* %41
%1094 = load double, double* %34
%1095 = load double, double* %37
%1096 = load double, double* %45
%1097 = fneg double %1094
%1098 = call double @llvm.fmuladd.f64(double %1097, double %1095, double %1096)
store double %1098, double* %45
%1099 = load double, double* %35
%1100 = load double, double* %37
%1101 = load double, double* %49
%1102 = fneg double %1099
%1103 = call double @llvm.fmuladd.f64(double %1102, double %1100, double %1101)
store double %1103, double* %49
%1104 = load double, double* %36
%1105 = load double, double* %37
%1106 = load double, double* %53
%1107 = fneg double %1104
%1108 = call double @llvm.fmuladd.f64(double %1107, double %1105, double %1106)
store double %1108, double* %53
%1109 = load double, double* %33
%1110 = load double, double* %38
%1111 = load double, double* %42
%1112 = fneg double %1109
%1113 = call double @llvm.fmuladd.f64(double %1112, double %1110, double %1111)
store double %1113, double* %42
%1114 = load double, double* %34
%1115 = load double, double* %38
%1116 = load double, double* %46
%1117 = fneg double %1114
%1118 = call double @llvm.fmuladd.f64(double %1117, double %1115, double %1116)
store double %1118, double* %46
%1119 = load double, double* %35
%1120 = load double, double* %38
%1121 = load double, double* %50
%1122 = fneg double %1119
%1123 = call double @llvm.fmuladd.f64(double %1122, double %1120, double %1121)
store double %1123, double* %50
%1124 = load double, double* %36
%1125 = load double, double* %38
%1126 = load double, double* %54
%1127 = fneg double %1124
%1128 = call double @llvm.fmuladd.f64(double %1127, double %1125, double %1126)
store double %1128, double* %54
%1129 = load double, double* %33
%1130 = load double, double* %39
%1131 = load double, double* %43
%1132 = fneg double %1129
%1133 = call double @llvm.fmuladd.f64(double %1132, double %1130, double %1131)
store double %1133, double* %43
%1134 = load double, double* %34
%1135 = load double, double* %39
%1136 = load double, double* %47
%1137 = fneg double %1134
%1138 = call double @llvm.fmuladd.f64(double %1137, double %1135, double %1136)
store double %1138, double* %47
%1139 = load double, double* %35
%1140 = load double, double* %39
%1141 = load double, double* %51
%1142 = fneg double %1139
%1143 = call double @llvm.fmuladd.f64(double %1142, double %1140, double %1141)
store double %1143, double* %51
%1144 = load double, double* %36
%1145 = load double, double* %39
%1146 = load double, double* %55
%1147 = fneg double %1144
%1148 = call double @llvm.fmuladd.f64(double %1147, double %1145, double %1146)
store double %1148, double* %55
%1149 = load double, double* %33
%1150 = load double, double* %40
%1151 = load double, double* %44
%1152 = fneg double %1149
%1153 = call double @llvm.fmuladd.f64(double %1152, double %1150, double %1151)
store double %1153, double* %44
%1154 = load double, double* %34
%1155 = load double, double* %40
%1156 = load double, double* %48
%1157 = fneg double %1154
%1158 = call double @llvm.fmuladd.f64(double %1157, double %1155, double %1156)
store double %1158, double* %48
%1159 = load double, double* %35
%1160 = load double, double* %40
%1161 = load double, double* %52
%1162 = fneg double %1159
%1163 = call double @llvm.fmuladd.f64(double %1162, double %1160, double %1161)
store double %1163, double* %52
%1164 = load double, double* %36
%1165 = load double, double* %40
%1166 = load double, double* %56
%1167 = fneg double %1164
%1168 = call double @llvm.fmuladd.f64(double %1167, double %1165, double %1166)
store double %1168, double* %56
%1169 = load double*, double** %23
%1170 = getelementptr inbounds double, double* %1169, i64 8
%1171 = load double, double* %1170
store double %1171, double* %33
%1172 = load double*, double** %23
%1173 = getelementptr inbounds double, double* %1172, i64 9
%1174 = load double, double* %1173
store double %1174, double* %34
%1175 = load double*, double** %23
%1176 = getelementptr inbounds double, double* %1175, i64 10
%1177 = load double, double* %1176
store double %1177, double* %35
%1178 = load double*, double** %23
%1179 = getelementptr inbounds double, double* %1178, i64 11
%1180 = load double, double* %1179
store double %1180, double* %36
%1181 = load double*, double** %24
%1182 = getelementptr inbounds double, double* %1181, i64 8
%1183 = load double, double* %1182
store double %1183, double* %37
%1184 = load double*, double** %24
%1185 = getelementptr inbounds double, double* %1184, i64 9
%1186 = load double, double* %1185
store double %1186, double* %38
%1187 = load double*, double** %24
%1188 = getelementptr inbounds double, double* %1187, i64 10
%1189 = load double, double* %1188
store double %1189, double* %39
%1190 = load double*, double** %24
%1191 = getelementptr inbounds double, double* %1190, i64 11
%1192 = load double, double* %1191
store double %1192, double* %40
%1193 = load double, double* %33
%1194 = load double, double* %37
%1195 = load double, double* %41
%1196 = fneg double %1193
%1197 = call double @llvm.fmuladd.f64(double %1196, double %1194, double %1195)
store double %1197, double* %41
%1198 = load double, double* %34
%1199 = load double, double* %37
%1200 = load double, double* %45
%1201 = fneg double %1198
%1202 = call double @llvm.fmuladd.f64(double %1201, double %1199, double %1200)
store double %1202, double* %45
%1203 = load double, double* %35
%1204 = load double, double* %37
%1205 = load double, double* %49
%1206 = fneg double %1203
%1207 = call double @llvm.fmuladd.f64(double %1206, double %1204, double %1205)
store double %1207, double* %49
%1208 = load double, double* %36
%1209 = load double, double* %37
%1210 = load double, double* %53
%1211 = fneg double %1208
%1212 = call double @llvm.fmuladd.f64(double %1211, double %1209, double %1210)
store double %1212, double* %53
%1213 = load double, double* %33
%1214 = load double, double* %38
%1215 = load double, double* %42
%1216 = fneg double %1213
%1217 = call double @llvm.fmuladd.f64(double %1216, double %1214, double %1215)
store double %1217, double* %42
%1218 = load double, double* %34
%1219 = load double, double* %38
%1220 = load double, double* %46
%1221 = fneg double %1218
%1222 = call double @llvm.fmuladd.f64(double %1221, double %1219, double %1220)
store double %1222, double* %46
%1223 = load double, double* %35
%1224 = load double, double* %38
%1225 = load double, double* %50
%1226 = fneg double %1223
%1227 = call double @llvm.fmuladd.f64(double %1226, double %1224, double %1225)
store double %1227, double* %50
%1228 = load double, double* %36
%1229 = load double, double* %38
%1230 = load double, double* %54
%1231 = fneg double %1228
%1232 = call double @llvm.fmuladd.f64(double %1231, double %1229, double %1230)
store double %1232, double* %54
%1233 = load double, double* %33
%1234 = load double, double* %39
%1235 = load double, double* %43
%1236 = fneg double %1233
%1237 = call double @llvm.fmuladd.f64(double %1236, double %1234, double %1235)
store double %1237, double* %43
%1238 = load double, double* %34
%1239 = load double, double* %39
%1240 = load double, double* %47
%1241 = fneg double %1238
%1242 = call double @llvm.fmuladd.f64(double %1241, double %1239, double %1240)
store double %1242, double* %47
%1243 = load double, double* %35
%1244 = load double, double* %39
%1245 = load double, double* %51
%1246 = fneg double %1243
%1247 = call double @llvm.fmuladd.f64(double %1246, double %1244, double %1245)
store double %1247, double* %51
%1248 = load double, double* %36
%1249 = load double, double* %39
%1250 = load double, double* %55
%1251 = fneg double %1248
%1252 = call double @llvm.fmuladd.f64(double %1251, double %1249, double %1250)
store double %1252, double* %55
%1253 = load double, double* %33
%1254 = load double, double* %40
%1255 = load double, double* %44
%1256 = fneg double %1253
%1257 = call double @llvm.fmuladd.f64(double %1256, double %1254, double %1255)
store double %1257, double* %44
%1258 = load double, double* %34
%1259 = load double, double* %40
%1260 = load double, double* %48
%1261 = fneg double %1258
%1262 = call double @llvm.fmuladd.f64(double %1261, double %1259, double %1260)
store double %1262, double* %48
%1263 = load double, double* %35
%1264 = load double, double* %40
%1265 = load double, double* %52
%1266 = fneg double %1263
%1267 = call double @llvm.fmuladd.f64(double %1266, double %1264, double %1265)
store double %1267, double* %52
%1268 = load double, double* %36
%1269 = load double, double* %40
%1270 = load double, double* %56
%1271 = fneg double %1268
%1272 = call double @llvm.fmuladd.f64(double %1271, double %1269, double %1270)
store double %1272, double* %56
%1273 = load double*, double** %23
%1274 = getelementptr inbounds double, double* %1273, i64 12
%1275 = load double, double* %1274
store double %1275, double* %33
%1276 = load double*, double** %23
%1277 = getelementptr inbounds double, double* %1276, i64 13
%1278 = load double, double* %1277
store double %1278, double* %34
%1279 = load double*, double** %23
%1280 = getelementptr inbounds double, double* %1279, i64 14
%1281 = load double, double* %1280
store double %1281, double* %35
%1282 = load double*, double** %23
%1283 = getelementptr inbounds double, double* %1282, i64 15
%1284 = load double, double* %1283
store double %1284, double* %36
%1285 = load double*, double** %24
%1286 = getelementptr inbounds double, double* %1285, i64 12
%1287 = load double, double* %1286
store double %1287, double* %37
%1288 = load double*, double** %24
%1289 = getelementptr inbounds double, double* %1288, i64 13
%1290 = load double, double* %1289
store double %1290, double* %38
%1291 = load double*, double** %24
%1292 = getelementptr inbounds double, double* %1291, i64 14
%1293 = load double, double* %1292
store double %1293, double* %39
%1294 = load double*, double** %24
%1295 = getelementptr inbounds double, double* %1294, i64 15
%1296 = load double, double* %1295
store double %1296, double* %40
%1297 = load double, double* %33
%1298 = load double, double* %37
%1299 = load double, double* %41
%1300 = fneg double %1297
%1301 = call double @llvm.fmuladd.f64(double %1300, double %1298, double %1299)
store double %1301, double* %41
%1302 = load double, double* %34
%1303 = load double, double* %37
%1304 = load double, double* %45
%1305 = fneg double %1302
%1306 = call double @llvm.fmuladd.f64(double %1305, double %1303, double %1304)
store double %1306, double* %45
%1307 = load double, double* %35
%1308 = load double, double* %37
%1309 = load double, double* %49
%1310 = fneg double %1307
%1311 = call double @llvm.fmuladd.f64(double %1310, double %1308, double %1309)
store double %1311, double* %49
%1312 = load double, double* %36
%1313 = load double, double* %37
%1314 = load double, double* %53
%1315 = fneg double %1312
%1316 = call double @llvm.fmuladd.f64(double %1315, double %1313, double %1314)
store double %1316, double* %53
%1317 = load double, double* %33
%1318 = load double, double* %38
%1319 = load double, double* %42
%1320 = fneg double %1317
%1321 = call double @llvm.fmuladd.f64(double %1320, double %1318, double %1319)
store double %1321, double* %42
%1322 = load double, double* %34
%1323 = load double, double* %38
%1324 = load double, double* %46
%1325 = fneg double %1322
%1326 = call double @llvm.fmuladd.f64(double %1325, double %1323, double %1324)
store double %1326, double* %46
%1327 = load double, double* %35
%1328 = load double, double* %38
%1329 = load double, double* %50
%1330 = fneg double %1327
%1331 = call double @llvm.fmuladd.f64(double %1330, double %1328, double %1329)
store double %1331, double* %50
%1332 = load double, double* %36
%1333 = load double, double* %38
%1334 = load double, double* %54
%1335 = fneg double %1332
%1336 = call double @llvm.fmuladd.f64(double %1335, double %1333, double %1334)
store double %1336, double* %54
%1337 = load double, double* %33
%1338 = load double, double* %39
%1339 = load double, double* %43
%1340 = fneg double %1337
%1341 = call double @llvm.fmuladd.f64(double %1340, double %1338, double %1339)
store double %1341, double* %43
%1342 = load double, double* %34
%1343 = load double, double* %39
%1344 = load double, double* %47
%1345 = fneg double %1342
%1346 = call double @llvm.fmuladd.f64(double %1345, double %1343, double %1344)
store double %1346, double* %47
%1347 = load double, double* %35
%1348 = load double, double* %39
%1349 = load double, double* %51
%1350 = fneg double %1347
%1351 = call double @llvm.fmuladd.f64(double %1350, double %1348, double %1349)
store double %1351, double* %51
%1352 = load double, double* %36
%1353 = load double, double* %39
%1354 = load double, double* %55
%1355 = fneg double %1352
%1356 = call double @llvm.fmuladd.f64(double %1355, double %1353, double %1354)
store double %1356, double* %55
%1357 = load double, double* %33
%1358 = load double, double* %40
%1359 = load double, double* %44
%1360 = fneg double %1357
%1361 = call double @llvm.fmuladd.f64(double %1360, double %1358, double %1359)
store double %1361, double* %44
%1362 = load double, double* %34
%1363 = load double, double* %40
%1364 = load double, double* %48
%1365 = fneg double %1362
%1366 = call double @llvm.fmuladd.f64(double %1365, double %1363, double %1364)
store double %1366, double* %48
%1367 = load double, double* %35
%1368 = load double, double* %40
%1369 = load double, double* %52
%1370 = fneg double %1367
%1371 = call double @llvm.fmuladd.f64(double %1370, double %1368, double %1369)
store double %1371, double* %52
%1372 = load double, double* %36
%1373 = load double, double* %40
%1374 = load double, double* %56
%1375 = fneg double %1372
%1376 = call double @llvm.fmuladd.f64(double %1375, double %1373, double %1374)
store double %1376, double* %56
%1377 = load double*, double** %23
%1378 = getelementptr inbounds double, double* %1377, i64 16
store double* %1378, double** %23
%1379 = load double*, double** %24
%1380 = getelementptr inbounds double, double* %1379, i64 16
store double* %1380, double** %24
br label %1381
1381: ; preds = %960
%1382 = load i32, i32* %32
%1383 = add nsw i32 %1382, 4
store i32 %1383, i32* %32
br label %955
1384: ; preds = %955
%1385 = load i32, i32* %25
%1386 = icmp ne i32 %1385, 0
br i1 %1386, label %1387, label %1468
1387: ; preds = %1384
%1388 = load double*, double** %26
%1389 = getelementptr inbounds double, double* %1388, i64 0
%1390 = load double, double* %1389
%1391 = load double, double* %41
%1392 = fadd double %1391, %1390
store double %1392, double* %41
%1393 = load double*, double** %26
%1394 = getelementptr inbounds double, double* %1393, i64 1
%1395 = load double, double* %1394
%1396 = load double, double* %45
%1397 = fadd double %1396, %1395
store double %1397, double* %45
%1398 = load double*, double** %26
%1399 = getelementptr inbounds double, double* %1398, i64 2
%1400 = load double, double* %1399
%1401 = load double, double* %49
%1402 = fadd double %1401, %1400
store double %1402, double* %49
%1403 = load double*, double** %26
%1404 = getelementptr inbounds double, double* %1403, i64 3
%1405 = load double, double* %1404
%1406 = load double, double* %53
%1407 = fadd double %1406, %1405
store double %1407, double* %53
%1408 = load double*, double** %26
%1409 = getelementptr inbounds double, double* %1408, i64 4
%1410 = load double, double* %1409
%1411 = load double, double* %42
%1412 = fadd double %1411, %1410
store double %1412, double* %42
%1413 = load double*, double** %26
%1414 = getelementptr inbounds double, double* %1413, i64 5
%1415 = load double, double* %1414
%1416 = load double, double* %46
%1417 = fadd double %1416, %1415
store double %1417, double* %46
%1418 = load double*, double** %26
%1419 = getelementptr inbounds double, double* %1418, i64 6
%1420 = load double, double* %1419
%1421 = load double, double* %50
%1422 = fadd double %1421, %1420
store double %1422, double* %50
%1423 = load double*, double** %26
%1424 = getelementptr inbounds double, double* %1423, i64 7
%1425 = load double, double* %1424
%1426 = load double, double* %54
%1427 = fadd double %1426, %1425
store double %1427, double* %54
%1428 = load double*, double** %26
%1429 = getelementptr inbounds double, double* %1428, i64 8
%1430 = load double, double* %1429
%1431 = load double, double* %43
%1432 = fadd double %1431, %1430
store double %1432, double* %43
%1433 = load double*, double** %26
%1434 = getelementptr inbounds double, double* %1433, i64 9
%1435 = load double, double* %1434
%1436 = load double, double* %47
%1437 = fadd double %1436, %1435
store double %1437, double* %47
%1438 = load double*, double** %26
%1439 = getelementptr inbounds double, double* %1438, i64 10
%1440 = load double, double* %1439
%1441 = load double, double* %51
%1442 = fadd double %1441, %1440
store double %1442, double* %51
%1443 = load double*, double** %26
%1444 = getelementptr inbounds double, double* %1443, i64 11
%1445 = load double, double* %1444
%1446 = load double, double* %55
%1447 = fadd double %1446, %1445
store double %1447, double* %55
%1448 = load double*, double** %26
%1449 = getelementptr inbounds double, double* %1448, i64 12
%1450 = load double, double* %1449
%1451 = load double, double* %44
%1452 = fadd double %1451, %1450
store double %1452, double* %44
%1453 = load double*, double** %26
%1454 = getelementptr inbounds double, double* %1453, i64 13
%1455 = load double, double* %1454
%1456 = load double, double* %48
%1457 = fadd double %1456, %1455
store double %1457, double* %48
%1458 = load double*, double** %26
%1459 = getelementptr inbounds double, double* %1458, i64 14
%1460 = load double, double* %1459
%1461 = load double, double* %52
%1462 = fadd double %1461, %1460
store double %1462, double* %52
%1463 = load double*, double** %26
%1464 = getelementptr inbounds double, double* %1463, i64 15
%1465 = load double, double* %1464
%1466 = load double, double* %56
%1467 = fadd double %1466, %1465
store double %1467, double* %56
br label %1468
1468: ; preds = %1387, %1384
%1469 = load i32, i32* %29
%1470 = icmp ne i32 %1469, 0
br i1 %1470, label %1471, label %1738
1471: ; preds = %1468
%1472 = load double*, double** %30
%1473 = getelementptr inbounds double, double* %1472, i64 0
%1474 = load double, double* %1473
store double %1474, double* %57
%1475 = load double, double* %57
%1476 = load double, double* %41
%1477 = fmul double %1476, %1475
store double %1477, double* %41
%1478 = load double, double* %57
%1479 = load double, double* %45
%1480 = fmul double %1479, %1478
store double %1480, double* %45
%1481 = load double, double* %57
%1482 = load double, double* %49
%1483 = fmul double %1482, %1481
store double %1483, double* %49
%1484 = load double, double* %57
%1485 = load double, double* %53
%1486 = fmul double %1485, %1484
store double %1486, double* %53
%1487 = load double, double* %41
%1488 = load double*, double** %27
%1489 = getelementptr inbounds double, double* %1488, i64 0
store double %1487, double* %1489
%1490 = load double, double* %45
%1491 = load double*, double** %27
%1492 = getelementptr inbounds double, double* %1491, i64 1
store double %1490, double* %1492
%1493 = load double, double* %49
%1494 = load double*, double** %27
%1495 = getelementptr inbounds double, double* %1494, i64 2
store double %1493, double* %1495
%1496 = load i32, i32* %16
%1497 = icmp sge i32 %1496, 4
br i1 %1497, label %1498, label %1502
1498: ; preds = %1471
%1499 = load double, double* %53
%1500 = load double*, double** %27
%1501 = getelementptr inbounds double, double* %1500, i64 3
store double %1499, double* %1501
br label %1502
1502: ; preds = %1498, %1471
%1503 = load double*, double** %28
%1504 = getelementptr inbounds double, double* %1503, i64 1
%1505 = load double, double* %1504
store double %1505, double* %58
%1506 = load double*, double** %30
%1507 = getelementptr inbounds double, double* %1506, i64 1
%1508 = load double, double* %1507
store double %1508, double* %61
%1509 = load double, double* %41
%1510 = load double, double* %58
%1511 = load double, double* %42
%1512 = fneg double %1509
%1513 = call double @llvm.fmuladd.f64(double %1512, double %1510, double %1511)
store double %1513, double* %42
%1514 = load double, double* %45
%1515 = load double, double* %58
%1516 = load double, double* %46
%1517 = fneg double %1514
%1518 = call double @llvm.fmuladd.f64(double %1517, double %1515, double %1516)
store double %1518, double* %46
%1519 = load double, double* %49
%1520 = load double, double* %58
%1521 = load double, double* %50
%1522 = fneg double %1519
%1523 = call double @llvm.fmuladd.f64(double %1522, double %1520, double %1521)
store double %1523, double* %50
%1524 = load double, double* %53
%1525 = load double, double* %58
%1526 = load double, double* %54
%1527 = fneg double %1524
%1528 = call double @llvm.fmuladd.f64(double %1527, double %1525, double %1526)
store double %1528, double* %54
%1529 = load double, double* %61
%1530 = load double, double* %42
%1531 = fmul double %1530, %1529
store double %1531, double* %42
%1532 = load double, double* %61
%1533 = load double, double* %46
%1534 = fmul double %1533, %1532
store double %1534, double* %46
%1535 = load double, double* %61
%1536 = load double, double* %50
%1537 = fmul double %1536, %1535
store double %1537, double* %50
%1538 = load double, double* %61
%1539 = load double, double* %54
%1540 = fmul double %1539, %1538
store double %1540, double* %54
%1541 = load double, double* %42
%1542 = load double*, double** %27
%1543 = getelementptr inbounds double, double* %1542, i64 4
store double %1541, double* %1543
%1544 = load double, double* %46
%1545 = load double*, double** %27
%1546 = getelementptr inbounds double, double* %1545, i64 5
store double %1544, double* %1546
%1547 = load double, double* %50
%1548 = load double*, double** %27
%1549 = getelementptr inbounds double, double* %1548, i64 6
store double %1547, double* %1549
%1550 = load i32, i32* %16
%1551 = icmp sge i32 %1550, 4
br i1 %1551, label %1552, label %1556
1552: ; preds = %1502
%1553 = load double, double* %54
%1554 = load double*, double** %27
%1555 = getelementptr inbounds double, double* %1554, i64 7
store double %1553, double* %1555
br label %1556
1556: ; preds = %1552, %1502
%1557 = load double*, double** %28
%1558 = getelementptr inbounds double, double* %1557, i64 2
%1559 = load double, double* %1558
store double %1559, double* %59
%1560 = load double*, double** %28
%1561 = getelementptr inbounds double, double* %1560, i64 6
%1562 = load double, double* %1561
store double %1562, double* %62
%1563 = load double*, double** %30
%1564 = getelementptr inbounds double, double* %1563, i64 2
%1565 = load double, double* %1564
store double %1565, double* %64
%1566 = load double, double* %41
%1567 = load double, double* %59
%1568 = load double, double* %43
%1569 = fneg double %1566
%1570 = call double @llvm.fmuladd.f64(double %1569, double %1567, double %1568)
store double %1570, double* %43
%1571 = load double, double* %45
%1572 = load double, double* %59
%1573 = load double, double* %47
%1574 = fneg double %1571
%1575 = call double @llvm.fmuladd.f64(double %1574, double %1572, double %1573)
store double %1575, double* %47
%1576 = load double, double* %49
%1577 = load double, double* %59
%1578 = load double, double* %51
%1579 = fneg double %1576
%1580 = call double @llvm.fmuladd.f64(double %1579, double %1577, double %1578)
store double %1580, double* %51
%1581 = load double, double* %53
%1582 = load double, double* %59
%1583 = load double, double* %55
%1584 = fneg double %1581
%1585 = call double @llvm.fmuladd.f64(double %1584, double %1582, double %1583)
store double %1585, double* %55
%1586 = load double, double* %42
%1587 = load double, double* %62
%1588 = load double, double* %43
%1589 = fneg double %1586
%1590 = call double @llvm.fmuladd.f64(double %1589, double %1587, double %1588)
store double %1590, double* %43
%1591 = load double, double* %46
%1592 = load double, double* %62
%1593 = load double, double* %47
%1594 = fneg double %1591
%1595 = call double @llvm.fmuladd.f64(double %1594, double %1592, double %1593)
store double %1595, double* %47
%1596 = load double, double* %50
%1597 = load double, double* %62
%1598 = load double, double* %51
%1599 = fneg double %1596
%1600 = call double @llvm.fmuladd.f64(double %1599, double %1597, double %1598)
store double %1600, double* %51
%1601 = load double, double* %54
%1602 = load double, double* %62
%1603 = load double, double* %55
%1604 = fneg double %1601
%1605 = call double @llvm.fmuladd.f64(double %1604, double %1602, double %1603)
store double %1605, double* %55
%1606 = load double, double* %64
%1607 = load double, double* %43
%1608 = fmul double %1607, %1606
store double %1608, double* %43
%1609 = load double, double* %64
%1610 = load double, double* %47
%1611 = fmul double %1610, %1609
store double %1611, double* %47
%1612 = load double, double* %64
%1613 = load double, double* %51
%1614 = fmul double %1613, %1612
store double %1614, double* %51
%1615 = load double, double* %64
%1616 = load double, double* %55
%1617 = fmul double %1616, %1615
store double %1617, double* %55
%1618 = load double, double* %43
%1619 = load double*, double** %27
%1620 = getelementptr inbounds double, double* %1619, i64 8
store double %1618, double* %1620
%1621 = load double, double* %47
%1622 = load double*, double** %27
%1623 = getelementptr inbounds double, double* %1622, i64 9
store double %1621, double* %1623
%1624 = load double, double* %51
%1625 = load double*, double** %27
%1626 = getelementptr inbounds double, double* %1625, i64 10
store double %1624, double* %1626
%1627 = load i32, i32* %16
%1628 = icmp sge i32 %1627, 4
br i1 %1628, label %1629, label %1633
1629: ; preds = %1556
%1630 = load double, double* %55
%1631 = load double*, double** %27
%1632 = getelementptr inbounds double, double* %1631, i64 11
store double %1630, double* %1632
br label %1633
1633: ; preds = %1629, %1556
%1634 = load i32, i32* %17
%1635 = icmp eq i32 %1634, 3
br i1 %1635, label %1636, label %1637
1636: ; preds = %1633
br label %2009
1637: ; preds = %1633
%1638 = load double*, double** %28
%1639 = getelementptr inbounds double, double* %1638, i64 3
%1640 = load double, double* %1639
store double %1640, double* %60
%1641 = load double*, double** %28
%1642 = getelementptr inbounds double, double* %1641, i64 7
%1643 = load double, double* %1642
store double %1643, double* %63
%1644 = load double*, double** %28
%1645 = getelementptr inbounds double, double* %1644, i64 11
%1646 = load double, double* %1645
store double %1646, double* %65
%1647 = load double*, double** %30
%1648 = getelementptr inbounds double, double* %1647, i64 3
%1649 = load double, double* %1648
store double %1649, double* %66
%1650 = load double, double* %41
%1651 = load double, double* %60
%1652 = load double, double* %44
%1653 = fneg double %1650
%1654 = call double @llvm.fmuladd.f64(double %1653, double %1651, double %1652)
store double %1654, double* %44
%1655 = load double, double* %45
%1656 = load double, double* %60
%1657 = load double, double* %48
%1658 = fneg double %1655
%1659 = call double @llvm.fmuladd.f64(double %1658, double %1656, double %1657)
store double %1659, double* %48
%1660 = load double, double* %49
%1661 = load double, double* %60
%1662 = load double, double* %52
%1663 = fneg double %1660
%1664 = call double @llvm.fmuladd.f64(double %1663, double %1661, double %1662)
store double %1664, double* %52
%1665 = load double, double* %53
%1666 = load double, double* %60
%1667 = load double, double* %56
%1668 = fneg double %1665
%1669 = call double @llvm.fmuladd.f64(double %1668, double %1666, double %1667)
store double %1669, double* %56
%1670 = load double, double* %42
%1671 = load double, double* %63
%1672 = load double, double* %44
%1673 = fneg double %1670
%1674 = call double @llvm.fmuladd.f64(double %1673, double %1671, double %1672)
store double %1674, double* %44
%1675 = load double, double* %46
%1676 = load double, double* %63
%1677 = load double, double* %48
%1678 = fneg double %1675
%1679 = call double @llvm.fmuladd.f64(double %1678, double %1676, double %1677)
store double %1679, double* %48
%1680 = load double, double* %50
%1681 = load double, double* %63
%1682 = load double, double* %52
%1683 = fneg double %1680
%1684 = call double @llvm.fmuladd.f64(double %1683, double %1681, double %1682)
store double %1684, double* %52
%1685 = load double, double* %54
%1686 = load double, double* %63
%1687 = load double, double* %56
%1688 = fneg double %1685
%1689 = call double @llvm.fmuladd.f64(double %1688, double %1686, double %1687)
store double %1689, double* %56
%1690 = load double, double* %43
%1691 = load double, double* %65
%1692 = load double, double* %44
%1693 = fneg double %1690
%1694 = call double @llvm.fmuladd.f64(double %1693, double %1691, double %1692)
store double %1694, double* %44
%1695 = load double, double* %47
%1696 = load double, double* %65
%1697 = load double, double* %48
%1698 = fneg double %1695
%1699 = call double @llvm.fmuladd.f64(double %1698, double %1696, double %1697)
store double %1699, double* %48
%1700 = load double, double* %51
%1701 = load double, double* %65
%1702 = load double, double* %52
%1703 = fneg double %1700
%1704 = call double @llvm.fmuladd.f64(double %1703, double %1701, double %1702)
store double %1704, double* %52
%1705 = load double, double* %55
%1706 = load double, double* %65
%1707 = load double, double* %56
%1708 = fneg double %1705
%1709 = call double @llvm.fmuladd.f64(double %1708, double %1706, double %1707)
store double %1709, double* %56
%1710 = load double, double* %66
%1711 = load double, double* %44
%1712 = fmul double %1711, %1710
store double %1712, double* %44
%1713 = load double, double* %66
%1714 = load double, double* %48
%1715 = fmul double %1714, %1713
store double %1715, double* %48
%1716 = load double, double* %66
%1717 = load double, double* %52
%1718 = fmul double %1717, %1716
store double %1718, double* %52
%1719 = load double, double* %66
%1720 = load double, double* %56
%1721 = fmul double %1720, %1719
store double %1721, double* %56
%1722 = load double, double* %44
%1723 = load double*, double** %27
%1724 = getelementptr inbounds double, double* %1723, i64 12
store double %1722, double* %1724
%1725 = load double, double* %48
%1726 = load double*, double** %27
%1727 = getelementptr inbounds double, double* %1726, i64 13
store double %1725, double* %1727
%1728 = load double, double* %52
%1729 = load double*, double** %27
%1730 = getelementptr inbounds double, double* %1729, i64 14
store double %1728, double* %1730
%1731 = load i32, i32* %16
%1732 = icmp sge i32 %1731, 4
br i1 %1732, label %1733, label %1737
1733: ; preds = %1637
%1734 = load double, double* %56
%1735 = load double*, double** %27
%1736 = getelementptr inbounds double, double* %1735, i64 15
store double %1734, double* %1736
br label %1737
1737: ; preds = %1733, %1637
br label %2009
1738: ; preds = %1468
%1739 = load double*, double** %28
%1740 = getelementptr inbounds double, double* %1739, i64 0
%1741 = load double, double* %1740
%1742 = fdiv double 1.000000e+00, %1741
store double %1742, double* %57
%1743 = load double, double* %57
%1744 = load double, double* %41
%1745 = fmul double %1744, %1743
store double %1745, double* %41
%1746 = load double, double* %57
%1747 = load double, double* %45
%1748 = fmul double %1747, %1746
store double %1748, double* %45
%1749 = load double, double* %57
%1750 = load double, double* %49
%1751 = fmul double %1750, %1749
store double %1751, double* %49
%1752 = load double, double* %57
%1753 = load double, double* %53
%1754 = fmul double %1753, %1752
store double %1754, double* %53
%1755 = load double, double* %41
%1756 = load double*, double** %27
%1757 = getelementptr inbounds double, double* %1756, i64 0
store double %1755, double* %1757
%1758 = load double, double* %45
%1759 = load double*, double** %27
%1760 = getelementptr inbounds double, double* %1759, i64 1
store double %1758, double* %1760
%1761 = load double, double* %49
%1762 = load double*, double** %27
%1763 = getelementptr inbounds double, double* %1762, i64 2
store double %1761, double* %1763
%1764 = load i32, i32* %16
%1765 = icmp sge i32 %1764, 4
br i1 %1765, label %1766, label %1770
1766: ; preds = %1738
%1767 = load double, double* %53
%1768 = load double*, double** %27
%1769 = getelementptr inbounds double, double* %1768, i64 3
store double %1767, double* %1769
br label %1770
1770: ; preds = %1766, %1738
%1771 = load double*, double** %28
%1772 = getelementptr inbounds double, double* %1771, i64 1
%1773 = load double, double* %1772
store double %1773, double* %58
%1774 = load double*, double** %28
%1775 = getelementptr inbounds double, double* %1774, i64 5
%1776 = load double, double* %1775
%1777 = fdiv double 1.000000e+00, %1776
store double %1777, double* %61
%1778 = load double, double* %41
%1779 = load double, double* %58
%1780 = load double, double* %42
%1781 = fneg double %1778
%1782 = call double @llvm.fmuladd.f64(double %1781, double %1779, double %1780)
store double %1782, double* %42
%1783 = load double, double* %45
%1784 = load double, double* %58
%1785 = load double, double* %46
%1786 = fneg double %1783
%1787 = call double @llvm.fmuladd.f64(double %1786, double %1784, double %1785)
store double %1787, double* %46
%1788 = load double, double* %49
%1789 = load double, double* %58
%1790 = load double, double* %50
%1791 = fneg double %1788
%1792 = call double @llvm.fmuladd.f64(double %1791, double %1789, double %1790)
store double %1792, double* %50
%1793 = load double, double* %53
%1794 = load double, double* %58
%1795 = load double, double* %54
%1796 = fneg double %1793
%1797 = call double @llvm.fmuladd.f64(double %1796, double %1794, double %1795)
store double %1797, double* %54
%1798 = load double, double* %61
%1799 = load double, double* %42
%1800 = fmul double %1799, %1798
store double %1800, double* %42
%1801 = load double, double* %61
%1802 = load double, double* %46
%1803 = fmul double %1802, %1801
store double %1803, double* %46
%1804 = load double, double* %61
%1805 = load double, double* %50
%1806 = fmul double %1805, %1804
store double %1806, double* %50
%1807 = load double, double* %61
%1808 = load double, double* %54
%1809 = fmul double %1808, %1807
store double %1809, double* %54
%1810 = load double, double* %42
%1811 = load double*, double** %27
%1812 = getelementptr inbounds double, double* %1811, i64 4
store double %1810, double* %1812
%1813 = load double, double* %46
%1814 = load double*, double** %27
%1815 = getelementptr inbounds double, double* %1814, i64 5
store double %1813, double* %1815
%1816 = load double, double* %50
%1817 = load double*, double** %27
%1818 = getelementptr inbounds double, double* %1817, i64 6
store double %1816, double* %1818
%1819 = load i32, i32* %16
%1820 = icmp sge i32 %1819, 4
br i1 %1820, label %1821, label %1825
1821: ; preds = %1770
%1822 = load double, double* %54
%1823 = load double*, double** %27
%1824 = getelementptr inbounds double, double* %1823, i64 7
store double %1822, double* %1824
br label %1825
1825: ; preds = %1821, %1770
%1826 = load double*, double** %28
%1827 = getelementptr inbounds double, double* %1826, i64 2
%1828 = load double, double* %1827
store double %1828, double* %59
%1829 = load double*, double** %28
%1830 = getelementptr inbounds double, double* %1829, i64 6
%1831 = load double, double* %1830
store double %1831, double* %62
%1832 = load double*, double** %28
%1833 = getelementptr inbounds double, double* %1832, i64 10
%1834 = load double, double* %1833
%1835 = fdiv double 1.000000e+00, %1834
store double %1835, double* %64
%1836 = load double, double* %41
%1837 = load double, double* %59
%1838 = load double, double* %43
%1839 = fneg double %1836
%1840 = call double @llvm.fmuladd.f64(double %1839, double %1837, double %1838)
store double %1840, double* %43
%1841 = load double, double* %45
%1842 = load double, double* %59
%1843 = load double, double* %47
%1844 = fneg double %1841
%1845 = call double @llvm.fmuladd.f64(double %1844, double %1842, double %1843)
store double %1845, double* %47
%1846 = load double, double* %49
%1847 = load double, double* %59
%1848 = load double, double* %51
%1849 = fneg double %1846
%1850 = call double @llvm.fmuladd.f64(double %1849, double %1847, double %1848)
store double %1850, double* %51
%1851 = load double, double* %53
%1852 = load double, double* %59
%1853 = load double, double* %55
%1854 = fneg double %1851
%1855 = call double @llvm.fmuladd.f64(double %1854, double %1852, double %1853)
store double %1855, double* %55
%1856 = load double, double* %42
%1857 = load double, double* %62
%1858 = load double, double* %43
%1859 = fneg double %1856
%1860 = call double @llvm.fmuladd.f64(double %1859, double %1857, double %1858)
store double %1860, double* %43
%1861 = load double, double* %46
%1862 = load double, double* %62
%1863 = load double, double* %47
%1864 = fneg double %1861
%1865 = call double @llvm.fmuladd.f64(double %1864, double %1862, double %1863)
store double %1865, double* %47
%1866 = load double, double* %50
%1867 = load double, double* %62
%1868 = load double, double* %51
%1869 = fneg double %1866
%1870 = call double @llvm.fmuladd.f64(double %1869, double %1867, double %1868)
store double %1870, double* %51
%1871 = load double, double* %54
%1872 = load double, double* %62
%1873 = load double, double* %55
%1874 = fneg double %1871
%1875 = call double @llvm.fmuladd.f64(double %1874, double %1872, double %1873)
store double %1875, double* %55
%1876 = load double, double* %64
%1877 = load double, double* %43
%1878 = fmul double %1877, %1876
store double %1878, double* %43
%1879 = load double, double* %64
%1880 = load double, double* %47
%1881 = fmul double %1880, %1879
store double %1881, double* %47
%1882 = load double, double* %64
%1883 = load double, double* %51
%1884 = fmul double %1883, %1882
store double %1884, double* %51
%1885 = load double, double* %64
%1886 = load double, double* %55
%1887 = fmul double %1886, %1885
store double %1887, double* %55
%1888 = load double, double* %43
%1889 = load double*, double** %27
%1890 = getelementptr inbounds double, double* %1889, i64 8
store double %1888, double* %1890
%1891 = load double, double* %47
%1892 = load double*, double** %27
%1893 = getelementptr inbounds double, double* %1892, i64 9
store double %1891, double* %1893
%1894 = load double, double* %51
%1895 = load double*, double** %27
%1896 = getelementptr inbounds double, double* %1895, i64 10
store double %1894, double* %1896
%1897 = load i32, i32* %16
%1898 = icmp sge i32 %1897, 4
br i1 %1898, label %1899, label %1903
1899: ; preds = %1825
%1900 = load double, double* %55
%1901 = load double*, double** %27
%1902 = getelementptr inbounds double, double* %1901, i64 11
store double %1900, double* %1902
br label %1903
1903: ; preds = %1899, %1825
%1904 = load i32, i32* %17
%1905 = icmp eq i32 %1904, 3
br i1 %1905, label %1906, label %1907
1906: ; preds = %1903
br label %2009
1907: ; preds = %1903
%1908 = load double*, double** %28
%1909 = getelementptr inbounds double, double* %1908, i64 3
%1910 = load double, double* %1909
store double %1910, double* %60
%1911 = load double*, double** %28
%1912 = getelementptr inbounds double, double* %1911, i64 7
%1913 = load double, double* %1912
store double %1913, double* %63
%1914 = load double*, double** %28
%1915 = getelementptr inbounds double, double* %1914, i64 11
%1916 = load double, double* %1915
store double %1916, double* %65
%1917 = load double*, double** %28
%1918 = getelementptr inbounds double, double* %1917, i64 15
%1919 = load double, double* %1918
%1920 = fdiv double 1.000000e+00, %1919
store double %1920, double* %66
%1921 = load double, double* %41
%1922 = load double, double* %60
%1923 = load double, double* %44
%1924 = fneg double %1921
%1925 = call double @llvm.fmuladd.f64(double %1924, double %1922, double %1923)
store double %1925, double* %44
%1926 = load double, double* %45
%1927 = load double, double* %60
%1928 = load double, double* %48
%1929 = fneg double %1926
%1930 = call double @llvm.fmuladd.f64(double %1929, double %1927, double %1928)
store double %1930, double* %48
%1931 = load double, double* %49
%1932 = load double, double* %60
%1933 = load double, double* %52
%1934 = fneg double %1931
%1935 = call double @llvm.fmuladd.f64(double %1934, double %1932, double %1933)
store double %1935, double* %52
%1936 = load double, double* %53
%1937 = load double, double* %60
%1938 = load double, double* %56
%1939 = fneg double %1936
%1940 = call double @llvm.fmuladd.f64(double %1939, double %1937, double %1938)
store double %1940, double* %56
%1941 = load double, double* %42
%1942 = load double, double* %63
%1943 = load double, double* %44
%1944 = fneg double %1941
%1945 = call double @llvm.fmuladd.f64(double %1944, double %1942, double %1943)
store double %1945, double* %44
%1946 = load double, double* %46
%1947 = load double, double* %63
%1948 = load double, double* %48
%1949 = fneg double %1946
%1950 = call double @llvm.fmuladd.f64(double %1949, double %1947, double %1948)
store double %1950, double* %48
%1951 = load double, double* %50
%1952 = load double, double* %63
%1953 = load double, double* %52
%1954 = fneg double %1951
%1955 = call double @llvm.fmuladd.f64(double %1954, double %1952, double %1953)
store double %1955, double* %52
%1956 = load double, double* %54
%1957 = load double, double* %63
%1958 = load double, double* %56
%1959 = fneg double %1956
%1960 = call double @llvm.fmuladd.f64(double %1959, double %1957, double %1958)
store double %1960, double* %56
%1961 = load double, double* %43
%1962 = load double, double* %65
%1963 = load double, double* %44
%1964 = fneg double %1961
%1965 = call double @llvm.fmuladd.f64(double %1964, double %1962, double %1963)
store double %1965, double* %44
%1966 = load double, double* %47
%1967 = load double, double* %65
%1968 = load double, double* %48
%1969 = fneg double %1966
%1970 = call double @llvm.fmuladd.f64(double %1969, double %1967, double %1968)
store double %1970, double* %48
%1971 = load double, double* %51
%1972 = load double, double* %65
%1973 = load double, double* %52
%1974 = fneg double %1971
%1975 = call double @llvm.fmuladd.f64(double %1974, double %1972, double %1973)
store double %1975, double* %52
%1976 = load double, double* %55
%1977 = load double, double* %65
%1978 = load double, double* %56
%1979 = fneg double %1976
%1980 = call double @llvm.fmuladd.f64(double %1979, double %1977, double %1978)
store double %1980, double* %56
%1981 = load double, double* %66
%1982 = load double, double* %44
%1983 = fmul double %1982, %1981
store double %1983, double* %44
%1984 = load double, double* %66
%1985 = load double, double* %48
%1986 = fmul double %1985, %1984
store double %1986, double* %48
%1987 = load double, double* %66
%1988 = load double, double* %52
%1989 = fmul double %1988, %1987
store double %1989, double* %52
%1990 = load double, double* %66
%1991 = load double, double* %56
%1992 = fmul double %1991, %1990
store double %1992, double* %56
%1993 = load double, double* %44
%1994 = load double*, double** %27
%1995 = getelementptr inbounds double, double* %1994, i64 12
store double %1993, double* %1995
%1996 = load double, double* %48
%1997 = load double*, double** %27
%1998 = getelementptr inbounds double, double* %1997, i64 13
store double %1996, double* %1998
%1999 = load double, double* %52
%2000 = load double*, double** %27
%2001 = getelementptr inbounds double, double* %2000, i64 14
store double %1999, double* %2001
%2002 = load i32, i32* %16
%2003 = icmp sge i32 %2002, 4
br i1 %2003, label %2004, label %2008
2004: ; preds = %1907
%2005 = load double, double* %56
%2006 = load double*, double** %27
%2007 = getelementptr inbounds double, double* %2006, i64 15
store double %2005, double* %2007
br label %2008
2008: ; preds = %2004, %1907
br label %2009
2009: ; preds = %1636, %1906, %2008, %1737
ret void
}

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