Thread (67 messages) 67 messages, 9 authors, 2025-04-04

Re: [PATCH v3 01/16] bitops: Change parity8() return type to bool

From: Yury Norov <yury.norov@gmail.com>
Date: 2025-03-13 16:24:42
Also in: bpf, dri-devel, linux-input, linux-media, linux-serial, linux-wireless, lkml

On Wed, Mar 12, 2025 at 05:09:16PM -0700, H. Peter Anvin wrote:
On March 12, 2025 4:56:31 PM PDT, Jacob Keller [off-list ref] wrote:
[...]
quoted
This is really a question of whether you expect odd or even parity as
the "true" value. I think that would depend on context, and we may not
reach a good consensus.

I do agree that my brain would jump to "true is even, false is odd".
However, I also agree returning the value as 0 for even and 1 for odd
kind of made sense before, and updating this to be a bool and then
requiring to switch all the callers is a bit obnoxious...
Odd = 1 = true is the only same definition. It is a bitwise XOR, or sum mod 1.
The x86 implementation will be "popcnt(val) & 1", right? So if we
choose to go with odd == false, we'll have to add an extra negation.
So because it's a purely conventional thing, let's just pick a simpler
one?

Compiler's builtin parity() returns 1 for odd.

Thanks,
Yury
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help