From d9ba196197966cb053dc13f973000c2ba8ace692 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 7 Jul 2015 07:46:57 +0000 Subject: [PATCH] re PR tree-optimization/66739 (FAIL: gcc.target/aarch64/subs.c scan-assembler subs\tw[0-9]) 2015-07-07 Richard Biener PR middle-end/66739 * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use A - B. From-SVN: r225502 --- gcc/ChangeLog | 6 ++++++ gcc/match.pd | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f7562a0..c0500c2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-07-07 Richard Biener + + PR middle-end/66739 + * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use + A - B. + 2015-07-06 Uros Bizjak * config/i386/i386.md (insv): Rename from insv. Use SWI48 diff --git a/gcc/match.pd b/gcc/match.pd index 53e911a..6411486 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1334,8 +1334,9 @@ along with GCC; see the file COPYING3. If not see attempts to synthetize ABS_EXPR. */ (for cmp (eq ne) (simplify - (cmp (minus @0 @1) integer_zerop) - (cmp @0 @1))) + (cmp (minus@2 @0 @1) integer_zerop) + (if (single_use (@2)) + (cmp @0 @1)))) /* Transform comparisons of the form X * C1 CMP 0 to X CMP 0 in the signed arithmetic case. That form is created by the compiler -- 2.7.4