/* { dg-do compile { target i?86-*-* x86_64-*-* } } */ /* { dg-options "-O2 -fdump-rtl-combine-all" } */ /* This testcase checks if combine tries to combine sequences where the last insn has a clobber of a reg, and a previous insn sets that reg. In this case, we have three insns (set flags (compare a b)) (set tmp (eq flags 0)) (parallel [(set dst (neg tmp)) (clobber flags)]) Previously, combine would not try the three-insn combination because of the set and clobber of flags. Now it does. Test that. */ int f(int a, int b) { return -(a == b); } /* This regexp works for reg parameters as well as mem parameters. */ /* { dg-final { scan-rtl-dump {neg:SI[^:]*eq:SI[^:]*:SI} "combine" } } */