Hi,
This is actually the review suggestion for patch
@https://gcc.gnu.org/ml/gcc-patches/2016-11/msg02341.html, but I forgot to
incorporate it when committing that patch. Here comes this one doing that, as
well as adding a missing convert keyword. Toolchain built successfully, is it
OK?
Thanks,
bin
2016-11-23 Bin Cheng <bin.ch...@arm.com>
* match.pd: Refine type conversion in result expressions for below
pattern:
(cond (cmp (convert1? x) c1) (convert2? x) c2) -> (minmax (x c)).
Index: gcc/match.pd
===================================================================
--- gcc/match.pd (revision 242751)
+++ gcc/match.pd (working copy)
@@ -2022,11 +2022,11 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
}
}
(if (code == MAX_EXPR)
- (convert (max @1 (convert:from_type @2)))
+ (max @1 (convert @2))
(if (code == MIN_EXPR)
- (convert (min @1 (convert:from_type @2)))
+ (min @1 (convert @2))
(if (code == EQ_EXPR)
- (cond (cmp @1 (convert:from_type @3)) (convert:from_type @3) @2)))))))
+ (cond (cmp @1 (convert @3)) (convert @3) (convert @2))))))))
(for cnd (cond vec_cond)
/* A ? B : (A ? X : C) -> A ? B : C. */