-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Remove duplicated SVE GatherVector APIs #124033
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
base: main
Are you sure you want to change the base?
Conversation
These are duplicated with the normal GatherVector methods, as 32-bit values doesn't need to be extended to 32-bit. See dotnet#103370, which removed the Int32 extensions, but did not remove the UInt32 extensions.
|
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics |
|
Given this is removing released APIs, I think this might need a API break issue raised against it? |
All the APIs are I don't have a preference if we want to have a general callout for all the fixes we've made in .NET 11 to the experimental surface or not, will leave that up to everyone else. |
Code Review: PR #124033 - Remove duplicated SVE GatherVector APIsHolistic AssessmentMotivation: This PR removes duplicated SVE GatherVectorUInt32 API overloads. The removed APIs that operate on 32-bit values (Vector/Vector) are semantically equivalent to the regular GatherVector methods since 32-bit values don't need to be "zero-extended to 32-bit" - they're already 32-bit. PR #103370 previously removed the Int32 versions, but the UInt32 versions were missed. Approach: The PR:
Net positive: ✅ Yes - this is a necessary API cleanup to remove semantically incorrect/duplicate APIs, following the precedent set in #103370. Detailed Findings✅ API Removals (Sve.cs, Sve.PlatformNotSupported.cs, System.Runtime.Intrinsics.cs)
✅ JIT Intrinsic Table Changes (hwintrinsiclistarm64sve.h)
✅ API Compatibility Baseline (ApiCompatBaseline.NetCoreAppLatestStable.xml)
✅ Test Removals (SveTests.cs)
SummaryVerdict: ✅ Approve This PR is a clean follow-up to #103370 that removes the remaining incorrectly-designed UInt32 "zero-extend" gather APIs. The change is breaking but correctly suppressed via the API compatibility baseline. All files are consistently updated and the approach matches the prior art. No issues found. |
These APIs are duplicated with the normal GatherVector methods, as 32-bit values doesn't need to be extended to 32-bit.
See #103370, which removed the Int32 extensions, but did not remove the UInt32 extensions.
@dotnet/arm64-contrib @a74nh