Messages in this thread | | | Subject | Re: [PATCH 28/31] iio: gyro: use parity32 in adxrs450.c | From | Lars-Peter Clausen <> | Date | Mon, 28 Mar 2016 10:50:13 +0200 |
| |
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.
| |