[release/10.0-preview7] Don't do an invalid mask conversion optimization for conditional select nodes #118167
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 #118154 to release/10.0-preview7
/cc @EgorBo @tannergooding
Customer Impact
See #118154. AVX512 code can produce incorrect results, which is impacting base64 encoding for large inputs (which impacts crypto scenarios)
Regression
This was exposed in, but not actually introduced by, #116983. The actual bug was introduced a bit over 10 months ago (still unique to .NET 10), as part of enabling the mask conversion optimization pass for xarch.
Testing
local repro, test added
Risk
Low - a manual minimal revert of the problematic code introduced in the original PR
IMPORTANT: If this backport is for a servicing release, please verify that:
release/X.0-staging, notrelease/X.0.Package authoring no longer needed in .NET 9
IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.