Skip to content

Commit 567e9a0

Browse files
authored
Merge pull request #108 from SwayamInSync/fix-matmul-layout-89
adding F-contig layout support + other cleanups
2 parents 8b305c9 + 1d4bee2 commit 567e9a0

3 files changed

Lines changed: 420 additions & 170 deletions

File tree

src/csrc/quadblas_interface.cpp

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,22 @@ qblas_gemv(char layout, char trans, size_t m, size_t n,
4646
Sleef_quad *beta, Sleef_quad *y, size_t incy)
4747
{
4848
if (m == 0 || n == 0) {
49+
int do_trans = (trans == 'T' || trans == 't' || trans == 'C' || trans == 'c');
50+
size_t y_len = do_trans ? n : m;
51+
if (y_len == 0) {
52+
return 0;
53+
}
54+
if (!y || !beta) {
55+
return -1;
56+
}
57+
Sleef_quad zero = Sleef_cast_from_doubleq1(0.0);
58+
int beta_zero = Sleef_icmpeqq1(*beta, zero);
59+
for (size_t i = 0; i < y_len; i++) {
60+
y[i * incy] = beta_zero ? zero : Sleef_mulq1_u05(*beta, y[i * incy]);
61+
}
4962
return 0;
5063
}
51-
if (!alpha || !A || !x || !beta || !y) {
64+
if (!alpha || !A || !x || !y) {
5265
return -1;
5366
}
5467
cblas_qgemv(to_layout(layout), to_trans(trans),
@@ -66,7 +79,7 @@ qblas_gemm(char layout, char transa, char transb,
6679
Sleef_quad *B, size_t ldb,
6780
Sleef_quad *beta, Sleef_quad *C, size_t ldc)
6881
{
69-
if (m == 0 || n == 0 || k == 0) {
82+
if (m == 0 || n == 0) {
7083
return 0;
7184
}
7285
if (!alpha || !A || !B || !beta || !C) {

0 commit comments

Comments
 (0)