blob: 09e800067b95c6f7e9b83041d8618ef9968d9cb5 [file] [log] [blame]
/* { 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" } } */