On 1/2/23 10:22, Jakub Jelinek wrote:
On Mon, Jan 02, 2023 at 09:20:33AM -0700, Jeff Law wrote:
In fact Raphael and I were about to submit a patch which takes advantage of
that capability to improve the code slightly for risc-v.

Just use a pattern with zero_extend or sign_extend around it or subreg of
it?
If it were only that easy ;(  In the bowels of the simplifications the
zero_extension turns into either a pair of shifts or an AND with a mask (I
forget which offhand).  I'm sure we *can* work around this in the target,
but it'll be ugly.

The documentation definitely needs to be updated.  I looked at the whole
family a few weeks ago and my recollection was they all need to be fixed
(ffs, clrsb, clz, ctz, popcount & parity) if the defined semantics are that
the input and output operand modes must match.

When I look at the documentation of all the above, all of them have
"The mode of @var{x} must be @var{m} or @code{VOIDmode}."
M is the mode on the insn (ie clzsi2).  I don't see a reference to
                                 ^^
@var{x}.  Weird.

jeff

Reply via email to