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
This commit is contained in:
Bin Cheng 2016-11-24 12:09:19 +00:00 committed by Bin Cheng
parent 3b08cde8dd
commit 21aaaf1e05
2 changed files with 9 additions and 3 deletions

View File

@ -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

View File

@ -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. */