https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100056
rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rsandifo at gcc dot gnu.org --- Comment #13 from rsandifo at gcc dot gnu.org <rsandifo at gcc dot gnu.org> --- The patch is no longer effective after g:96146e61cd7aee62c21c2845916ec42152918ab7, since e.g.: int or_shift_u3a (unsigned i) { i &= 7; return i | (i << 11); } now gets folded to: i_2 = i_1(D) & 7; _5 = i_2 * 2049; We then expand the multiplication as plus+shift rather than ior+shift.