-
Notifications
You must be signed in to change notification settings - Fork 5.1k
Fix the isEmbeddedMaskingCompatible checks #117607
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
/azp run Fuzzlyn |
Azure Pipelines successfully started running 1 pipeline(s). |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
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.
Pull Request Overview
This PR adjusts the embedded mask compatibility logic to reflect that mask base sizes should be 2 or 4 (instead of 4 or 8) and adds a new JIT regression test for the updated behavior.
- Renamed and updated the boolean flag and assertions in
gentree.cpp
to use mask sizes 2 and 4. - Changed the compatibility check to use
tgtMaskBaseSize == 2
. - Introduced a new JIT regression test project and test file for
Runtime_117605
.
Reviewed Changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.
File | Description |
---|---|
src/coreclr/jit/gentree.cpp | Updated mask base size checks from 4/8 to 2/4 |
src/tests/JIT/Regression/JitBlue/Runtime_117605/Runtime_117605.csproj | Added project file for the new regression test |
src/tests/JIT/Regression/JitBlue/Runtime_117605/Runtime_117605.cs | Added the generated JIT regression test implementation |
Comments suppressed due to low confidence (1)
CC. @dotnet/jit-contrib for review. This fixes an assert that was showing up in Fuzzlyn |
Logged #117612 for the unrelated Arm64 fuzzlyn failure |
src/tests/JIT/Regression/JitBlue/Runtime_117605/Runtime_117605.cs
Outdated
Show resolved
Hide resolved
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 with nits in the test
/ba-g unrelated android timeout and auth failure which didn't show in previous run. |
This resolves #117605
The mask base size corresponds to the number of elements processed in a V128. This can be
Count
(normal vector),1
(scalar vector), orCount / n
(typically used for conversions; likefloat->double
where the counts mismatch between input/output). While the input base size corresponds to the size of the element typeThis means the
inputSize
forV128<ulong>
is8
while themaskBaseSize
is typically2
(because16 / 8 == 2
) and the embedded mask checks need to checking for2
for the conversion to be safe.