-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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/7.0-preview1] Ensure that we aren't accidentally generating instructions for unsupported ISAs #64224
[release/7.0-preview1] Ensure that we aren't accidentally generating instructions for unsupported ISAs #64224
Conversation
… AVX2 instructions when not supported
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Tagging subscribers to this area: @JulieLeeMSFT Issue DetailsBackport of #64140 to release/7.0-preview1 /cc @tannergooding Customer ImpactTestingRisk
|
@tannergooding Were able to run the changes on a device without AVX2? |
Yes and the new assert helps catch the issue even on hardware with AVX2 provided you |
cc @jeffschwMSFT for backporting this PR to preview1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approved. We should take for consideration in 7.0-preview1
Backport of #64140 to release/7.0-preview1
/cc @tannergooding
Customer Impact
Customers running on a machine with AVX but without AVX2 and utilizing certain helper intrinsics will experience a fail fast due to the hardware not supporting the emitted instruction
Testing
An additional assert was added to validate that hardware intrinsics aren't being emitted for unsupported ISAs in codegen. The impacted tests were run with the various
COMPlus_EnableIsa=0
switches to validate that the assert was raised before the fix and not after the fix.We have existing outer loop jobs that run the tests with these switches toggled and that will now cause the relevant assert to fire allowing us to catch these issues earlier.
Risk
Minimal. This is the first preview for .NET 7 and the underlying instructions used are already well tested. This was merely an issue around the ISA checks during import handling.