https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66552
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #7) > (In reply to Andrew Pinski from comment #6) > > (In reply to Li Jia He from comment #5) > > > Could we consider doing this optimization on gimple? I use the following > > > code on gimple to produce optimized results on powerpc64. > > > > It might make sense. But fold-const.c might not be the correct location; > > match.pd might be a better place for it. > > Something like: > (simplify > (rshift @0 (mod @1 integer_pow2p@2)) > (rshift @0 (bit_and @1 (minus @1 { build_int_cst (TREE_TYPE (@1), 1); })))) Some typos: (simplify (rshift @0 (mod @1 integer_pow2p@2)) (rshift @0 (bit_and @1 (minus @2 { build_int_cst (TREE_TYPE (@2), 1); })))) This would be under the for: (for mod (ceil_mod floor_mod round_mod trunc_mod)