Skip to content

Commit 08b5c18

Browse files
committed
fixed a potential out-of-bounds on gemv.
1 parent db0abfa commit 08b5c18

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

kernel/arm64/gemv_n_sve_v1x3.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a,
7777
svbool_t pg01 = ((j + width * 1) < n) ? SV_TRUE() : svpfalse();
7878
svbool_t pg02 = ((j + width * 2) < n) ? SV_TRUE() : svpfalse();
7979

80-
SV_TYPE temp0_vec = SV_DUP(alpha * x0_ptr[ix]);
81-
SV_TYPE temp1_vec = SV_DUP(alpha * x1_ptr[ix]);
82-
SV_TYPE temp2_vec = SV_DUP(alpha * x2_ptr[ix]);
80+
SV_TYPE temp0_vec = ((j + width * 0) < n) ? SV_DUP(alpha * x0_ptr[ix]) : SV_DUP(0.0);
81+
SV_TYPE temp1_vec = ((j + width * 1) < n) ? SV_DUP(alpha * x1_ptr[ix]) : SV_DUP(0.0);
82+
SV_TYPE temp2_vec = ((j + width * 2) < n) ? SV_DUP(alpha * x2_ptr[ix]) : SV_DUP(0.0);
8383
i = 0;
8484
BLASLONG sve_size = SV_COUNT();
8585
while ((i + sve_size * 1 - 1) < m) {

kernel/arm64/gemv_n_sve_v4x3.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ int CNAME(BLASLONG m, BLASLONG n, BLASLONG dummy1, FLOAT alpha, FLOAT *a,
8686
svbool_t pg22 = ((j + width * 2) < n) ? SV_TRUE() : svpfalse();
8787
svbool_t pg32 = ((j + width * 2) < n) ? SV_TRUE() : svpfalse();
8888

89-
SV_TYPE temp0_vec = SV_DUP(alpha * x0_ptr[ix]);
90-
SV_TYPE temp1_vec = SV_DUP(alpha * x1_ptr[ix]);
91-
SV_TYPE temp2_vec = SV_DUP(alpha * x2_ptr[ix]);
89+
SV_TYPE temp0_vec = ((j + width * 0) < n) ? SV_DUP(alpha * x0_ptr[ix]) : SV_DUP(0.0);
90+
SV_TYPE temp1_vec = ((j + width * 1) < n) ? SV_DUP(alpha * x1_ptr[ix]) : SV_DUP(0.0);
91+
SV_TYPE temp2_vec = ((j + width * 2) < n) ? SV_DUP(alpha * x2_ptr[ix]) : SV_DUP(0.0);
9292
i = 0;
9393
BLASLONG sve_size = SV_COUNT();
9494
while ((i + sve_size * 4 - 1) < m) {

0 commit comments

Comments
 (0)