[combine] Check WORD_REGISTER_OPERATIONS normally rather than through preprocessor
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 22 Dec 2015 10:42:47 +0000 (10:42 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
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.

From-SVN: r231899

gcc/ChangeLog
gcc/combine.c

index da6b92345d73f5241ecca4acf3a168f890be9519..b314c1aeab2f47e18ed4d57a922fd99e91b559e8 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 317a4b0e12a60756694276858a4c1c24cc9d370f..a29ae7b5b4649315554ad85734c70ec022c89571 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