re PR rtl-optimization/17151 (x >> (y % WORDSIZE) not optimized)
authorRoger Sayle <roger@eyesopen.com>
Sun, 26 Sep 2004 14:55:37 +0000 (14:55 +0000)
committerRoger Sayle <sayle@gcc.gnu.org>
Sun, 26 Sep 2004 14:55:37 +0000 (14:55 +0000)
PR middle-end/17151
* combine.c (force_to_mode): Remove dubious early return test that
inhibits further optimization.

From-SVN: r88129

gcc/ChangeLog
gcc/combine.c

index 700cabf84b2d679a4c6af985a54eb3a7c14288b6..af865b184776747b0941b56e94d7a589d8d0dfd9 100644 (file)
@@ -1,3 +1,9 @@
+2004-09-26  Roger Sayle  <roger@eyesopen.com>
+
+       PR middle-end/17151
+       * combine.c (force_to_mode): Remove dubious early return test that
+       inhibits further optimization.
+
 2004-09-26  Kazu Hirata  <kazu@cs.umass.edu>
 
        * profile.c: Fix a comment typo.
index f0b5b0698dd04c5274fbb3eadafc597e24097c93..ad5ec6483a3b5f9a78b3f365f0a02db78e98c098 100644 (file)
@@ -6904,11 +6904,6 @@ force_to_mode (rtx x, enum machine_mode mode, unsigned HOST_WIDE_INT mask,
       && (GET_MODE_MASK (GET_MODE (x)) & ~mask) == 0)
     return gen_lowpart (mode, x);
 
-  /* If we aren't changing the mode, X is not a SUBREG, and all zero bits in
-     MASK are already known to be zero in X, we need not do anything.  */
-  if (GET_MODE (x) == mode && code != SUBREG && (~mask & nonzero) == 0)
-    return x;
-
   switch (code)
     {
     case CLOBBER: