RFC: using clz for comparing to zero on the tree level.
Richard Earnshaw
rearnsha@arm.com
Fri May 9 15:47:00 GMT 2003
> > In the case I mainly was considering was x==0||y==0, where on PPC (and
> > mostly likely on ARM) the asm with clz would be shorter and faster,
> On the ARM, that can be done as
>
> cmp x, #0
> cmpne y, #0
> moveq out, #1
> movne out, #0
Or even, extending Olly Bett's suggestion:
rsbs out, x, #1
rsbccs out, y, #1
movcc out, #0
Which is certainly shorter than can be done with CLZ.
Note, in this case OUT must not overlap Y, but it may overlap X (but we
can do the comparison of Y before that of X if that is the case).
R.
More information about the Gcc
mailing list