-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[arm64] Addressing modes for SIMD #67490
Conversation
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsThis PR implements addressing modes for SIMD vectors on arm64 Benchmark: static byte[] _array1 = new byte[100000];
static byte[] _array2 = new byte[100000];
[Benchmark]
public bool SequenceEquals() => _array1.AsSpan().SequenceEqual(_array2);
codegen diff example: https://www.diffchecker.com/wACQMKBT (
|
@dotnet/jit-contrib PTAL, simple change, diffs are small but cover SpanHelpers methods which are perf-critical |
Is this change sufficiently protected by an existing benchmark? |
Yes, SpanHelpers are heavily used under the hood in many benchmarks and Regexes, we even have explicit benchmarks, e.g. https://github.com/dotnet/performance/blob/d7dac8a7ca12a28d099192f8a901cf8e30361384/src/benchmarks/micro/libraries/System.Memory/Span.cs#L48 |
This PR implements addressing modes for SIMD vectors on arm64 (for now only loads with unscaled indices)
Closes #67435
Benchmark:
codegen diff example: https://www.diffchecker.com/wACQMKBT (
SpanHelpers.SequenceEqual
)