+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.
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;