-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Arm64 SVE: re-enable use of predicate variants #116854
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
base: main
Are you sure you want to change the base?
Conversation
Fixes dotnet#101970 in dotnet#115566 Adds a simple costing to fgMorphTryUseAllMaskVariant() and assumes nodes can always be converted to masks (using ConvertVectorToMask).
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@@ -1993,6 +1993,104 @@ SveMaskPattern EvaluateSimdMaskToPattern(var_types baseType, simdmask_t arg0) | |||
} | |||
} | |||
} | |||
|
|||
template <typename TSimd, typename TBase> |
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.
Same changes to this file also exist in #116852. I'll remove from one PR when the other is merged.
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.
added some comments
// depending on if the corresponding input element | ||
// has its least significant bit set | ||
|
||
// For Arm64 we have count total bits to write, but they are sizeof(TBase) |
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.
These changes to EvaluateSimdCvtVectorToMask()
fix the fuzzlyn errors in HEAD. In jitted code we use CMPNE
against 0 to convert from vector to mask, therefore we need to match that here.
I've also made the same changes to the new function EvaluateSimdVectorToPattern()
/azp run Antigen,Fuzzlyn |
Azure Pipelines successfully started running 2 pipeline(s). |
Looks like Antigen and Fuzzlyn are still not happy |
Discussed offline: The fuzzlyn errors are mostly due to there being more opportunities for conversions between masks and vectors and there being issues in the way we handle that. We should pause this PR until we get that sorted out first. |
Fixes #101970
Predicate variants were implemented, and then turned off in #115566.
Adds a simple costing to fgMorphTryUseAllMaskVariant() and assumes nodes can always be converted to masks (using ConvertVectorToMask).