On Mon, 20 Nov 2023, Jakub Jelinek wrote: > and be done with that. If there is an agreement we should do that > for all 14 rather than just those 3 + the 2 ugly hacks (__builtin_c{l,t}zg > with > 0ULL second argument and __builtin_bit_complement), I can change the
I tend to agree with the "ugly hack" description of the 0ULL second argument special case. __builtin_bit_complement seems reasonable enough as a primitive for implementing such operations, but so does just defining built-in functions in the front end for all 14 (or for all 14 except those that are trivial wrappers round existing built-in functions without needing to use ({}) or expand argument tokens more than once). -- Joseph S. Myers jos...@codesourcery.com