From fc06d7aaee369e5d8847640c7fc2b16c98a0dc68 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sun, 31 Jan 1993 17:44:48 -0500 Subject: [PATCH] (simplify_and_const_int): Never consider bits outside of MODE. From-SVN: r3398 --- gcc/combine.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/combine.c b/gcc/combine.c index 8be5a05..1bf0405 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -5899,8 +5899,11 @@ simplify_and_const_int (x, mode, varop, constop) if (GET_CODE (varop) == CONST_INT) return GEN_INT (constop & INTVAL (varop)); - /* See what bits may be nonzero in VAROP. */ - nonzero = nonzero_bits (varop, mode); + /* See what bits may be nonzero in VAROP. Unlike the general case of + a call to nonzero_bits, here we don't care about bits outside + MODE. */ + + nonzero = nonzero_bits (varop, mode) & GET_MODE_MASK (mode); /* Turn off all bits in the constant that are known to already be zero. Thus, if the AND isn't needed at all, we will have CONSTOP == NONZERO_BITS -- 2.7.4