Commit 52de9b6c by Richard Kenner Committed by Richard Henderson

fold-const.c (operand_equal_for_comparison_p): See if equal when nop conversions are removed.

Wed Mar 18 13:46:07 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
        * fold-const.c (operand_equal_for_comparison_p): See if equal
        when nop conversions are removed.

From-SVN: r18672
parent 7c00d1fe
Wed Mar 18 13:46:07 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* fold-const.c (operand_equal_for_comparison_p): See if equal
when nop conversions are removed.
Wed Mar 18 13:42:01 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* expr.c (expand_expr, case COND_EXPR): If have conditional move,
......
......@@ -1909,7 +1909,7 @@ operand_equal_for_comparison_p (arg0, arg1, other)
tree other;
{
int unsignedp1, unsignedpo;
tree primarg1, primother;
tree primarg0, primarg1, primother;
unsigned correct_width;
if (operand_equal_p (arg0, arg1, 0))
......@@ -1919,6 +1919,14 @@ operand_equal_for_comparison_p (arg0, arg1, other)
|| ! INTEGRAL_TYPE_P (TREE_TYPE (arg1)))
return 0;
/* Discard any conversions that don't change the modes of ARG0 and ARG1
and see if the inner values are the same. This removes any
signedness comparison, which doesn't matter here. */
primarg0 = arg0, primarg1 = arg1;
STRIP_NOPS (primarg0); STRIP_NOPS (primarg1);
if (operand_equal_p (primarg0, primarg1, 0))
return 1;
/* Duplicate what shorten_compare does to ARG1 and see if that gives the
actual comparison operand, ARG0.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment