rtlanal.c (nonzero_bits1): Use the mode of the value for determining integral-ness for comparisons.

* rtlanal.c (nonzero_bits1): Use the mode of the value for
        determining integral-ness for comparisons.

From-SVN: r101395
This commit is contained in:
Richard Henderson 2005-06-28 15:24:12 -07:00 committed by Richard Henderson
parent 98843c9206
commit 505ac50770
2 changed files with 10 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2005-06-28 Richard Henderson <rth@redhat.com>
* rtlanal.c (nonzero_bits1): Use the mode of the value for
determining integral-ness for comparisons.
2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (setmemsi): Fix operand 2.

View File

@ -3657,12 +3657,14 @@ nonzero_bits1 (rtx x, enum machine_mode mode, rtx known_x,
case GE: case GEU: case UNGE:
case LE: case LEU: case UNLE:
case UNORDERED: case ORDERED:
/* If this produces an integer result, we know which bits are set.
Code here used to clear bits outside the mode of X, but that is
now done above. */
if (GET_MODE_CLASS (mode) == MODE_INT
/* Mind that MODE is the mode the caller wants to look at this
operation in, and not the actual operation mode. We can wind
up with (subreg:DI (gt:V4HI x y)), and we don't have anything
that describes the results of a vector compare. */
if (GET_MODE_CLASS (GET_MODE (x)) == MODE_INT
&& mode_width <= HOST_BITS_PER_WIDE_INT)
nonzero = STORE_FLAG_VALUE;
break;