-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[Arm64] Implement more hardware intrinsics from #24794 #33889
[Arm64] Implement more hardware intrinsics from #24794 #33889
Conversation
….PlatformNotSupported.cs
…Simd.PlatformNotSupported.cs
…tformNotSupported.cs
…ar in AdvSimd.cs AdvSimd.PlatformNotSupported.cs
…vSimd.cs AdvSimd.PlatformNotSupported.cs
…in codegenarm64.cpp
… in emitarm64.cpp
…ar in GenerateTests.csx
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
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 - thanks!
Thank you for review, Carol! @CarolEidt @tannergooding One additional question: As you probably noticed one of my last commits was 9e7b2f1 - updating lsraarm64.cpp to reflect that the instructions While that change is sound, ideally, I want this to be specified via the table in hwintrinsiclistarm64.h. I would like to avoid this and propose to invert this flag on arm64, i.e. have no-RMW semantic for intrinsics as default and mark a smaller subset of them with a new flag In other words, I would like to
@CarolEidt @tannergooding Will you have any concerns with such change? |
I'm fine with the underlying flags differing, we have the helper functions that people should be calling to get that info anyways and so we shouldn't really have anything but the table (and those functions) using the flags directly. |
I agree with Tanner - it makes sense to have the opposite default for Arm64 |
Implements frecpe, frecps, frecpx, frsqrte, frsqrts, urecpe, ursqrte instructions
Fixes implementation for fcmeq, fcmge, fcmgt, fcmle, fcmlt (zero immediate) instructions
Adds emitter unit tests for the new added instructions and the fixed ones.
Attached are the outputs for jitDisasm and WinDbg u command
jitDisasm.txt
windbg-u.txt