https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120333
Jeffrey A. Law <law at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED --- Comment #2 from Jeffrey A. Law <law at gcc dot gnu.org> --- I think the pattern in that change is just bogus. I forgot to account for the fact that the left shift value isn't the bit position we care about. The position we care about is 63/31 - shift value (rv64/rv32). Once we take into the account the need for that adjustment, the new code is no better than the old code. Thankfully that variant is the least important of the single bit extraction variants.