diff --git a/src/matmul.jl b/src/matmul.jl index d618bcfe..f459bc1f 100644 --- a/src/matmul.jl +++ b/src/matmul.jl @@ -1063,17 +1063,15 @@ function __generic_matvecmul!(::typeof(identity), C::AbstractVector, A::Abstract alpha::Number, beta::Number) Astride = size(A, 1) @inbounds begin - for i = eachindex(C) - if !iszero(beta) - C[i] *= beta - elseif length(B) == 0 + for i in eachindex(C) + if length(B) == 0 C[i] = zero(eltype(C)) else - C[i] = zero(A[i]*B[1] + A[i]*B[1]) + C[i] = A[i]*B[1]*alpha + C[i]*beta end end if !iszero(alpha) - for k = eachindex(B) + for k in @view eachindex(B)[2:end] aoffs = (k-1)*Astride b = @stable_muladdmul MulAddMul(alpha,false)(B[k]) for i = eachindex(C)