diff --git a/src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs b/src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs index 850f3d876..13f5662e7 100644 --- a/src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs +++ b/src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs @@ -229,7 +229,11 @@ internal static class LossyUtils sum); } +#if NET7_0_OR_GREATER + return (int)Vector128.Sum(sum); +#else return Numerics.ReduceSumArm(sum); +#endif } [MethodImpl(InliningOptions.ShortMethod)] @@ -246,7 +250,11 @@ internal static class LossyUtils sum); } +#if NET7_0_OR_GREATER + return (int)Vector128.Sum(sum); +#else return Numerics.ReduceSumArm(sum); +#endif } [MethodImpl(InliningOptions.ShortMethod)] @@ -264,7 +272,12 @@ internal static class LossyUtils Vector128 sum1 = AdvSimd.AddPairwiseWidening(prod1); Vector128 sum2 = AdvSimd.AddPairwiseWidening(prod2); - return Numerics.ReduceSumArm(AdvSimd.Add(sum1, sum2)); + Vector128 sum = AdvSimd.Add(sum1, sum2); +#if NET7_0_OR_GREATER + return (int)Vector128.Sum(sum); +#else + return Numerics.ReduceSumArm(sum); +#endif } // Load all 4x4 pixels into a single Vector128