-
Notifications
You must be signed in to change notification settings - Fork 5.3k
JIT: Improve x86 HWIntrinsic containment #110736
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
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
cad9d40 to
f62e416
Compare
saucecontrol
left a comment
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.
@tannergooding this should be ready now -- just needs outer loop run.
I'll follow up with the ToScalar/GetLower containment I mentioned in another PR since this one's already quite involved.
|
/azp run runtime-coreclr jitstress-isas-x86 |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
jitstress failures are more variations of the bogus assert fixed in #92183 Codegen for the test method on main is movups xmm0, xmmword ptr [rcx+0x08]
movups xmm1, xmmword ptr [reloc @RWD00]
movaps xmm2, xmm0
pblendvb xmm0, xmm1
movups xmmword ptr [rdx], xmm0
mov rax, rdx
retPR codegen with the assert corrected is the also valid movups xmm0, xmmword ptr [rcx+0x08]
movaps xmm1, xmm0
pblendvb xmm0, xmmword ptr [reloc @RWD00]
movups xmmword ptr [rdx], xmm0
mov rax, rdx
retContainment of CNS_VEC with non-VEX encoding is one of the improvements in the update. |
c0070d6 to
3db3b4d
Compare
|
CC. @dotnet/jit-contrib for secondary review |
This is another round of improvements for xarch HWIntrinsics containment. In summary it:
IsContainableHWIntrinsicOpto use tuple type for size calculation where possible.Diffs look good.
Notable Fixes
runtime/src/tests/JIT/HardwareIntrinsics/X86_Avx/Avx1/Compare.cs
Lines 65 to 72 in 1d69684
These were overreading before and are fixed now:
(actually, this was both an overread bug and an incorrect SIMD size bug -- both fixed now)
Similarly:
And: