On Jun 5, 2012, at 6:46 AM, Paolo Bonzini wrote:
>> Do we always have CTZ if we have FFS? Can't there be a target that
>> implements FFS as opcode but not CTZ, so you'd slow down things?
>> Thus, should the transform be conditonal on target support for CTZ
>> or no target support for FFS?
>
> H
Il 04/06/2012 11:31, Richard Guenther ha scritto:
> +val = compare_range_with_value (NE_EXPR, vr, integer_zero_node,
> &sop);
> +if (!val || !integer_onep (val))
> + return false;
>
> please add a value_range_nonzero_p helper alongside value_range_nonnegative_p.
>
> +
On Sat, Jun 2, 2012 at 1:36 PM, Paolo Bonzini wrote:
> The ffs function can be converted to ctz if the operand is known not
> to be zero, as is the case for example in
>
> while (x != 0) {
> bit = ffs(x) - 1;
> ...
> x &= ~(1 << bit);
> }
>
> CSE can already do this on x86,