From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2119) id E614B3858D37; Wed, 22 Nov 2023 05:09:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E614B3858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1700629762; bh=w1CwFA8u1xIL0YJOkM9hrhAro2YeB7+xlvdI/2hlINw=; h=From:To:Subject:Date:From; b=uFO69HgXldesv5SwHe9/lG8B6z0WjrvQGgh6gjUNVnvoDXc1ofbIRM8oFLNNZOHkM cbrblnPlCOI95XAvrtLSQMBjRUZkRnrQTN3F7bTlZZJRRV/usMgeYcGVpMDpMfs5Jn IF6dh1XGwmN8Chhjhaej6ANLQBMjAsOb+AobQ8rk= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jeff Law To: gcc-cvs@gcc.gnu.org Subject: [gcc(refs/vendors/riscv/heads/gcc-13-with-riscv-opts)] RISC-V: Avoid repeated GET_MODE calls in `riscv_expand_conditional_move' X-Act-Checkin: gcc X-Git-Author: Maciej W. Rozycki X-Git-Refname: refs/vendors/riscv/heads/gcc-13-with-riscv-opts X-Git-Oldrev: b348a0aba90a3d03167392f7f8c0a9142be517a7 X-Git-Newrev: e75ca7015faf348b25b180168617dd2bef78cfc9 Message-Id: <20231122050922.E614B3858D37@sourceware.org> Date: Wed, 22 Nov 2023 05:09:22 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e75ca7015faf348b25b180168617dd2bef78cfc9 commit e75ca7015faf348b25b180168617dd2bef78cfc9 Author: Maciej W. Rozycki Date: Wed Nov 22 01:18:24 2023 +0000 RISC-V: Avoid repeated GET_MODE calls in `riscv_expand_conditional_move' Use `mode0' and `mode1' shorthands respectively for `GET_MODE (op0)' and `GET_MODE (op1)' to improve code readability. gcc/ * config/riscv/riscv.cc (riscv_expand_conditional_move): Use `mode0' and `mode1' for `GET_MODE (op0)' and `GET_MODE (op1)'. (cherry picked from commit 00a3bd4ccae4f7a7fd1d76db325808129208986b) Diff: --- gcc/config/riscv/riscv.cc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index d37ffb307c7..c8d3904fe3b 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -4036,12 +4036,15 @@ riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt) else if (TARGET_ZICOND_LIKE && GET_MODE_CLASS (mode) == MODE_INT) { + machine_mode mode0 = GET_MODE (op0); + machine_mode mode1 = GET_MODE (op1); + /* The comparison must be comparing WORD_MODE objects. We must enforce that so that we don't strip away a sign_extension thinking it is unnecessary. We might consider using riscv_extend_operands if they are not already properly extended. */ - if ((GET_MODE (op0) != word_mode && GET_MODE (op0) != VOIDmode) - || (GET_MODE (op1) != word_mode && GET_MODE (op1) != VOIDmode)) + if ((mode0 != word_mode && mode0 != VOIDmode) + || (mode1 != word_mode && mode1 != VOIDmode)) return false; /* Canonicalize the comparison. It must be an equality comparison @@ -4061,9 +4064,9 @@ riscv_expand_conditional_move (rtx dest, rtx op, rtx cons, rtx alt) rtx tmp = gen_reg_rtx (word_mode); /* We can support both FP and integer conditional moves. */ - if (INTEGRAL_MODE_P (GET_MODE (XEXP (op, 0)))) + if (INTEGRAL_MODE_P (mode0)) riscv_expand_int_scc (tmp, code, op0, op1, invert_ptr); - else if (FLOAT_MODE_P (GET_MODE (XEXP (op, 0))) + else if (FLOAT_MODE_P (mode0) && fp_scc_comparison (op, GET_MODE (op))) riscv_expand_float_scc (tmp, code, op0, op1); else