On March 13, 2025 9:24:38 AM PDT, Yury Norov <yury.norov@xxxxxxxxx> wrote: >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 <jacob.e.keller@xxxxxxxxx> 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 The x86 implementation, no, but there will be plenty of others having that exact definition.