Commit 505ac507 by Richard Henderson Committed by Richard Henderson

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
parent 98843c92
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> 2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
* config/rs6000/rs6000.md (setmemsi): Fix operand 2. * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
......
...@@ -3657,12 +3657,14 @@ nonzero_bits1 (rtx x, enum machine_mode mode, rtx known_x, ...@@ -3657,12 +3657,14 @@ nonzero_bits1 (rtx x, enum machine_mode mode, rtx known_x,
case GE: case GEU: case UNGE: case GE: case GEU: case UNGE:
case LE: case LEU: case UNLE: case LE: case LEU: case UNLE:
case UNORDERED: case ORDERED: case UNORDERED: case ORDERED:
/* If this produces an integer result, we know which bits are set. /* 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 Code here used to clear bits outside the mode of X, but that is
now done above. */ now done above. */
/* Mind that MODE is the mode the caller wants to look at this
if (GET_MODE_CLASS (mode) == MODE_INT 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) && mode_width <= HOST_BITS_PER_WIDE_INT)
nonzero = STORE_FLAG_VALUE; nonzero = STORE_FLAG_VALUE;
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment