Skip to content

[release/9.0] Ensure that Arm64 correctly handles multiplication of simd by a 64-bit scalar #106972

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

Merged
merged 3 commits into from
Aug 27, 2024

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Aug 26, 2024

Backport of #106839 to release/9.0

/cc @tannergooding

Customer Impact

  • Customer reported
  • Found internally

#106838

On Arm64 hardware, multiplication of a vector containing Int64 or UInt64 elements by a scalar (such as vector128 * 5UL) could produce incorrect results.

Regression

  • Yes
  • No

64-bit vector multiplication was not accelerated in .NET 8, but support was added in .NET 9. A refactoring then later caused the fgMakeMultiUse call to replace the wrong node leading the second multiplication to produce incorrect results.

Testing

An explicit test was added to validate the codegen was correct. The test was authored so it also validates the scenarios for other platforms as well.

Risk

Low. This is a relatively simple fix and is simply ensuring the write node is being duplicated.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Aug 26, 2024
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@tannergooding
Copy link
Member

CC. @jeffschwMSFT, @JulieLeeMSFT for approval

@tannergooding tannergooding added this to the 9.0.0 milestone Aug 26, 2024
Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approved. we can merge when ready

@jeffschwMSFT jeffschwMSFT added the Servicing-approved Approved for servicing release label Aug 26, 2024
@jeffschwMSFT jeffschwMSFT merged commit 5c35d1a into release/9.0 Aug 27, 2024
10 of 12 checks passed
@tannergooding tannergooding deleted the backport/pr-106839-to-release/9.0 branch August 27, 2024 18:52
@github-actions github-actions bot locked and limited conversation to collaborators Sep 28, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants