https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70251
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> --- Author: rguenth Date: Tue Mar 22 14:38:42 2016 New Revision: 234405 URL: https://gcc.gnu.org/viewcvs?rev=234405&root=gcc&view=rev Log: 2016-03-22 Richard Biener <rguent...@suse.de> PR middle-end/70251 * genmatch.c (gen_transform): Adjust last parameter to a three-state int... (capture::gen_transform): ... to change behavior when substituting a condition into cond or not-cond expr context. (dt_simplify::gen_1): Adjust. * gimple-match-head.c: Include gimplify.h for unshare_expr. * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert last change and instead change to A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0). (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise. * g++.dg/torture/pr70251.C: New testcase. Added: trunk/gcc/testsuite/g++.dg/torture/pr70251.C Modified: trunk/gcc/ChangeLog trunk/gcc/genmatch.c trunk/gcc/gimple-match-head.c trunk/gcc/match.pd trunk/gcc/testsuite/ChangeLog