Re: [PATCH v3 01/16] bitops: Change parity8() return type to bool
Yury Norov <[email protected]>
| Newsgroups | dev.linux.lists.brcm80211,org.freedesktop.lists.dri-devel,org.infradead.lists.linux-mtd,org.kernel.vger.bpf,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.linux-media,org.kernel.vger.linux-serial,org.kernel.vger.linux-wireless,org.kernel.vger.netdev |
|---|---|
| Message-ID | <Z9MGxknjluvbX19w@thinkpad> |
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 <[email protected]> wrote: [...] > >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