+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
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. */
&& 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
break;
case CC_SWPmode:
- case CC_ZESWPmode:
- case CC_SESWPmode:
switch (comp_code)
{
case NE: return AARCH64_NE;
/* 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)