[release/10.0] Fixup some Vector<T> function lookups to use the right name/type #119080
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.
Backport of #119068 to release/10.0 (RC2)
/cc @tannergooding @jeffhandley
Customer Impact
Developers using
Vector
comparison APIs would see incorrect behavior for some overloads; while those usingSquareRoot
would see reduced performance.Regression
The regressions were introduced as part of the several refactorings that removed the independent
simdashwintrinsic
support and changed it to reuse thehwintrinsic
paths.The general issue is that the
System.Numerics
vector API surface differs slightly from the modernSystem.Runtime.Intrinsics
API surface. Namely it exposes some "legacy" overloads of the comparison APIs that returnVector<int>
for comparisons involvingVector<float>
and which uses a different name for a few APIs. While most of these special edge cases were handled as part of removing thesimdashwintrinsic
support, a couple were missed.Testing
An explicit test covering the customer reported regression was added. Manual validation of the related scenarios and codegen was done.
Risk
Low. This is simply adding the long-existing flags to the table relevant table entries to ensure they go down the right code paths. There isn't really any "net new" code here which could introduce risk.