Skip to content

Commit 7703ae2

Browse files
committed
Don't zero out destination in generic_matvecmul
1 parent 1ce8426 commit 7703ae2

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

src/matmul.jl

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -951,20 +951,18 @@ function __generic_matvecmul!(::typeof(identity), C::AbstractVector, A::Abstract
951951
alpha::Number, beta::Number)
952952
Astride = size(A, 1)
953953
@inbounds begin
954-
for i = eachindex(C)
955-
if !iszero(beta)
956-
C[i] *= beta
957-
elseif length(B) == 0
954+
for i in eachindex(C)
955+
if length(B) == 0
958956
C[i] = false
959957
else
960-
C[i] = zero(A[i]*B[1] + A[i]*B[1])
958+
@stable_muladdmul _modify!(MulAddMul(alpha, beta), A[i]*B[1], C, i)
961959
end
962960
end
963-
for k = eachindex(B)
961+
for k in @view eachindex(B)[2:end]
964962
aoffs = (k-1)*Astride
965-
b = @stable_muladdmul MulAddMul(alpha,false)(B[k])
966-
for i = eachindex(C)
967-
C[i] += A[aoffs + i] * b
963+
= @stable_muladdmul MulAddMul(alpha,false)(B[k])
964+
for i in eachindex(C)
965+
C[i] += A[aoffs + i] *
968966
end
969967
end
970968
end

0 commit comments

Comments
 (0)