From patchwork Wed Sep 20 10:08:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "juzhe.zhong@rivai.ai" X-Patchwork-Id: 142320 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:612c:172:b0:3f2:4152:657d with SMTP id h50csp4017613vqi; Wed, 20 Sep 2023 03:09:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGpE0dl59D4GoBGkFU4fTKE/LhXRj8RqWEW35H+PBICIoIZHRzgMsjpv7G16oiR5K0pCj1E X-Received: by 2002:a17:906:24e:b0:9ae:4492:df47 with SMTP id 14-20020a170906024e00b009ae4492df47mr1681997ejl.54.1695204569924; Wed, 20 Sep 2023 03:09:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695204569; cv=none; d=google.com; s=arc-20160816; b=dGXDb2Z9kBRt2+1hAkDfLdL9kSbPpcsZ2/tsBpp2ogr3PNiUM6XF33qwlFoy+7mrYP woPqEs9p81OdLd/tRry0ZgircXwg7p9SGOFR4BZoice++FmOZS8tAKO88ObUCuMzYORg AM0sl81+xqPxJMxEA/fyE2Im/Tvt25uA+PhJe3yUYhaSWnzrdsq2qD96sTNmEP9JMgh/ iwUh1hRi9/A646fsAEcG/cSGebrThGokWJOoBhFBGCBo7w1OtHxH1+CZ7BM2kz/a6p6F mnyIVFQ8lO/lrcWWbPYuwZq/yGiIHO9pBJF/Kat2xJsAOSeQV4c6FQ3x/GRubZhS9OYN hvig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:feedback-id :content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dmarc-filter:delivered-to; bh=RuKCtXAhp3nCYNpjlnN5oDPeSzC9LuAXBVFPuZegSMA=; fh=12MRPJmZ1mgDpHqWoogMKqnaGRGM2b7lcuJroqfjJiw=; b=cm5ryJZuvNgE8RyTPSRaG3fy8xCWhPWX8VlGo6k5cDsjWPmuuNpnr6dNMAZi1/OpDW yDDtuvhUiCu5rmZJ5Y3HeM70PbJLgug1nlQi6d3dWyAKd+S2IEsqs1khW6q7fu0OjlGW bbGk4EWHuUWelinNOrvVS0bn1IQapcpdnhljDiT6Xrz702j1qhWI7c5eHRzIfIHWZP9p a0cfptdH363eR/A+UsONTElepPUHlyjm6RVe8NlM37nTWdSJJBRC37KqppXvEWZwDsD3 Yj8+iRNLcgW/QpE0xF74JOpsvva8tE/AngfJDXKWDUHm/YnkpAqHXDRPWgdWDFkaRHLt DHRQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id f6-20020a170906494600b00992e21b04aasi12513036ejt.720.2023.09.20.03.09.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Sep 2023 03:09:29 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 651253858428 for ; Wed, 20 Sep 2023 10:09:24 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbgbr1.qq.com (smtpbgbr1.qq.com [54.207.19.206]) by sourceware.org (Postfix) with ESMTPS id 351643858D20 for ; Wed, 20 Sep 2023 10:08:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 351643858D20 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: bizesmtp82t1695204530tm2js44f Received: from rios-cad122.hadoop.rioslab.org ( [58.60.1.26]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 20 Sep 2023 18:08:49 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: RrZlkntZBfmtZLkRVo5uBbzT6Z4mkCFZic1/EBPzsn8sRHD6Dj6OQRYzuyKGR oMdyp5ieGo+bPfHpx7tNw70p4Og+9f370HtNTq1U7X3vaREkjwQ2kxM0NdJv40zylNAY3c4 Wg1/rFv/qRWbCFSuX2PF2ZRqeO1NuoJH6tELRWzV6JPBUy0cy/YsD6OpwDMBF+bjWgm6GAB ouLSOyYHafete5xcB2cSjTS7/UpxaizsgG9gZbTpLnWqWyXtgyozzVCggirLw1cekJ34c2B AssDTq7v+gFqHGu2vIkH8rTdxlu+qizAvtn8yeReRPK1xPB2hpZbwJRShchTNLvreXYFD7H 9W8uajddXdLkoVz+ZRSbS+XKg8ArSx7oLATn5QdE8+5r1bODiOfNRBrKOhnkX0gIw68w7BY EusMm4VBSb0= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 11147585594750204197 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: kito.cheng@gmail.com, kito.cheng@sifive.com, jeffreyalaw@gmail.com, rdapp.gcc@gmail.com, Juzhe-Zhong Subject: [Committed] RISC-V: Fix Demand comparison bug[VSETVL PASS] Date: Wed, 20 Sep 2023 18:08:48 +0800 Message-Id: <20230920100848.3241806-1-juzhe.zhong@rivai.ai> X-Mailer: git-send-email 2.36.3 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:rivai.ai:qybglogicsvrgz:qybglogicsvrgz7a-one-0 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_PASS, SPF_PASS, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1777550826896324614 X-GMAIL-MSGID: 1777550826896324614 This bug is exposed when we support VLS integer conversion patterns. FAIL: c-c++-common/torture/pr53505.c execution. This is because incorrect vsetvl elimination by Phase 4: 10318: 0d207057 vsetvli zero,zero,e32,m4,ta,ma 1031c: 5e003e57 vmv.v.i v28,0 .....: ........ missed e8,m1 vsetvl 10320: 7b07b057 vmsgtu.vi v0,v16,15 10324: 03083157 vadd.vi v2,v16,-16 Regression on release version GCC no surprise difference. Committed. gcc/ChangeLog: * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Fix bug. --- gcc/config/riscv/riscv-vsetvl.cc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index df980b6770e..e0f61148ef3 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -1799,10 +1799,11 @@ vector_insn_info::operator== (const vector_insn_info &other) const if (m_demands[i] != other.demand_p ((enum demand_type) i)) return false; - if (vector_config_insn_p (m_insn->rtl ()) - || vector_config_insn_p (other.get_insn ()->rtl ())) - if (m_insn != other.get_insn ()) - return false; + /* We should consider different INSN demands as different + expression. Otherwise, we will be doing incorrect vsetvl + elimination. */ + if (m_insn != other.get_insn ()) + return false; if (!same_avl_p (other)) return false;