https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104376
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |enhancement
Last reconfirmed| |2022-02-04
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
Target| |aarch64-*-* x86_64-*-*
| |(with -mlzcnt)
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
There are two issues, both are tree level issues, though the second one works
on the RTL level just fine.
Right now we have:
_1 = __builtin_clz (x_5(D));
_2 = 31 - _1;
_3 = _2 ^ 31;
But the _3 can be optimized to just _1.