static const int RBM = 4, RBN = 5, RBK = 6;
static const int CBM = 24, CBN = 25, CBK = 24;
static inline void kloop(size_t p, t* a0, size_t lda, t* b0, size_t ldb, t* c, size_t ldc)
{
  t* c_0 = &c[ldc*0];
  t* c_1 = &c[ldc*1];
  t* c_2 = &c[ldc*2];
  t* c_3 = &c[ldc*3];
  t c_0_0 = c_0[0];
  t c_0_1 = c_0[1];
  t c_0_2 = c_0[2];
  t c_0_3 = c_0[3];
  t c_0_4 = c_0[4];
  t c_1_0 = c_1[0];
  t c_1_1 = c_1[1];
  t c_1_2 = c_1[2];
  t c_1_3 = c_1[3];
  t c_1_4 = c_1[4];
  t c_2_0 = c_2[0];
  t c_2_1 = c_2[1];
  t c_2_2 = c_2[2];
  t c_2_3 = c_2[3];
  t c_2_4 = c_2[4];
  t c_3_0 = c_3[0];
  t c_3_1 = c_3[1];
  t c_3_2 = c_3[2];
  t c_3_3 = c_3[3];
  t c_3_4 = c_3[4];
  for (t *a = a0, *b = b0; a < a0 + p/RBK*RBK; a += RBK, b += RBK*ldb)
  {
    t* a_0 = &a[lda*0];
    t* a_1 = &a[lda*1];
    t* a_2 = &a[lda*2];
    t* a_3 = &a[lda*3];
    t* b_0 = &b[ldb*0];
    t* b_1 = &b[ldb*1];
    t* b_2 = &b[ldb*2];
    t* b_3 = &b[ldb*3];
    t* b_4 = &b[ldb*4];
    t* b_5 = &b[ldb*5];
    c_0_0 = fma(a_0[0], b_0[0], c_0_0);
    c_0_1 = fma(a_0[0], b_0[1], c_0_1);
    c_0_2 = fma(a_0[0], b_0[2], c_0_2);
    c_0_3 = fma(a_0[0], b_0[3], c_0_3);
    c_0_4 = fma(a_0[0], b_0[4], c_0_4);
    c_1_0 = fma(a_1[0], b_0[0], c_1_0);
    c_1_1 = fma(a_1[0], b_0[1], c_1_1);
    c_1_2 = fma(a_1[0], b_0[2], c_1_2);
    c_1_3 = fma(a_1[0], b_0[3], c_1_3);
    c_1_4 = fma(a_1[0], b_0[4], c_1_4);
    c_2_0 = fma(a_2[0], b_0[0], c_2_0);
    c_2_1 = fma(a_2[0], b_0[1], c_2_1);
    c_2_2 = fma(a_2[0], b_0[2], c_2_2);
    c_2_3 = fma(a_2[0], b_0[3], c_2_3);
    c_2_4 = fma(a_2[0], b_0[4], c_2_4);
    c_3_0 = fma(a_3[0], b_0[0], c_3_0);
    c_3_1 = fma(a_3[0], b_0[1], c_3_1);
    c_3_2 = fma(a_3[0], b_0[2], c_3_2);
    c_3_3 = fma(a_3[0], b_0[3], c_3_3);
    c_3_4 = fma(a_3[0], b_0[4], c_3_4);
    c_0_0 = fma(a_0[1], b_1[0], c_0_0);
    c_0_1 = fma(a_0[1], b_1[1], c_0_1);
    c_0_2 = fma(a_0[1], b_1[2], c_0_2);
    c_0_3 = fma(a_0[1], b_1[3], c_0_3);
    c_0_4 = fma(a_0[1], b_1[4], c_0_4);
    c_1_0 = fma(a_1[1], b_1[0], c_1_0);
    c_1_1 = fma(a_1[1], b_1[1], c_1_1);
    c_1_2 = fma(a_1[1], b_1[2], c_1_2);
    c_1_3 = fma(a_1[1], b_1[3], c_1_3);
    c_1_4 = fma(a_1[1], b_1[4], c_1_4);
    c_2_0 = fma(a_2[1], b_1[0], c_2_0);
    c_2_1 = fma(a_2[1], b_1[1], c_2_1);
    c_2_2 = fma(a_2[1], b_1[2], c_2_2);
    c_2_3 = fma(a_2[1], b_1[3], c_2_3);
    c_2_4 = fma(a_2[1], b_1[4], c_2_4);
    c_3_0 = fma(a_3[1], b_1[0], c_3_0);
    c_3_1 = fma(a_3[1], b_1[1], c_3_1);
    c_3_2 = fma(a_3[1], b_1[2], c_3_2);
    c_3_3 = fma(a_3[1], b_1[3], c_3_3);
    c_3_4 = fma(a_3[1], b_1[4], c_3_4);
    c_0_0 = fma(a_0[2], b_2[0], c_0_0);
    c_0_1 = fma(a_0[2], b_2[1], c_0_1);
    c_0_2 = fma(a_0[2], b_2[2], c_0_2);
    c_0_3 = fma(a_0[2], b_2[3], c_0_3);
    c_0_4 = fma(a_0[2], b_2[4], c_0_4);
    c_1_0 = fma(a_1[2], b_2[0], c_1_0);
    c_1_1 = fma(a_1[2], b_2[1], c_1_1);
    c_1_2 = fma(a_1[2], b_2[2], c_1_2);
    c_1_3 = fma(a_1[2], b_2[3], c_1_3);
    c_1_4 = fma(a_1[2], b_2[4], c_1_4);
    c_2_0 = fma(a_2[2], b_2[0], c_2_0);
    c_2_1 = fma(a_2[2], b_2[1], c_2_1);
    c_2_2 = fma(a_2[2], b_2[2], c_2_2);
    c_2_3 = fma(a_2[2], b_2[3], c_2_3);
    c_2_4 = fma(a_2[2], b_2[4], c_2_4);
    c_3_0 = fma(a_3[2], b_2[0], c_3_0);
    c_3_1 = fma(a_3[2], b_2[1], c_3_1);
    c_3_2 = fma(a_3[2], b_2[2], c_3_2);
    c_3_3 = fma(a_3[2], b_2[3], c_3_3);
    c_3_4 = fma(a_3[2], b_2[4], c_3_4);
    c_0_0 = fma(a_0[3], b_3[0], c_0_0);
    c_0_1 = fma(a_0[3], b_3[1], c_0_1);
    c_0_2 = fma(a_0[3], b_3[2], c_0_2);
    c_0_3 = fma(a_0[3], b_3[3], c_0_3);
    c_0_4 = fma(a_0[3], b_3[4], c_0_4);
    c_1_0 = fma(a_1[3], b_3[0], c_1_0);
    c_1_1 = fma(a_1[3], b_3[1], c_1_1);
    c_1_2 = fma(a_1[3], b_3[2], c_1_2);
    c_1_3 = fma(a_1[3], b_3[3], c_1_3);
    c_1_4 = fma(a_1[3], b_3[4], c_1_4);
    c_2_0 = fma(a_2[3], b_3[0], c_2_0);
    c_2_1 = fma(a_2[3], b_3[1], c_2_1);
    c_2_2 = fma(a_2[3], b_3[2], c_2_2);
    c_2_3 = fma(a_2[3], b_3[3], c_2_3);
    c_2_4 = fma(a_2[3], b_3[4], c_2_4);
    c_3_0 = fma(a_3[3], b_3[0], c_3_0);
    c_3_1 = fma(a_3[3], b_3[1], c_3_1);
    c_3_2 = fma(a_3[3], b_3[2], c_3_2);
    c_3_3 = fma(a_3[3], b_3[3], c_3_3);
    c_3_4 = fma(a_3[3], b_3[4], c_3_4);
    c_0_0 = fma(a_0[4], b_4[0], c_0_0);
    c_0_1 = fma(a_0[4], b_4[1], c_0_1);
    c_0_2 = fma(a_0[4], b_4[2], c_0_2);
    c_0_3 = fma(a_0[4], b_4[3], c_0_3);
    c_0_4 = fma(a_0[4], b_4[4], c_0_4);
    c_1_0 = fma(a_1[4], b_4[0], c_1_0);
    c_1_1 = fma(a_1[4], b_4[1], c_1_1);
    c_1_2 = fma(a_1[4], b_4[2], c_1_2);
    c_1_3 = fma(a_1[4], b_4[3], c_1_3);
    c_1_4 = fma(a_1[4], b_4[4], c_1_4);
    c_2_0 = fma(a_2[4], b_4[0], c_2_0);
    c_2_1 = fma(a_2[4], b_4[1], c_2_1);
    c_2_2 = fma(a_2[4], b_4[2], c_2_2);
    c_2_3 = fma(a_2[4], b_4[3], c_2_3);
    c_2_4 = fma(a_2[4], b_4[4], c_2_4);
    c_3_0 = fma(a_3[4], b_4[0], c_3_0);
    c_3_1 = fma(a_3[4], b_4[1], c_3_1);
    c_3_2 = fma(a_3[4], b_4[2], c_3_2);
    c_3_3 = fma(a_3[4], b_4[3], c_3_3);
    c_3_4 = fma(a_3[4], b_4[4], c_3_4);
    c_0_0 = fma(a_0[5], b_5[0], c_0_0);
    c_0_1 = fma(a_0[5], b_5[1], c_0_1);
    c_0_2 = fma(a_0[5], b_5[2], c_0_2);
    c_0_3 = fma(a_0[5], b_5[3], c_0_3);
    c_0_4 = fma(a_0[5], b_5[4], c_0_4);
    c_1_0 = fma(a_1[5], b_5[0], c_1_0);
    c_1_1 = fma(a_1[5], b_5[1], c_1_1);
    c_1_2 = fma(a_1[5], b_5[2], c_1_2);
    c_1_3 = fma(a_1[5], b_5[3], c_1_3);
    c_1_4 = fma(a_1[5], b_5[4], c_1_4);
    c_2_0 = fma(a_2[5], b_5[0], c_2_0);
    c_2_1 = fma(a_2[5], b_5[1], c_2_1);
    c_2_2 = fma(a_2[5], b_5[2], c_2_2);
    c_2_3 = fma(a_2[5], b_5[3], c_2_3);
    c_2_4 = fma(a_2[5], b_5[4], c_2_4);
    c_3_0 = fma(a_3[5], b_5[0], c_3_0);
    c_3_1 = fma(a_3[5], b_5[1], c_3_1);
    c_3_2 = fma(a_3[5], b_5[2], c_3_2);
    c_3_3 = fma(a_3[5], b_5[3], c_3_3);
    c_3_4 = fma(a_3[5], b_5[4], c_3_4);
  }
  for (t *a = a0 + p/RBK*RBK, *b = b0 + p/RBK*RBK*ldb; a < a0 + p; a++, b += ldb)
  {
    t* a_0 = &a[lda*0];
    t* a_1 = &a[lda*1];
    t* a_2 = &a[lda*2];
    t* a_3 = &a[lda*3];
    t* b_0 = &b[ldb*0];
    c_0_0 = fma(a_0[0], b_0[0], c_0_0);
    c_0_1 = fma(a_0[0], b_0[1], c_0_1);
    c_0_2 = fma(a_0[0], b_0[2], c_0_2);
    c_0_3 = fma(a_0[0], b_0[3], c_0_3);
    c_0_4 = fma(a_0[0], b_0[4], c_0_4);
    c_1_0 = fma(a_1[0], b_0[0], c_1_0);
    c_1_1 = fma(a_1[0], b_0[1], c_1_1);
    c_1_2 = fma(a_1[0], b_0[2], c_1_2);
    c_1_3 = fma(a_1[0], b_0[3], c_1_3);
    c_1_4 = fma(a_1[0], b_0[4], c_1_4);
    c_2_0 = fma(a_2[0], b_0[0], c_2_0);
    c_2_1 = fma(a_2[0], b_0[1], c_2_1);
    c_2_2 = fma(a_2[0], b_0[2], c_2_2);
    c_2_3 = fma(a_2[0], b_0[3], c_2_3);
    c_2_4 = fma(a_2[0], b_0[4], c_2_4);
    c_3_0 = fma(a_3[0], b_0[0], c_3_0);
    c_3_1 = fma(a_3[0], b_0[1], c_3_1);
    c_3_2 = fma(a_3[0], b_0[2], c_3_2);
    c_3_3 = fma(a_3[0], b_0[3], c_3_3);
    c_3_4 = fma(a_3[0], b_0[4], c_3_4);
  }
  c_0[0] = c_0_0;
  c_0[1] = c_0_1;
  c_0[2] = c_0_2;
  c_0[3] = c_0_3;
  c_0[4] = c_0_4;
  c_1[0] = c_1_0;
  c_1[1] = c_1_1;
  c_1[2] = c_1_2;
  c_1[3] = c_1_3;
  c_1[4] = c_1_4;
  c_2[0] = c_2_0;
  c_2[1] = c_2_1;
  c_2[2] = c_2_2;
  c_2[3] = c_2_3;
  c_2[4] = c_2_4;
  c_3[0] = c_3_0;
  c_3[1] = c_3_1;
  c_3[2] = c_3_2;
  c_3[3] = c_3_3;
  c_3[4] = c_3_4;
}
