-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Adding support for Vector512 Equals
, EqualsAny
, op_Equality
, and op_Inequality
.
#83470
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak Issue DetailsDR PR to test
|
Vector512
Equals
, op_Equality
, and op_Inequality
.
d77e843
to
52d5c95
Compare
@dotnet/avx512-contrib |
Vector512
Equals
, op_Equality
, and op_Inequality
.Vector512
Equals
, EqualsAny
, op_Equality
, and op_Inequality
.
Vector512
Equals
, EqualsAny
, op_Equality
, and op_Inequality
.Equals
, EqualsAny
, op_Equality
, and op_Inequality
.
52d5c95
to
b77a298
Compare
@tannergooding looks like all checks passing |
b77a298
to
95d12db
Compare
if (!UseSimdEncoding()) | ||
{ | ||
return false; | ||
} |
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.
Don't expect you to do this here, since this is consistent with the other methods.
But I think we can in general simplify this and several of the other SIMD only flags to something like:
insFlags flags = CodeGenInterface::instInfo[ins];
if ((flags & INS_Flags_Is3OperandInstructionMask) != 0)
{
assert(UseSimdEncoding());
return true;
}
return false;
The UseSimdEncoding()
is itself a flag check now and we should never be setting these SIMD only flags on non-SIMD instructions.
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.
I'll log an issue for us to look at that as a cleanup item in some follow up PR.
I haven't rebased to latest main. The current version has some failures on x86 where eax,ecx(non k registers) are identified as 'preferred registers' for mask. This causes an assert. As far as I can tell, something seem to be off with the populated ' |
I think I got it. There was a pre-existing bug - runtime/src/coreclr/jit/targetx86.h Line 96 in b1812ef
Should have been RBP_K1 Will update after testing
|
b3f5200
to
4caa9d0
Compare
@tannergooding I've rebased the branch to main and pushed a small fix |
Fixing k reg display on x86.
Seems there is a new assert where some BMI1/2 instruction is hitting the EVEX encoding path. |
I'm having trouble reproducing this Steps I followed
Also tried just the test highlighed EDIT ; Got it now after rebuilding everything. @tannergooding Any idea what I'm doing wrong? I pulled from the PR separately as well |
@tannergooding This is incorrect I think - runtime/src/coreclr/jit/instrsxarch.h Line 622 in 0760f77
I think it needs to be |
Ah, yeah. That would need to be fixed for |
Don't think it needs |
Resolved the merge conflicts from the narrow/widen and addition/subtraction PRs that got merged |
SPMI Replay failure is #84536 |
@BruceForstall Do you think this is good to go or does this need any changes? |
There's a new merge conflict that needs to be resolved (caused by #84212). We no longer need to pass around |
SPMI failure is #84536 |
This makes progress towards #80814 and lays foundation for the remaining
Vector512
comparison operators.