https://gcc.gnu.org/bugzilla/show_bug.cgi?id=72785
--- Comment #17 from dhowells at redhat dot com <dhowells at redhat dot com> --- (In reply to dhowe...@redhat.com from comment #16) > ... > 0000000000000027 <clz_ilog2>: > 27: 0f bd c7 bsr %edi,%eax > 2a: 83 f0 1f xor $0x1f,%eax > 2d: c3 retq > > though the XOR is superfluous - for any valid input to ilog2(), I think the > output is always in the range 0-31. Ah - it's not actually an AND, so the XOR isn't necessarily superfluous.