Skip to content

Commit b0bfb0a

Browse files
committed
Use Vector128<T>.sum() for reduce sum in NET7.0
1 parent e345857 commit b0bfb0a

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

src/ImageSharp/Formats/Webp/Lossy/LossyUtils.cs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,11 @@ ref Unsafe.Add(ref bRef, y * WebpConstants.Bps),
229229
sum);
230230
}
231231

232+
#if NET7_0_OR_GREATER
233+
return (int)Vector128.Sum(sum);
234+
#else
232235
return Numerics.ReduceSumArm(sum);
236+
#endif
233237
}
234238

235239
[MethodImpl(InliningOptions.ShortMethod)]
@@ -246,7 +250,11 @@ ref Unsafe.Add(ref bRef, y * WebpConstants.Bps),
246250
sum);
247251
}
248252

253+
#if NET7_0_OR_GREATER
254+
return (int)Vector128.Sum(sum);
255+
#else
249256
return Numerics.ReduceSumArm(sum);
257+
#endif
250258
}
251259

252260
[MethodImpl(InliningOptions.ShortMethod)]
@@ -264,7 +272,12 @@ private static int Vp8_Sse4x4_Neon(Span<byte> a, Span<byte> b)
264272
Vector128<uint> sum1 = AdvSimd.AddPairwiseWidening(prod1);
265273
Vector128<uint> sum2 = AdvSimd.AddPairwiseWidening(prod2);
266274

267-
return Numerics.ReduceSumArm(AdvSimd.Add(sum1, sum2));
275+
Vector128<uint> sum = AdvSimd.Add(sum1, sum2);
276+
#if NET7_0_OR_GREATER
277+
return (int)Vector128.Sum(sum);
278+
#else
279+
return Numerics.ReduceSumArm(sum);
280+
#endif
268281
}
269282

270283
// Load all 4x4 pixels into a single Vector128<uint>

0 commit comments

Comments
 (0)