From 287f8f17f22c829b7952d205e4b6793d073e486d Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Tue, 1 Dec 2015 08:52:58 +0000 Subject: [PATCH] re PR ada/68590 (FAIL: gnat.dg/loop_optimization19.adb scan-tree-dump-not optimized "Index_Check") 2015-12-01 Richard Biener PR middle-end/68590 * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns. From-SVN: r231100 --- gcc/ChangeLog | 5 +++++ gcc/match.pd | 13 ++++++------- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c1114532c2e..800645ac453 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-12-01 Richard Biener + + PR middle-end/68590 + * match.pd: Merge (eq @0 @0) and (ge/le @0 @0) patterns. + 2015-12-01 Jan Hubicka * ipa-devirt.c (type_with_linkage_p, type_in_anonymous_namespace_p, diff --git a/gcc/match.pd b/gcc/match.pd index e86cc8b6efb..ea512fb20b9 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -1828,15 +1828,14 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* Simplify comparison of something with itself. For IEEE floating-point, we can only do some of these simplifications. */ -(simplify - (eq @0 @0) - (if (! FLOAT_TYPE_P (TREE_TYPE (@0)) - || ! HONOR_NANS (TYPE_MODE (TREE_TYPE (@0)))) - { constant_boolean_node (true, type); })) -(for cmp (ge le) +(for cmp (eq ge le) (simplify (cmp @0 @0) - (eq @0 @0))) + (if (! FLOAT_TYPE_P (TREE_TYPE (@0)) + || ! HONOR_NANS (TYPE_MODE (TREE_TYPE (@0)))) + { constant_boolean_node (true, type); } + (if (cmp != EQ_EXPR) + (eq @0 @0))))) (for cmp (ne gt lt) (simplify (cmp @0 @0) -- 2.30.2