Skip to content

Commit e345857

Browse files
committed
Use AddAcross for reduce sum, if available
1 parent a526d84 commit e345857

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/ImageSharp/Common/Helpers/Numerics.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,12 @@ public static int ReduceSum(Vector256<int> accumulator)
817817
[MethodImpl(InliningOptions.ShortMethod)]
818818
public static int ReduceSumArm(Vector128<uint> accumulator)
819819
{
820+
if (AdvSimd.Arm64.IsSupported)
821+
{
822+
Vector64<uint> sum = AdvSimd.Arm64.AddAcross(accumulator);
823+
return (int)AdvSimd.Extract(sum, 0);
824+
}
825+
820826
Vector128<ulong> sum2 = AdvSimd.AddPairwiseWidening(accumulator);
821827
Vector64<uint> sum3 = AdvSimd.Add(sum2.GetLower().AsUInt32(), sum2.GetUpper().AsUInt32());
822828
return (int)AdvSimd.Extract(sum3, 0);

0 commit comments

Comments
 (0)