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
This commit is contained in:
parent
7c00d1fe83
commit
52de9b6cff
2 changed files with 14 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
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.
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue