From cfcc04308a0ea17b37585e3b752184c040197d0c Mon Sep 17 00:00:00 2001 From: Jishnu Bhattacharya Date: Wed, 6 Dec 2023 19:38:22 +0530 Subject: [PATCH] Aggressive constprop in matvecmul and matmatmul (#51961) --- stdlib/LinearAlgebra/src/matmul.jl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/stdlib/LinearAlgebra/src/matmul.jl b/stdlib/LinearAlgebra/src/matmul.jl index c2c7cdb66a07f..3f61bf9a19fed 100644 --- a/stdlib/LinearAlgebra/src/matmul.jl +++ b/stdlib/LinearAlgebra/src/matmul.jl @@ -397,7 +397,8 @@ end A end -function gemv!(y::StridedVector{T}, tA::AbstractChar, A::StridedVecOrMat{T}, x::StridedVector{T}, +Base.@constprop :aggressive function gemv!(y::StridedVector{T}, tA::AbstractChar, + A::StridedVecOrMat{T}, x::StridedVector{T}, α::Number=true, β::Number=false) where {T<:BlasFloat} mA, nA = lapack_size(tA, A) nA != length(x) && @@ -427,7 +428,7 @@ function gemv!(y::StridedVector{T}, tA::AbstractChar, A::StridedVecOrMat{T}, x:: end end -function gemv!(y::StridedVector{Complex{T}}, tA::AbstractChar, A::StridedVecOrMat{Complex{T}}, x::StridedVector{T}, +Base.@constprop :aggressive function gemv!(y::StridedVector{Complex{T}}, tA::AbstractChar, A::StridedVecOrMat{Complex{T}}, x::StridedVector{T}, α::Number = true, β::Number = false) where {T<:BlasReal} mA, nA = lapack_size(tA, A) nA != length(x) && @@ -449,8 +450,9 @@ function gemv!(y::StridedVector{Complex{T}}, tA::AbstractChar, A::StridedVecOrMa end end -function gemv!(y::StridedVector{Complex{T}}, tA::AbstractChar, A::StridedVecOrMat{T}, x::StridedVector{Complex{T}}, - α::Number = true, β::Number = false) where {T<:BlasFloat} +Base.@constprop :aggressive function gemv!(y::StridedVector{Complex{T}}, tA::AbstractChar, + A::StridedVecOrMat{T}, x::StridedVector{Complex{T}}, + α::Number = true, β::Number = false) where {T<:BlasReal} mA, nA = lapack_size(tA, A) nA != length(x) && throw(DimensionMismatch(lazy"second dimension of A, $nA, does not match length of x, $(length(x))"))