On Fri, Oct 24, 2014 at 03:27:19PM +0200, Richard Biener wrote: > As noted by Marc I forgot to actually utilize the iterator variable. > > Bootstrapped on x86_64-unknown-linux-gnu, testing in progress. > > Richard. > > PS: How do we want to refer to patterns in ChangeLogs?
Perhaps the syntax should be (simplify "name" (...) { ... }) (maybe the name being optional?), where you'd give some name to the simplification, say "0 % X" or "0 % X => 0" or "0 % X variant 3" or whatever, then you could easily refer to those strings in ChangeLog, on gcc-patches, in comments etc. > 2014-10-24 Richard Biener <rguent...@suse.de> > > * match.pd (0 % X): Properly use the iterator iterating over > all modulo operators. > (X % 1): Likewise. > > Index: gcc/match.pd > =================================================================== > --- gcc/match.pd (revision 216648) > +++ gcc/match.pd (working copy) > @@ -64,13 +64,13 @@ (define_predicates > (for op (ceil_mod floor_mod round_mod trunc_mod) > /* 0 % X is always zero. */ > (simplify > - (trunc_mod integer_zerop@0 @1) > + (op integer_zerop@0 @1) > /* But not for 0 % 0 so that we can get the proper warnings and errors. */ > (if (!integer_zerop (@1)) > @0)) > /* X % 1 is always zero. */ > (simplify > - (trunc_mod @0 integer_onep) > + (op @0 integer_onep) > { build_zero_cst (type); })) > > /* x | ~0 -> ~0 */ Jakub