diff options
author | Chung-Ju Wu <jasonwucj@gmail.com> | 2013-04-10 09:12:30 +0000 |
---|---|---|
committer | Chung-Ju Wu <jasonwucj@gcc.gnu.org> | 2013-04-10 09:12:30 +0000 |
commit | 34ab4a5b70675e801d0cd5a68b50e770d1fe864e (patch) | |
tree | 74c6d194cd2df933596856be52c93e6ba5e63003 /gcc/combine.c | |
parent | abf9bfbc31e7d9d8f0b189dd17b59f5e96006456 (diff) | |
download | gcc-34ab4a5b70675e801d0cd5a68b50e770d1fe864e.zip gcc-34ab4a5b70675e801d0cd5a68b50e770d1fe864e.tar.gz gcc-34ab4a5b70675e801d0cd5a68b50e770d1fe864e.tar.bz2 |
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 <jasonwucj@gmail.com>
* combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out
unnecessary bits in the constant power of two case.
From-SVN: r197666
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index feb6267..667b7b4 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; |