http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53385
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-05-18 08:17:42 UTC --- Isn't this just a fancy way of saying i = val ? clz_hwi (val) - 1 : HOST_BITS_PER_WIDE_INT; ? Note that the predicate ensures that the whole operand isn't 0, so one might as well use just i = clzi_hwi (val) - 1; and just adjust the else if (GET_CODE (x) == CONST_DOUBLE && i == 32) test to compare i == 31 instead (and tweak the body not to i-- if the low hwi is negative and do another clz_hwi otherwise).