From patchwork Sat Jan 6 08:54:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: chenglulu X-Patchwork-Id: 185622 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:37c1:b0:101:2151:f287 with SMTP id y1csp14813dyq; Sat, 6 Jan 2024 00:55:34 -0800 (PST) X-Google-Smtp-Source: AGHT+IFAADHTXBYaDuov977NvuQjx5OEQG32MfitvUTt77oKwIwRjwVJhBbJgQsS1eEV0Zyyau45 X-Received: by 2002:a05:620a:10b4:b0:781:15ef:69d7 with SMTP id h20-20020a05620a10b400b0078115ef69d7mr801329qkk.74.1704531334244; Sat, 06 Jan 2024 00:55:34 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1704531334; cv=pass; d=google.com; s=arc-20160816; b=h/RRuIn28noITt3EG9D+sxse0tlBstKqwymb3t0WuISwuADQ0oXp0nCUXuo0K5JEz8 9BQQ105gM4Rh15lk2isvped3xBuNvD6UCngJLlYoFCnjkpmrS5s3ztoIqh6K8seQV7tq NeXOUkXZA7czKCNiaoSbUUNENSg2pEZtTAsRiaQvtZmM2yorC/pFXRqPr4FZHKsvavJj 7IJq3S/ETKrCyCG4FdwILgkQgvv/sT+MnzmcrZ8OmbvfYo/EAPNYrBTKv2Hwdja/mFLJ BnFjkH2YGJlljnBswxwTpnHNBr/PXOaSpouq/dX34lfNan+qSS21NhQl8DHokrinRtUL fDqA== ARC-Message-Signature: i=2; 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:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:arc-filter:dmarc-filter:delivered-to; bh=Q7aWuO3Y2b3K3PnacGruPV9lQLbKVdyInDViyVwAaOU=; fh=VnTXG5Jo7DuQ1l+4wGnQIXMF5AJakZMe8j3+f/oPO4o=; b=SrxHrCahfWIhEBC7F3zlzX40+4VK8zg/oYdrZ+rlDrPaGg0mqmSf02LA/QTpOm9zff FbjqAYJidsFs+r2EdEWMJ1Z0/D27YDqkBHA1Aa69jYaIC613O3nfi0i05Vvm9KW22lIL kFZx2Uf7J9tcmnHuMXdA1aPDTFN0CoI1bawPAvazeTgjlW/ZXuZ5gkXy4LeReOGqAnUV uQcHzE5acpku3up6ql3m7pJRz8QNNNX30EnTO0SFACd9m80tOWvt6Sx95XC4pJ2uN3eB 0z0coDhknEPRDPebqdN7vAP/xSdLynP9l9qdQ5ZoFhxGZTif/ULQCWK5eddqzmc6mPYs h0KQ== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id h3-20020a37c443000000b00781ebb79d6bsi3332031qkm.169.2024.01.06.00.55.34 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 06 Jan 2024 00:55:34 -0800 (PST) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c 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 E5879385829D for ; Sat, 6 Jan 2024 08:55:33 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id B30803858D32 for ; Sat, 6 Jan 2024 08:54:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B30803858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org B30803858D32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704531277; cv=none; b=MP2iCn5063WqOLCjPos7BoXuGcWTOL6SedVAelLrLENeItV5aqtxhWDStaS/WxEPXRQ5LAyHjDlWK1do40zl+YUSfjDk9lpagrGm8bqrfw2Anvx5vctlt2MxnZAk5R6w8OiyMPs9kHm5Mg+/bFMmrnlYrIFvepsepqic/geYkQU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1704531277; c=relaxed/simple; bh=w5JZRkB5Rp6J1PdiIZo6bZ0SGuL1WReQYoYbMmYktY0=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=Cj0R8ya4T+uuNArkhrbxXHwQ2z4jTx8MvjT94ySdg/9YACZ8b63CjyYZ2rcEkD2pFfDiXkwwhtg333H3uLLTvPPEaNoFZXD6PPIvk87AnmAd7RpwlegbXnBfKrBpmoSdfEUaLVBB1ab7uUQwDMFmGyEn6jqtS0KIffwFqVyWj7E= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from mail.loongson.cn ([114.242.206.163]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rM2Ro-0004CX-Af for gcc-patches@gcc.gnu.org; Sat, 06 Jan 2024 03:54:30 -0500 Received: from loongson.cn (unknown [10.20.4.107]) by gateway (Coremail) with SMTP id _____8BxWepBFZllppgCAA--.861S3; Sat, 06 Jan 2024 16:54:25 +0800 (CST) Received: from loongson-pc.loongson.cn (unknown [10.20.4.107]) by localhost.localdomain (Coremail) with SMTP id AQAAf8BxK9w2FZllcWgEAA--.11725S4; Sat, 06 Jan 2024 16:54:24 +0800 (CST) From: Lulu Cheng To: gcc-patches@gcc.gnu.org Cc: xry111@xry111.site, i@xen0n.name, xuchenghua@loongson.cn, chenglulu@loongson.cn, liwei Subject: [PATCH 3/3] LoongArch: Redundant sign extension elimination optimization 2. Date: Sat, 6 Jan 2024 16:54:09 +0800 Message-Id: <20240106085409.25985-3-chenglulu@loongson.cn> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20240106085409.25985-1-chenglulu@loongson.cn> References: <20240106085409.25985-1-chenglulu@loongson.cn> MIME-Version: 1.0 X-CM-TRANSID: AQAAf8BxK9w2FZllcWgEAA--.11725S4 X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Coremail-Antispam: 1Uk129KBj93XoW7Cw15Zr48Zr13Ary8Xr4xuFX_yoW8AFy7p3 9ruwnrtr48GF97JF1vq34rGr13GrnrG39Iv3ZxJryIkw47JryjvF1rtFZIqF45tayFqrWS qr1ru3W5X3WjgwbCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUv2b4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r106r15M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Gr0_Xr1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr0_Cr1l84ACjcxK6I8E87Iv67AKxVWxJVW8Jr1l84ACjcxK6I8E87Iv6xkF7I0E14v2 6r4j6r4UJwAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc 02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUtVWrXwAv7VC2z280aVAF wI0_Gr0_Cr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JMxAIw28IcxkI7V AKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMxCIbckI1I0E14v26r1Y6r17MI8I3I0E5I8C rVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtw CIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1I6r4UMIIF0xvE2Ix0cI8IcVCY1x02 67AKxVWUJVW8JwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_Gr 0_Cr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU8QJ 57UUUUU== Received-SPF: pass client-ip=114.242.206.163; envelope-from=chenglulu@loongson.cn; helo=mail.loongson.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Status: No, score=-13.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, SPF_FAIL, SPF_HELO_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 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: 1787330648406658841 X-GMAIL-MSGID: 1787330648406658841 From: liwei Eliminate the redundant sign extension that exists after the conditional move when the target register is SImode. gcc/ChangeLog: * config/loongarch/loongarch.cc (loongarch_expand_conditional_move): Adjust. gcc/testsuite/ChangeLog: * gcc.target/loongarch/sign-extend-2.c: Adjust. --- gcc/config/loongarch/loongarch.cc | 2 ++ gcc/testsuite/gcc.target/loongarch/sign-extend-2.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc index ec376a7228a..4b757b30b64 100644 --- a/gcc/config/loongarch/loongarch.cc +++ b/gcc/config/loongarch/loongarch.cc @@ -5371,6 +5371,8 @@ loongarch_expand_conditional_move (rtx *operands) rtx temp3 = gen_reg_rtx (mode); emit_insn (gen_rtx_SET (temp3, gen_rtx_IOR (mode, temp, temp2))); temp3 = gen_lowpart (GET_MODE (operands[0]), temp3); + SUBREG_PROMOTED_VAR_P (temp3) = 1; + SUBREG_PROMOTED_SET (temp3, SRP_SIGNED); loongarch_emit_move (operands[0], temp3); } else diff --git a/gcc/testsuite/gcc.target/loongarch/sign-extend-2.c b/gcc/testsuite/gcc.target/loongarch/sign-extend-2.c index a45dde4f73f..428535cb8e3 100644 --- a/gcc/testsuite/gcc.target/loongarch/sign-extend-2.c +++ b/gcc/testsuite/gcc.target/loongarch/sign-extend-2.c @@ -1,6 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-mabi=lp64d -O2" } */ -/* { dg-final { scan-assembler-times "slli.w\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,0" 1 } } */ +/* { dg-final { scan-assembler-times "slli.w\t\\\$r\[0-9\]+,\\\$r\[0-9\]+,0" 0 } } */ #include #define my_min(x, y) ((x) < (y) ? (x) : (y))