From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbguseast3.qq.com (smtpbguseast3.qq.com [54.243.244.52]) by sourceware.org (Postfix) with ESMTPS id EC0D038555A4 for ; Fri, 16 Jun 2023 07:59:23 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EC0D038555A4 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivai.ai Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivai.ai X-QQ-mid: bizesmtp80t1686902358tjjli48x Received: from rios-cad5.localdomain ( [58.60.1.11]) by bizesmtp.qq.com (ESMTP) with id ; Fri, 16 Jun 2023 15:59:17 +0800 (CST) X-QQ-SSF: 01400000000000G0S000000A0000000 X-QQ-FEAT: 0vfWcIgh24xJABm9rONXQ2v8xvS7vew/VXx0j77XXG1XSLXKMLZeKQSqQ336t WoDQ+NsfDRGzukvxyMetOazqBCALm1r5IrgfrFE1RvaVpbK/eqxa7tyJBUBnAnsZlPxQG2r uVzQ+qebwOTWUbRnj0yN3nMluTJ62Gjt1nrH4v9gBPre7DxLCiOGswkxuICZSE+jjQi/Gk3 6fPkw5IySK/kO1WvYv45AN+QkkwXoXJRY/Ro3Icibs9Ws66nWdDApJ+GitG1ynkFq1wozOn VRnlZ3R/qExhXGTOvbEcL9GB/BqaoolIOcxQpONVOT2R61PNc2jeQ75FwPGnPg25BtQBxW6 c46mJUxWwnTnX2qaSb5HBVfz7rKLCBL2eFp8xjGQak0Q18VAs2hqWIj2q8hmL+DN3kjelfI cwa/8E0nBk0= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 12072532553525370467 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, palmer@dabbelt.com, palmer@rivosinc.com, jeffreyalaw@gmail.com, rdapp.gcc@gmail.com, Juzhe-Zhong Subject: [PATCH] RISC-V: Fix PR 110264 Date: Fri, 16 Jun 2023 15:59:16 +0800 Message-Id: <20230616075916.141968-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,KAM_NUMSUBJECT,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE 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 patch fixes this issue happens on both GCC-13 and GCC-14. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110264 The testcase is too big and I failed to reduce it so I didn't append test into this patch. This patch should not only land into GCC-14 but also should backport to GCC-13. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (insert_vsetvl): Fix bug. --- gcc/config/riscv/riscv-vsetvl.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index cae9be0d928..42cc6f29f26 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -744,7 +744,10 @@ insert_vsetvl (enum emit_type emit_type, rtx_insn *rinsn, if (vlmax_avl_p (info.get_avl ())) { gcc_assert (has_vtype_op (rinsn) || vsetvl_insn_p (rinsn)); - rtx vl_op = info.get_avl_reg_rtx (); + /* For user vsetvli a5, zero, we should use get_vl to get the VL + operand "a5". */ + rtx vl_op + = vsetvl_insn_p (rinsn) ? get_vl (rinsn) : info.get_avl_reg_rtx (); gcc_assert (!vlmax_avl_p (vl_op)); emit_vsetvl_insn (VSETVL_NORMAL, emit_type, info, vl_op, rinsn); return VSETVL_NORMAL; -- 2.36.3