I suppose you're using (assuming 32-bit) ctz(x) := 31 - clz(x & -x)now, which gives -1 for 0; and the version you're looking for is ctz(x) := 32 - clz(~x & (x-1)) which gives 32 for 0. (Straight from the venerable PowerPC Compiler Writer's Guide, btw). What does the popcount version look like? Never seen that before, but I think it will be really expensive on PowerPC.
Never mind, too trivial, given the second of the above. Segher