From patchwork Tue Sep 26 09:55:05 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: 144800 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:cae8:0:b0:403:3b70:6f57 with SMTP id r8csp1793237vqu; Tue, 26 Sep 2023 02:55:45 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHaLodZiIqbXUx9ac3Fd8UcVG1PvD1RnVDb3sqtAEvRRFmZjPebzrOj0xBKOOW5OEaDmutE X-Received: by 2002:a17:906:32d0:b0:9b2:93f2:71b0 with SMTP id k16-20020a17090632d000b009b293f271b0mr2539797ejk.38.1695722145577; Tue, 26 Sep 2023 02:55:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1695722145; cv=none; d=google.com; s=arc-20160816; b=mxo61H6C/9AG8dGK8ozNHFhBZOIowxKkcaWx66CLR4Jimh1IWG8JlLD3oGYuzZ19w8 I3h8l5M2AvCY4lZf1VjaBLOTrHBsutP9n5QWFACADYQqWlqKEpfrzwmR5cKXwY/StiLi LP/uX13BNJ1W8JUWXuGkK2u/RfPDqoMdpQljpFyYR3Cal+fMfGDxMymNumdD6wWZbJkC 7vrg6TT94Xs5BQtnCotXptfE14h6xhlpTb2rm5WvNJ0YM0K22YOYPJB5zPoz2If1cLgK 5znpXGMP7ydJAFGk3alczjuolek6vtLKrKvaNjXumbvduHF8i0o51yKe+neS1H4U5DhN 1DJw== 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=1WxtYWQiprsByyiRw5/epajUS5B5iNB36GzsZr/EvLo=; fh=Hxj0cw/2jAkyitv6gv3v4BQlApRvZwleU4172JThTNQ=; b=1LmEOKoL5zhwv7RPS4S1nkyj0h11JBzZ0jOwmrH6XZBB+Kq9gUpJ1G7/JRsXGWy4nN 9/j7GAawPvJLq3YJwdH/HoJPA1BSg+NIS+wQgaMP6MEbq/k/5b2oCfTW/7OF694M/8qT 6cBK5Ut2a9NiWAIbvIBbbNJEkqSUBe0AZAWlByGTMcfOqyxcVUMXohVg0N4y0a9ClAaV emYhCkMH6a4YxQu7rcOJaZZw547UGVsEbasq5X/4rnQA53/b7tD40mKj6lYbaMMtEmz3 AD9xHFwDydcmz0K4vhZvdke8TFRjGxzvvxobgw4AMi4ljLbU/XC/9uVZTIs0CzEwrU/Z Q8oA== ARC-Authentication-Results: i=1; mx.google.com; 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 n25-20020a1709062bd900b0099318060d40si5995173ejg.459.2023.09.26.02.55.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Sep 2023 02:55:45 -0700 (PDT) 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; 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 4C203385CC87 for ; Tue, 26 Sep 2023 09:55:43 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtpbg153.qq.com (smtpbg153.qq.com [13.245.218.24]) by sourceware.org (Postfix) with ESMTPS id 470EF3858D35 for ; Tue, 26 Sep 2023 09:55:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 470EF3858D35 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: bizesmtp71t1695722107trxlvf2u Received: from rios-cad121.hadoop.rioslab.org ( [58.60.1.9]) by bizesmtp.qq.com (ESMTP) with id ; Tue, 26 Sep 2023 17:55:06 +0800 (CST) X-QQ-SSF: 01400000000000G0V000000A0000000 X-QQ-FEAT: swJM8EmkKsk+RSBro82TrXbRKPR/1YG9nmrxl5H9m38ee/JakIeB+mAxh4JEj VrnnCvHHVZ7Glj+2GJj7ndD5wedxS1Kd3SgnrTQXlVegS9rmCAoGxgrsddiR0UBB0+/cXNQ VBLqScWQK2+wK+SiBBmyKR6LcWY4mIBh1wcXgpBJJ6mY/mfgDbmLix3iJ+NJFsxye3YVrKm Uh1cgUBwwyJesN7J9sJQyPP4s7ZolsGfdjptnOE8r5O1ixzaGWBBeXOcCTT7rvuR3HV+f7H ak3njEcg9zo2pZy3DVlx9lgKzVq8cZw9SGzRvPcUwKGP+RkFAfqD81Rl8ihOh1jM91hN+pE IFLE6b4/p+5lrcdwwDOVP5B7x0YYRIShb/wJHtCOy3o7SYHDDov0i1ezFlz5HotGA6IIHcG o13hxSywAd8= X-QQ-GoodBg: 2 X-BIZMAIL-ID: 18403443214212523784 From: Juzhe-Zhong To: gcc-patches@gcc.gnu.org Cc: richard.sandiford@arm.com, rguenther@suse.de, Juzhe-Zhong Subject: [PATCH V2] MATCH: Optimize COND_ADD_LEN reduction pattern Date: Tue, 26 Sep 2023 17:55:05 +0800 Message-Id: <20230926095505.1296448-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=-12.2 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_SHORT, 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 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: 1778083352699210294 X-GMAIL-MSGID: 1778093544614963936 Current COND_ADD reduction pattern can't optimize floating-point vector. As Richard suggested: https://gcc.gnu.org/pipermail/gcc-patches/2023-September/631336.html Allow COND_ADD reduction pattern to optimize floating-point vector. Bootstrap and Regression is running. Ok for trunk if tests pass ? gcc/ChangeLog: * match.pd: Optimize COND_ADD reduction pattern. --- gcc/match.pd | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/match.pd b/gcc/match.pd index 3ce90c3333b..790d956fe69 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -8863,8 +8863,11 @@ and, c = mask1 && mask2 ? d + b : d. */ (simplify - (IFN_COND_ADD @0 @1 (vec_cond @2 @3 integer_zerop) @1) - (IFN_COND_ADD (bit_and @0 @2) @1 @3 @1)) + (IFN_COND_ADD @0 @1 (vec_cond @2 @3 zerop@4) @1) + (if (ANY_INTEGRAL_TYPE_P (type) + || (FLOAT_TYPE_P (type) + && fold_real_zero_addition_p (type, NULL_TREE, @4, 0))) + (IFN_COND_ADD (bit_and @0 @2) @1 @3 @1))) /* Detect simplication for a conditional length reduction where