-
Notifications
You must be signed in to change notification settings - Fork 4.9k
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/8.0-staging] Ensure that AdvSimd.Insert doesn't zero out the upper bits #107091
[release/8.0-staging] Ensure that AdvSimd.Insert doesn't zero out the upper bits #107091
Conversation
CC. @jakobbotsch, @dotnet/jit-contrib for review This is a backport of #106981 to .NET 8 |
This is missing Tactics approval. Friendly reminder that Code Complete for the October Release is September 9. If we want this fix to be included in that release, please merge this PR before that date. |
@tannergooding please take a look at the PR failures |
Build was deleted, updated branch so it can rerun and investigation can happen. |
@jeffschwMSFT CI passed on rerun, should be good to merge. |
@tannergooding FYI - All devs are allowed to merge PRs to the |
Backport of #106981 to release/8.0-staging
/cc @tannergooding
Customer Impact
Found via Fuzzlyn: #106079
Developers who are using
AdvSimd.Insert
to insert a constant floating-point value may see incorrect codegen on Arm64.Regression
This bug was introduced in .NET 5 when the API was originally added: #35030
Testing
An explicit regression test was added covering the scenario. Additional manual testing of the patterns that are known to be problematic was completed on an Arm64 device. Similar patterns were also validated on x64 and the code was audited to identify if similar issues could exist.
Risk
Low. Most user code is doing insertions via the cross platform API,
vector.WithElement
instead which uses a different intrinsic (InsertSelectedScalar
) to do the insertion, which does not have this same problem.