On Thu, Jul 09, 2015 at 12:54:54PM +0200, Richard Biener wrote: > > This introduces a :s flag to match expressions which enforces > > the expression to have a single-use if(!) the simplified > > expression is larger than one statement.
This is nice. > /* (x & ~m) | (y & m) -> ((x ^ y) & m) ^ x */ > (simplify > ! (bit_ior:c (bit_and:cs @0 (bit_not @2)) (bit_and:cs @1 @2)) > ! (bit_xor (bit_and (bit_xor @0 @1) @2) @0)) > > > /* Associate (p +p off1) +p off2 as (p +p (off1 + off2)). */ > (simplify > ! (pointer_plus (pointer_plus:s@2 @0 @1) @3) > ! (pointer_plus @0 (plus @1 @3))) Seems we don't need to capture @2 here anymore. Marek