From 708689f7738397d377cc95930bb8c5a1a0fa4e38 Mon Sep 17 00:00:00 2001 From: "C. Brenhin Keller" Date: Tue, 5 Dec 2023 19:33:28 -0500 Subject: [PATCH 1/2] Separate `LoopVectorization.vsum` from `VectorizationBase.vsum` --- src/LoopVectorization.jl | 1 - src/simdfunctionals/mapreduce.jl | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/LoopVectorization.jl b/src/LoopVectorization.jl index 7151df75..6cbcade7 100644 --- a/src/LoopVectorization.jl +++ b/src/LoopVectorization.jl @@ -82,7 +82,6 @@ using VectorizationBase: reduced_any, reduce_to_all, reduce_to_any, - vsum, vprod, vmaximum, vminimum, diff --git a/src/simdfunctionals/mapreduce.jl b/src/simdfunctionals/mapreduce.jl index 47393abc..1b74935f 100644 --- a/src/simdfunctionals/mapreduce.jl +++ b/src/simdfunctionals/mapreduce.jl @@ -1,6 +1,5 @@ -import VectorizationBase: vsum -@inline vreduce(::typeof(+), v::VectorizationBase.AbstractSIMDVector) = vsum(v) +@inline vreduce(::typeof(+), v::VectorizationBase.AbstractSIMDVector) = VectorizationBase.vsum(v) @inline vreduce(::typeof(*), v::VectorizationBase.AbstractSIMDVector) = vprod(v) @inline vreduce(::typeof(max), v::VectorizationBase.AbstractSIMDVector) = vmaximum(v) From 7ecb186217ad7bac4368336713ba457eac3bd8dc Mon Sep 17 00:00:00 2001 From: "C. Brenhin Keller" Date: Wed, 6 Dec 2023 15:16:26 -0500 Subject: [PATCH 2/2] Try to specify `VectorizationBase.vsum` in generated code from `reduction_to_scalar` --- src/modeling/costs.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modeling/costs.jl b/src/modeling/costs.jl index 0d2b4077..1e94e4a2 100644 --- a/src/modeling/costs.jl +++ b/src/modeling/costs.jl @@ -598,7 +598,7 @@ reduce_number_of_vectors(x::Float64) = end reduction_to_scalar(x::Float64) = if x == ADDITIVE_IN_REDUCTIONS - :vsum + :(VectorizationBase.vsum) elseif x == MULTIPLICATIVE_IN_REDUCTIONS :vprod elseif x == MAX