-
Notifications
You must be signed in to change notification settings - Fork 5.3k
[release/9.0] ARM64-SVE: Delay free all ops within conditional select #107436
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
Conversation
* ARM64-SVE: Delay free all ops within conditional select * Fix comment * Add test header * don't delay prefUseOpNum * Fix FMA * Add assert checks for delay free * Merge embedded op build code * fix formatting * simplify assert * simplify FMA code * Add tests for 106867 * ARM64-SVE: Allow op inside conditionselect to be non HWintrinsic TEST_IMG: ubuntu/dotnet-build TEST_CMD: safe ./projects/dotnet/build-runtime.sh Jira: ENTLLT-7634 Change-Id: I337a291be6661f104fe90c7cdc27150eede43647 * Add Sve.IsSupported to tests * Add Sve.IsSupported to test * fix formatting * Revert "ARM64-SVE: Allow op inside conditionselect to be non HWintrinsic" * Revert "ARM64-SVE: Allow op inside conditionselect to be non HWintrinsic" * Revert "ARM64-SVE: Allow op inside conditionselect to be non HWintrinsic"
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
a74nh
left a comment
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.
Agreed, this needs adding. Using the same argument multiple times in a call could quite easily happen in customer code using SVE.
JulieLeeMSFT
left a comment
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.
LGTM.
jeffschwMSFT
left a comment
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 can merge when ready
|
@carlossanlop, @ViktorHofer @ericstj - this is ready to merge. |
|
FYI - You can also ask @jeffschwMSFT to merge |
Backport of #107036 to release/9.0
Customer Impact
This bug was found internally where we are trying to assign same register to source and destination for a SVE instruction that is prefixed by MOVPRFX instruction. As per spec, that is not allowed.
Regression
This is not a regression, but merely a newly discovered bug from our internal testing.
Testing
Added test cases that uncovered the problem and ran all the existing SVE tests under stress.
Risk
Low. This only affects certain SVE instructions that could have MOVPRFX as the prefix instruction and the fix avoid assign same register to the operands. Besides, SVE is an experimental feature for .NET 9.