From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) by sourceware.org (Postfix) with ESMTPS id 397C23858D1E for ; Sun, 10 Sep 2023 03:55:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 397C23858D1E 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: bizesmtp77t1694318140t6bpuqqk Received: from rios-cad122.hadoop.rioslab.org ( [58.60.1.26]) by bizesmtp.qq.com (ESMTP) with id ; Sun, 10 Sep 2023 11:55:39 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: LE7C6P2vL8QN6uXsi6vOsUpmTwenRZ4IRcSv46kUAV8GOvvFXPcyAZ2P98P+T Fsw83HNIfaIyyqKNWGriAU1s6xR9iJnZOCjympwbX6KJ0KtR81dy06SLVuy1TOxP3woZEra /V61+p6hlsWiv6rAgD+DXBb7RYja1xhMEef8LZ4nn3khuU7TK5qSZvXS7X9tcmkK/LIfZqB icLd83i0cysmPbP/CCRreWbT8rn1Zw/4gso088oHWTeav3n/uofW7Xozqk5/qgqx33t7g7g C3jkDrr565l+cVsBTUQcwanmEunbfIspmmGBP1JzdB+N8f0FxJAQwmvsRTRRlbCMDgY4052 GmCkwdFL7Yhyt6Ws0ztE7U47IBTB+u4G/4lR0vOZWgv6o1sLdNNusgn8AK5CPaH/7WLr9YF X-QQ-GoodBg: 2 X-BIZMAIL-ID: 9717630236521583121 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: [PATCH] RISC-V: Avoid unnecessary slideup in compress pattern of vec_perm Date: Sun, 10 Sep 2023 11:55:38 +0800 Message-Id: <20230910035538.2034153-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=-10.3 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,RCVD_IN_BARRACUDACENTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,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 List-Id: If a const vector all elements are same, the slide up is unnecessary. gcc/ChangeLog: * config/riscv/riscv-v.cc (shuffle_compress_patterns): Avoid unnecessary slideup. --- gcc/config/riscv/riscv-v.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index bee60de1d26..7ef884907b8 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2697,7 +2697,7 @@ shuffle_compress_patterns (struct expand_vec_perm_d *d) rtx mask = force_reg (mask_mode, builder.build ()); rtx merge = d->op1; - if (need_slideup_p) + if (need_slideup_p && !const_vec_duplicate_p (d->op1)) { int slideup_cnt = vlen - (d->perm[vlen - 1].to_constant () % vlen) - 1; rtx ops[] = {d->target, d->op1, gen_int_mode (slideup_cnt, Pmode)}; -- 2.36.3