From 34ab4a5b70675e801d0cd5a68b50e770d1fe864e Mon Sep 17 00:00:00 2001 From: Chung-Ju Wu Date: Wed, 10 Apr 2013 09:12:30 +0000 Subject: [PATCH] combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out unnecessary bits in the constant power of two case. 2013-04-10 Chung-Ju Wu * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out unnecessary bits in the constant power of two case. From-SVN: r197666 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5878fe94ffd..3e3e3b7243f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-04-10 Chung-Ju Wu + + * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out + unnecessary bits in the constant power of two case. + 2013-04-10 Richard Biener * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove diff --git a/gcc/combine.c b/gcc/combine.c index feb6267b490..667b7b43c70 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -10759,8 +10759,9 @@ simplify_compare_const (enum rtx_code code, rtx op0, rtx *pop1) && (code == EQ || code == NE || code == GE || code == GEU || code == LT || code == LTU) && mode_width <= HOST_BITS_PER_WIDE_INT - && exact_log2 (const_op) >= 0 - && nonzero_bits (op0, mode) == (unsigned HOST_WIDE_INT) const_op) + && exact_log2 (const_op & GET_MODE_MASK (mode)) >= 0 + && (nonzero_bits (op0, mode) + == (unsigned HOST_WIDE_INT) (const_op & GET_MODE_MASK (mode)))) { code = (code == EQ || code == GE || code == GEU ? NE : EQ); const_op = 0; -- 2.30.2