https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102134
Roger Sayle <roger at nextmovesoftware dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |roger at nextmovesoftware dot com --- Comment #6 from Roger Sayle <roger at nextmovesoftware dot com> --- Many thanks to Jakub for the speedy fix. The diagnosis is quite right; I'd assumed that if sgn is UNSIGNED, then arg would be zero extended. Alas, that's not quite how widest_int represents things internally, so Jakub's "if (lzcount)" is, I think, the correct fix. Sorry for the inconvenience.