[AArch64] Delete obsolete CC_ZESWP and CC_SESWP CC modes
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Fri, 27 May 2016 08:42:01 +0000 (08:42 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Fri, 27 May 2016 08:42:01 +0000 (08:42 +0000)
* config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
that returns CC_SESWPmode and CC_ZESWPmode.
(aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
and CC_SESWPmode.
(aarch64_rtx_costs): Likewise.

From-SVN: r236809

gcc/ChangeLog
gcc/config/aarch64/aarch64-modes.def
gcc/config/aarch64/aarch64.c

index ab5d2e9266253397b8ab652d08766d6f10902a3a..fd03e8c4e60625f9faf20fd24f32caccc3f6a841 100644 (file)
@@ -1,3 +1,12 @@
+2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
+
+       * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
+       * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
+       that returns CC_SESWPmode and CC_ZESWPmode.
+       (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
+       and CC_SESWPmode.
+       (aarch64_rtx_costs): Likewise.
+
 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
index 7de0b3f2fec1024946e40c66088b5b48675c4b7a..de8227f0ce47f4268761047d4e7bc46627c34bc7 100644 (file)
@@ -21,8 +21,6 @@
 CC_MODE (CCFP);
 CC_MODE (CCFPE);
 CC_MODE (CC_SWP);
-CC_MODE (CC_ZESWP); /* zero-extend LHS (but swap to make it RHS).  */
-CC_MODE (CC_SESWP); /* sign-extend LHS (but swap to make it RHS).  */
 CC_MODE (CC_NZ);    /* Only N and Z bits of condition flags are valid.  */
 CC_MODE (CC_Z);     /* Only Z bit of condition flags is valid.  */
 CC_MODE (CC_C);     /* Only C bit of condition flags is valid.  */
index 84dcb0be8698cc59616df8c879bf6468d8883a96..51d2d50960078e079ed0f9c02751b2be74377dd8 100644 (file)
@@ -4227,14 +4227,6 @@ aarch64_select_cc_mode (RTX_CODE code, rtx x, rtx y)
       && GET_CODE (x) == NEG)
     return CC_Zmode;
 
-  /* A compare of a mode narrower than SI mode against zero can be done
-     by extending the value in the comparison.  */
-  if ((GET_MODE (x) == QImode || GET_MODE (x) == HImode)
-      && y == const0_rtx)
-    /* Only use sign-extension if we really need it.  */
-    return ((code == GT || code == GE || code == LE || code == LT)
-           ? CC_SESWPmode : CC_ZESWPmode);
-
   /* A test for unsigned overflow.  */
   if ((GET_MODE (x) == DImode || GET_MODE (x) == TImode)
       && code == NE
@@ -4303,8 +4295,6 @@ aarch64_get_condition_code_1 (enum machine_mode mode, enum rtx_code comp_code)
       break;
 
     case CC_SWPmode:
-    case CC_ZESWPmode:
-    case CC_SESWPmode:
       switch (comp_code)
        {
        case NE: return AARCH64_NE;
@@ -6292,10 +6282,6 @@ aarch64_rtx_costs (rtx x, machine_mode mode, int outer ATTRIBUTE_UNUSED,
           /* TODO: A write to the CC flags possibly costs extra, this
             needs encoding in the cost tables.  */
 
-          /* CC_ZESWPmode supports zero extend for free.  */
-          if (mode == CC_ZESWPmode && GET_CODE (op0) == ZERO_EXTEND)
-            op0 = XEXP (op0, 0);
-
          mode = GET_MODE (op0);
           /* ANDS.  */
           if (GET_CODE (op0) == AND)