           saxpy(1.0f, (trans == CBlasNoTrans) ? b[ll] : &b[ll][tj], x);
         else if (ti > l)
           saxpy((trans == CBlasNoTrans) ? A[0] : a[ti][ll], (trans == CBlasNoTrans) ? b[ll] : &b[ll][tj], x);
-        A += lda;
+        if (trans == CBlasNoTrans)
+          A += lda;
         l++;
       }
     }

      for (int ll = 0; ll < k; ll++) {
        if (ti >= l++)
          saxpy((trans == CBlasNoTrans) ? A[0] : a[ti][ll], (trans == CBlasNoTrans) ? b[ll] : &b[ll][tj], x);
        A += lda;
      }
    }
    else {

        for (int ll = 0; ll < kb; ll++) {
          if (ti >= l++)
            saxpy((trans == CBlasNoTrans) ? A[0] : a[ti][ll], (trans == CBlasNoTrans) ? b[ll] : &b[ll][tj], x);
          if (trans == CBlasNoTrans)
            A += lda;
        }
      }
      else {
