[combine] Check WORD_REGISTER_OPERATIONS normally rather than through preprocessor
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Dec 2015 10:42:47 +0000 (10:42 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Dec 2015 10:42:47 +0000 (10:42 +0000)
* combine.c (simplify_comparison): Convert preprocessor check of
WORD_REGISTER_OPERATIONS into runtime check.

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

gcc/ChangeLog
gcc/combine.c

index da6b923..b314c1a 100644 (file)
@@ -1,3 +1,8 @@
+2015-12-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * combine.c (simplify_comparison): Convert preprocessor check of
+       WORD_REGISTER_OPERATIONS into runtime check.
+
 2015-12-22  Eric Botcazou  <ebotcazou@adacore.com>
 
        PR debug/60756
index 317a4b0..a29ae7b 100644 (file)
@@ -11437,10 +11437,10 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
   /* Try a few ways of applying the same transformation to both operands.  */
   while (1)
     {
-#if !WORD_REGISTER_OPERATIONS
       /* The test below this one won't handle SIGN_EXTENDs on these machines,
         so check specially.  */
-      if (code != GTU && code != GEU && code != LTU && code != LEU
+      if (!WORD_REGISTER_OPERATIONS
+         && code != GTU && code != GEU && code != LTU && code != LEU
          && GET_CODE (op0) == ASHIFTRT && GET_CODE (op1) == ASHIFTRT
          && GET_CODE (XEXP (op0, 0)) == ASHIFT
          && GET_CODE (XEXP (op1, 0)) == ASHIFT
@@ -11460,7 +11460,6 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1)
          op0 = SUBREG_REG (XEXP (XEXP (op0, 0), 0));
          op1 = SUBREG_REG (XEXP (XEXP (op1, 0), 0));
        }
-#endif
 
       /* If both operands are the same constant shift, see if we can ignore the
         shift.  We can if the shift is a rotate or if the bits shifted out of