https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104376
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #2) > The second issue can be seen with: > #include <stdint.h> > > uint32_t countLeadingZeros32(uint32_t x) > { > if (x == 0) > return 32; > return (__builtin_clz(x)) ; > } cond_removal_in_builtin_zero_pattern should have optimized the above but does not for some reason. Let me take a look.