-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[release/10.0] Fix codegen for SVE Scatter*With*Offsets* and GatherVector*With*Offsets* #119959
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
[release/10.0] Fix codegen for SVE Scatter*With*Offsets* and GatherVector*With*Offsets* #119959
Conversation
@dotnet/arm64-contrib @a74nh @tannergooding @EgorBo |
Tagging subscribers to this area: @dotnet/area-system-runtime-intrinsics |
The backport template needs to be filled out still. I've updated the original post to have that, but someone with all the relevant details would be better to fill it in. |
I have filled in most of the details. Could you or someone verify if the target branch is correct? Not sure whether this work would fall against servicing category and needs target branch as |
Needs code review and please check test failures. |
The test failures seems unrelated to the changes. Also, they are on x64 machines and the change is SVE only so should be unrelated to the failures. |
Backport of #119712 and #119853 to release/10.0
/cc @EgorBo @SwapnilGaikwad
Customer Impact
These changes fix the incorrect codegen for some of the SVE Scatter and Gather APIs. These APIs take byte offsets are one of the arguments but the current codegen treats them as indices. It leads to incorrect behaviour and is a bug.
The current patch fixes this bug. The SVE APIs are introduced in .Net9, thus, the fix needs to be backported to .Net10.
Regression
Testing
Fix is verified by updating the corresponding tests to ensure the desired behaviour is exhibited by the program. Furthermore, it's also verified manually by inspecting generated assembly instructions before and after the fix.
Risk
Low. This is a low risk change as the SVE feature remains experimental in .Net9 and .Net10.