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:
parent
98843c9206
commit
505ac50770
@ -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.
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user