Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #39094
On Windows, we currently never enable RDM intrinsics because
IsProcessorFeaturePresent
does not have a flag for the Armv8.1 RDM optional extension. This results inRdm.IsSupported
returning different values on Windows vs Linux on the same hardware (realistically, anything newer than 2016).I finally found enough documentation to support enabling RDM by implication. The docs for Armv8.1 extensions include the following:
Since we require a baseline of AdvSIMD support, we may assume that if we have an Armv8.1 processor, it has RDM support. This leads to a second problem, which is that there is also no
IsProcessorFeaturePresent
flag for Armv8.1 baseline. However, from the generic docs for Armv8 extensions:We may assume that the presence of any Armv8.2 optional feature means we have at least Armv8.1. And because
IsProcessorFeaturePresent
does have a flag for the Armv8.2 DP optional extension, we may safely assume that its presence also implies RDM.