-
Notifications
You must be signed in to change notification settings - Fork 259
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
wazevo: add bit count instruction Popcnt #1638
Conversation
9e944dc is landed, so could you rebase onto main before making this ready btw |
Signed-off-by: Edoardo Vacchi <[email protected]>
Signed-off-by: Edoardo Vacchi <[email protected]>
Signed-off-by: Edoardo Vacchi <[email protected]>
7343fa0
to
1e5ff52
Compare
moved forward, a bit of cleanup, still needs tests and docs :) pushing for feedback 🙏 |
Signed-off-by: Edoardo Vacchi <[email protected]>
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.
yeah this is right on the track! 💯
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.
OK, VecRRR
is not the right place for UADDLV
, but instead you should use vecLanes
:
// vecLanes represents a vector instruction across lanes.
vecLanes
which should be encoded following "Advanced SIMD across lanes" in https://developer.arm.com/documentation/ddi0596/2020-12/Index-by-Encoding/Data-Processing----Scalar-Floating-Point-and-Advanced-SIMD?lang=en
Signed-off-by: Edoardo Vacchi <[email protected]>
Signed-off-by: Edoardo Vacchi <[email protected]>
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.
Awesome!
Moves further #1496 and follows-up to #1635.
We introduce support to
popcnt
with the required dependencies for its implementation: we use vector instructions CNT and UADDLV as we do in the current compiler. This PR also implementsmovToVec
,movFromVec
and it lays down the first steps to extend further with the missing related operations invecMisc
,vecLanes
(originally unimplemented).