* combine.c (simplify_comparison, case AND): Remove a redundant
authorkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Jan 2003 17:45:16 +0000 (17:45 +0000)
committerkazu <kazu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 25 Jan 2003 17:45:16 +0000 (17:45 +0000)
test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61787 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/combine.c

index 942b37f..f8b02bd 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
+
+       * combine.c (simplify_comparison, case AND): Remove a redundant
+       test.
+
 2002-01-25  Roger Sayle  <roger@eyesopen.com>
 
        * function.h (struct function): New field calls_constant_p.
index 75a4e5f..d21daa0 100644 (file)
@@ -10908,6 +10908,12 @@ simplify_comparison (code, pop0, pop1)
             represents the low part, permute the SUBREG and the AND and
             try again.  */
          if (GET_CODE (XEXP (op0, 0)) == SUBREG
+             /* It is unsafe to commute the AND into the SUBREG if the SUBREG
+                is paradoxical and WORD_REGISTER_OPERATIONS is not defined.
+                As originally written the upper bits have a defined value
+                due to the AND operation.  However, if we commute the AND
+                inside the SUBREG then they no longer have defined values
+                and the meaning of the code has been changed.  */
              && (0
 #ifdef WORD_REGISTER_OPERATIONS
                  || ((mode_width
@@ -10919,16 +10925,6 @@ simplify_comparison (code, pop0, pop1)
                       <= (GET_MODE_BITSIZE
                           (GET_MODE (SUBREG_REG (XEXP (op0, 0))))))
                      && subreg_lowpart_p (XEXP (op0, 0))))
-#ifndef WORD_REGISTER_OPERATIONS
-             /* It is unsafe to commute the AND into the SUBREG if the SUBREG
-                is paradoxical and WORD_REGISTER_OPERATIONS is not defined.
-                As originally written the upper bits have a defined value
-                due to the AND operation.  However, if we commute the AND
-                inside the SUBREG then they no longer have defined values
-                and the meaning of the code has been changed.  */
-             && (GET_MODE_SIZE (GET_MODE (XEXP (op0, 0)))
-                 <= GET_MODE_SIZE (GET_MODE (SUBREG_REG (XEXP (op0, 0)))))
-#endif
              && GET_CODE (XEXP (op0, 1)) == CONST_INT
              && mode_width <= HOST_BITS_PER_WIDE_INT
              && (GET_MODE_BITSIZE (GET_MODE (SUBREG_REG (XEXP (op0, 0))))