From 2aca2504814648927ab560f75e564b69835e0514 Mon Sep 17 00:00:00 2001 From: Kyrylo Tkachov Date: Fri, 27 May 2016 08:42:01 +0000 Subject: [PATCH] [AArch64] Delete obsolete CC_ZESWP and CC_SESWP CC modes * 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 | 9 +++++++++ gcc/config/aarch64/aarch64-modes.def | 2 -- gcc/config/aarch64/aarch64.c | 14 -------------- 3 files changed, 9 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ab5d2e92662..fd03e8c4e60 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2016-05-27 Kyrylo Tkachov + + * 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 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function diff --git a/gcc/config/aarch64/aarch64-modes.def b/gcc/config/aarch64/aarch64-modes.def index 7de0b3f2fec..de8227f0ce4 100644 --- a/gcc/config/aarch64/aarch64-modes.def +++ b/gcc/config/aarch64/aarch64-modes.def @@ -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. */ diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 84dcb0be869..51d2d509600 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -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) -- 2.30.2