This is a small compile time optimization, as match and simplify will generate
the same thing but with rhs and lhs being the same we can return early instead
of having to go through match and simplify. This might not show up that much
at this point but can/will show up after my patch for PR 119920 where we factor
out common code between the 2 sides of the if statement while in if-conv.
Bootstrapped and tested on x86_64-linux-gnu.
gcc/ChangeLog:
* tree-if-conv.cc (fold_build_cond_expr): Return early if lhs and rhs
are the same.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
static tree
fold_build_cond_expr (tree type, tree cond, tree rhs, tree lhs)
{
+ /* Short cut the case where both rhs and lhs are the same. */
+ if (operand_equal_p (rhs, lhs))
+ return rhs;
+
/* If COND is comparison r != 0 and r has boolean type, convert COND
to SSA_NAME to accept by vect bool pattern. */
if (TREE_CODE (cond) == NE_EXPR)