Skip to content

Commit d747260

Browse files
authored
Merge pull request #3244 from martin-frbg/issue3237
Add fast path for small xSYR with INCX==1
2 parents 2d8d0af + 03297ff commit d747260

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

interface/syr.c

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,28 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint n, FLOAT alpha,
168168
IDEBUG_START;
169169

170170
FUNCTION_PROFILE_START();
171-
171+
#if 1
172+
if (incx == 1 && n < 100) {
173+
BLASLONG i;
174+
175+
if (uplo == 0) {
176+
for (i = 0; i < n; i++){
177+
if (x[i] != ZERO) {
178+
AXPYU_K(i + 1, 0, 0, alpha * x[i], x, 1, a, 1, NULL, 0);
179+
}
180+
a += lda;
181+
}
182+
} else {
183+
for (i = 0; i < n; i++){
184+
if (x[i] != ZERO) {
185+
AXPYU_K(n - i, 0, 0, alpha * x[i], x + i, 1, a, 1, NULL, 0);
186+
}
187+
a += 1 + lda;
188+
}
189+
}
190+
return;
191+
}
192+
#endif
172193
if (incx < 0 ) x -= (n - 1) * incx;
173194

174195
buffer = (FLOAT *)blas_memory_alloc(1);

0 commit comments

Comments
 (0)