diff options
author | Richard Biener <rguenther@suse.de> | 2015-07-07 07:46:57 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-07-07 07:46:57 +0000 |
commit | d9ba196197966cb053dc13f973000c2ba8ace692 (patch) | |
tree | 1dacef79654b5af4db91d178b5f3f59df6c482e0 | |
parent | fc1cbdf389946c741f9341843a772b36fa586c6f (diff) | |
download | gcc-d9ba196197966cb053dc13f973000c2ba8ace692.zip gcc-d9ba196197966cb053dc13f973000c2ba8ace692.tar.gz gcc-d9ba196197966cb053dc13f973000c2ba8ace692.tar.bz2 |
re PR tree-optimization/66739 (FAIL: gcc.target/aarch64/subs.c scan-assembler subs\tw[0-9])
2015-07-07 Richard Biener <rguenther@suse.de>
PR middle-end/66739
* match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use
A - B.
From-SVN: r225502
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | 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 <rguenther@suse.de> + + PR middle-end/66739 + * match.pd: Condition A - B ==/!= 0 -> A ==/!= B on single-use + A - B. + 2015-07-06 Uros Bizjak <ubizjak@gmail.com> * config/i386/i386.md (insv<mode>): 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 |