Re: [PATCH 28/31] iio: gyro: use parity32 in adxrs450.c

Lars-Peter Clausen
2016-03-28T09:22:31Z

On 03/28/2016 10:35 AM, Jonathan Cameron wrote:
> On 27/03/16 08:42, zhaoxiu.zeng wrote:
>> From: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
>>
>> Signed-off-by: Zeng Zhaoxiu <zhaoxiu.zeng@gmail.com>
> Interesting. Whilst obviously correct I wonder if this obscures the
> intent of the code a little. Lars, what do you think?

The parity function is newly introduced in this series and can be more
efficient that just hw_weight() & 1 on certain architectures. Since the
result is the same using it is certainly an improvement. But ...

[...]
>> - if (!(hweight32(tx) & 1))
>> - tx |= ADXRS450_P;
>> + tx |= !parity32(tx) * ADXRS450_P;

... this should still be

if (!parity32(tx))
tx |= ADXRS450_P;

Otherwise it's a bit too much obfuscated for my taste. Just leave it to the
compiler to optimize it as it sees it fit.