aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBin Cheng <bin.cheng@arm.com>2016-11-24 12:09:19 +0000
committerBin Cheng <amker@gcc.gnu.org>2016-11-24 12:09:19 +0000
commit21aaaf1e050fac4eb5edd66489cc5c6f1b332b75 (patch)
tree20041d48692ba262f09dcf40768a2c7061a817cd /gcc
parent3b08cde8dd2b27740e04a6f0e531f2c086a9ec1b (diff)
downloadgcc-21aaaf1e050fac4eb5edd66489cc5c6f1b332b75.zip
gcc-21aaaf1e050fac4eb5edd66489cc5c6f1b332b75.tar.gz
gcc-21aaaf1e050fac4eb5edd66489cc5c6f1b332b75.tar.bz2
match.pd: Refine type conversion in result expr for below pattern: (cond (cmp (convert1?
* match.pd: Refine type conversion in result expr for below pattern: (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)). From-SVN: r242831
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/match.pd7
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 61f35ae..7a22234 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-24 Bin Cheng <bin.cheng@arm.com>
+
+ * match.pd: Refine type conversion in result expr for below pattern:
+ (cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
+
2016-11-24 Eric Botcazou <ebotcazou@adacore.com>
PR middle-end/78429
diff --git a/gcc/match.pd b/gcc/match.pd
index e3f8514..3aa27fa 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -2022,11 +2022,12 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
}
}
(if (code == MAX_EXPR)
- (convert (max @1 (convert:from_type @2)))
+ (convert (max @1 (convert @2)))
(if (code == MIN_EXPR)
- (convert (min @1 (convert:from_type @2)))
+ (convert (min @1 (convert @2)))
(if (code == EQ_EXPR)
- (cond (cmp @1 (convert:from_type @3)) (convert:from_type @3) @2)))))))
+ (convert (cond (cmp @1 (convert @3))
+ (convert:from_type @3) (convert:from_type @2)))))))))
(for cnd (cond vec_cond)
/* A ? B : (A ? X : C) -> A ? B : C. */