[Bug rtl-optimization/66552] Missed optimization when shift amount is result of signed modulus
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Feb 11 02:16:00 GMT 2020
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)
More information about the Gcc-bugs
mailing list