 
 // y(1:n) += alpha * x(1:n)
 __device__ void saxpy(int n, float alpha, const float * x, float * y) {
+  if (n <= 0) return;
   y[ 0] += alpha * x[ 0]; if ( 1 >= n) return; y[ 1] += alpha * x[ 1]; if ( 2 >= n) return;
   y[ 2] += alpha * x[ 2]; if ( 3 >= n) return; y[ 3] += alpha * x[ 3]; if ( 4 >= n) return;
   y[ 4] += alpha * x[ 4]; if ( 5 >= n) return; y[ 5] += alpha * x[ 5]; if ( 6 >= n) return;


    __syncthreads();

    if (k < kb) break;

#pragma unroll
    for (int l = 0; l < kb; l++) {
      saxpy(B[0], a[l], x);

    k -= kb;
  }

  if (k > 0) { INNER_RIGHT_LOOP_DEC( 0); B += ldb;
  if (k > 1) { INNER_RIGHT_LOOP_DEC( 1); B += ldb;
  if (k > 2) { INNER_RIGHT_LOOP_DEC( 2); B += ldb;
  if (k > 3) { INNER_RIGHT_LOOP_DEC( 3); B += ldb;
  if (k > 4) { INNER_RIGHT_LOOP_DEC( 4); B += ldb;
  if (k > 5) { INNER_RIGHT_LOOP_DEC( 5); B += ldb;
  if (k > 6) { INNER_RIGHT_LOOP_DEC( 6); B += ldb;
  if (k > 7) { INNER_RIGHT_LOOP_DEC( 7); B += ldb;
  if (k > 8) { INNER_RIGHT_LOOP_DEC( 8); B += ldb;
  if (k > 9) { INNER_RIGHT_LOOP_DEC( 9); B += ldb;
  if (k >10) { INNER_RIGHT_LOOP_DEC(10); B += ldb;
  if (k >11) { INNER_RIGHT_LOOP_DEC(11); B += ldb;
  if (k >12) { INNER_RIGHT_LOOP_DEC(12); B += ldb;
  if (k >13) { INNER_RIGHT_LOOP_DEC(13); B += ldb;
  if (k >14) { INNER_RIGHT_LOOP_DEC(14); B += ldb;
  if (k >15) { INNER_RIGHT_LOOP_DEC(15); }}}}}}}}}}}}}}}}

  if (m - bi - ti > 0)
    sscal(n - bj, alpha, x, X, ldx);
