Repository navigation
powerpc: Implement vclzlsbb and vctzlsbb - #2266
Merged
Merged
Conversation
Collaborator
|
r? @folkertdev rustbot has assigned @folkertdev. Use Why was this reviewer chosen?The reviewer was selected based on:
|
Contributor
|
Hmm Some target feature not being set/used right? |
Gelbpunkt
force-pushed
the
powerpc-vclzlsbb-vctzlsbb
branch
from
November 15, 2026 17:03
d19a407 to
2728685
Compare
Collaborator
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
The vclzlsbb and vctzlsbb instructions are available on POWER9 and newer with AltiVec enabled. They count the number of leading/trailing bytes in the vector with a LSB of zero. Clang and GCC both define the vec_cntlz_lsbb and vec_cnttz_lsbb helpers for counting the leading/trailing bytes with LSB of zero in a vector. These then conditionally emit one or the other instruction, depending on endianess. For example, on big endian, vec_cntlz_lsbb emits vclzlsbb, while on little-endian, it emits vctzlsbb. We match that.
Gelbpunkt
force-pushed
the
powerpc-vclzlsbb-vctzlsbb
branch
from
November 15, 2026 17:06
2728685 to
e4ba419
Compare
Contributor
Author
|
Sorry! Fixed, it now works :) |
folkertdev
reviewed
Nov 15, 2026
Gelbpunkt
force-pushed
the
powerpc-vclzlsbb-vctzlsbb
branch
from
November 15, 2026 17:45
c02840f to
3f85e3d
Compare
Contributor
|
Oh for posterity: we could use |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The vclzlsbb and vctzlsbb instructions are available on POWER9 and newer with AltiVec enabled. They count the number of leading/trailing bytes in the vector with a LSB of zero.
Clang and GCC both define the vec_cntlz_lsbb and vec_cnttz_lsbb helpers for counting the leading/trailing bytes with LSB of zero in a vector. These then conditionally emit one or the other instruction, depending on endianess. For example, on big endian, vec_cntlz_lsbb emits vclzlsbb, while on little-endian, it emits vctzlsbb. We match that.