From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by sourceware.org (Postfix) with ESMTPS id A9D9C385702E for ; Tue, 25 Oct 2022 16:29:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A9D9C385702E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=kernel.crashing.org Authentication-Results: sourceware.org; spf=none smtp.mailfrom=gcc135.osuosl.org Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id 5C1444026F; Tue, 25 Oct 2022 16:29:30 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 5C1444026F X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id oUbDm_HwGuSL; Tue, 25 Oct 2022 16:29:29 +0000 (UTC) Received: from gcc135.osuosl.org (gcc135.osuosl.org [140.211.9.83]) by smtp2.osuosl.org (Postfix) with ESMTP id 294CC40018; Tue, 25 Oct 2022 16:29:29 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 294CC40018 Received: by gcc135.osuosl.org (Postfix, from userid 61019) id 152782004B8; Tue, 25 Oct 2022 16:29:29 +0000 (UTC) From: Segher Boessenkool To: gcc-patches@gcc.gnu.org Cc: dje.gcc@gmail.com, "Kewen.Lin" , Segher Boessenkool Subject: [PATCH] rs6000: Add CCANY; replace signed by Date: Tue, 25 Oct 2022 16:29:21 +0000 Message-Id: X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00,GIT_PATCH_0,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is in preparation for adding CCFP, and maybe CCEQ, and whatever other CC mode we may want later. CCANY is used for CC mode consumers that actually can take any of the four CR field bits. Tested on p7 and p9; committing, Segher 2022-10-25 Segher Boessenkool * config/rs6000/rs6000.md (CCEITHER): Delete. (CCANY): New. (un): Delete. (isel_signed_): Rename to... (isel__): ... this. Adjust. (*isel_reversed_signed_): Rename to... (*isel_reversed__): ... this. Adjust. (setbc_signed_): Rename to... (setbc__C): ... this. Adjust." (*setbcr_signed_): Rename to ... (*setbcr__): ... this. Adjust. (*setnbc_signed_): Rename to ... (*setnbc__): ... this. Adjust. (*setnbcr_signed_): Rename to ... (*setnbcr__): ... this. Adjust. (eq3 for GPR): Adjust. (ne3 for GPR): Adjust. * config/rs6000/rs6000-string.cc (do_isel): Adjust. * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Adjust. --- gcc/config/rs6000/rs6000-string.cc | 4 ++-- gcc/config/rs6000/rs6000.cc | 4 ++-- gcc/config/rs6000/rs6000.md | 31 +++++++++++++++---------------- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/gcc/config/rs6000/rs6000-string.cc b/gcc/config/rs6000/rs6000-string.cc index 59d901a..cd8ee8c 100644 --- a/gcc/config/rs6000/rs6000-string.cc +++ b/gcc/config/rs6000/rs6000-string.cc @@ -414,9 +414,9 @@ static void do_isel (rtx dest, rtx cmp, rtx src_t, rtx src_f, rtx cr) { if (GET_MODE (dest) == DImode) - emit_insn (gen_isel_signed_di (dest, cmp, src_t, src_f, cr)); + emit_insn (gen_isel_cc_di (dest, cmp, src_t, src_f, cr)); else - emit_insn (gen_isel_signed_si (dest, cmp, src_t, src_f, cr)); + emit_insn (gen_isel_cc_si (dest, cmp, src_t, src_f, cr)); } /* Emit a subtract of the proper mode for DEST. diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index d2743f7..01e5bbc 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -16341,8 +16341,8 @@ rs6000_emit_int_cmove (rtx dest, rtx op, rtx true_cond, rtx false_cond) signedp = GET_MODE (cr) == CCmode; isel_func = (mode == SImode - ? (signedp ? gen_isel_signed_si : gen_isel_unsigned_si) - : (signedp ? gen_isel_signed_di : gen_isel_unsigned_di)); + ? (signedp ? gen_isel_cc_si : gen_isel_ccuns_si) + : (signedp ? gen_isel_cc_di : gen_isel_ccuns_di)); switch (cond_code) { diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index ad5a4cf..3bae303 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -5428,13 +5428,12 @@ (define_expand "movcc" ;; leave out the mode in operand 4 and use one pattern, but reload can ;; change the mode underneath our feet and then gets confused trying ;; to reload the value. -(define_mode_iterator CCEITHER [CC CCUNS]) -(define_mode_attr un [(CC "") (CCUNS "un")]) -(define_insn "isel_signed_" +(define_mode_iterator CCANY [CC CCUNS]) +(define_insn "isel__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r,r") (if_then_else:GPR (match_operator 1 "scc_comparison_operator" - [(match_operand:CCEITHER 4 "cc_reg_operand" "y,y") + [(match_operand:CCANY 4 "cc_reg_operand" "y,y") (const_int 0)]) (match_operand:GPR 2 "reg_or_zero_operand" "O,b") (match_operand:GPR 3 "gpc_reg_operand" "r,r")))] @@ -5446,11 +5445,11 @@ (define_insn "isel_signed_" ;; isel can handle reversed comparisons so long as the operands are ;; registers. -(define_insn "*isel_reversed_signed_" +(define_insn "*isel_reversed__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r,r") (if_then_else:GPR (match_operator 1 "scc_rev_comparison_operator" - [(match_operand:CCEITHER 4 "cc_reg_operand" "y,y") + [(match_operand:CCANY 4 "cc_reg_operand" "y,y") (const_int 0)]) (match_operand:GPR 2 "gpc_reg_operand" "r,r") (match_operand:GPR 3 "reg_or_zero_operand" "O,b")))] @@ -5462,38 +5461,38 @@ (define_insn "*isel_reversed_signed_" [(set_attr "type" "isel")]) ; Set Boolean Condition (Reverse) -(define_insn "setbc_signed_" +(define_insn "setbc__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (match_operator:GPR 1 "scc_comparison_operator" - [(match_operand:CCEITHER 2 "cc_reg_operand" "y") + [(match_operand:CCANY 2 "cc_reg_operand" "y") (const_int 0)]))] "TARGET_POWER10" "setbc %0,%j1" [(set_attr "type" "isel")]) -(define_insn "*setbcr_signed_" +(define_insn "*setbcr__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (match_operator:GPR 1 "scc_rev_comparison_operator" - [(match_operand:CCEITHER 2 "cc_reg_operand" "y") + [(match_operand:CCANY 2 "cc_reg_operand" "y") (const_int 0)]))] "TARGET_POWER10" "setbcr %0,%j1" [(set_attr "type" "isel")]) ; Set Negative Boolean Condition (Reverse) -(define_insn "*setnbc_signed_" +(define_insn "*setnbc__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (neg:GPR (match_operator:GPR 1 "scc_comparison_operator" - [(match_operand:CCEITHER 2 "cc_reg_operand" "y") + [(match_operand:CCANY 2 "cc_reg_operand" "y") (const_int 0)])))] "TARGET_POWER10" "setnbc %0,%j1" [(set_attr "type" "isel")]) -(define_insn "*setnbcr_signed_" +(define_insn "*setnbcr__" [(set (match_operand:GPR 0 "gpc_reg_operand" "=r") (neg:GPR (match_operator:GPR 1 "scc_rev_comparison_operator" - [(match_operand:CCEITHER 2 "cc_reg_operand" "y") + [(match_operand:CCANY 2 "cc_reg_operand" "y") (const_int 0)])))] "TARGET_POWER10" "setnbcr %0,%j1" @@ -12644,7 +12643,7 @@ (define_expand "eq3" rtx compare = gen_rtx_COMPARE (CCmode, operands[1], operands[2]); emit_insn (gen_rtx_SET (cc, compare)); rtx eq = gen_rtx_fmt_ee (EQ, mode, cc, const0_rtx); - emit_insn (gen_setbc_signed_ (operands[0], eq, cc)); + emit_insn (gen_setbc_cc_ (operands[0], eq, cc)); DONE; } @@ -12700,7 +12699,7 @@ (define_expand "ne3" rtx compare = gen_rtx_COMPARE (CCmode, operands[1], operands[2]); emit_insn (gen_rtx_SET (cc, compare)); rtx ne = gen_rtx_fmt_ee (NE, mode, cc, const0_rtx); - emit_insn (gen_setbc_signed_ (operands[0], ne, cc)); + emit_insn (gen_setbc_cc_ (operands[0], ne, cc)); DONE; } -- 1.8.3.1