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
[email protected]