From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-vk1-xa2c.google.com (mail-vk1-xa2c.google.com [IPv6:2607:f8b0:4864:20::a2c]) by sourceware.org (Postfix) with ESMTPS id 61F74385701F for ; Tue, 25 May 2021 06:23:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 61F74385701F Received: by mail-vk1-xa2c.google.com with SMTP id m129so6424588vkh.9 for ; Mon, 24 May 2021 23:23:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=J447uADGMVCWpJi5b64FSBsJ04fK++BPEBTwInrJrJ4=; b=TaPZNbG5qW8M8emgOmruJGBGJ1Mx1azIA9CyaJUyEuRRrbMqqB5z0d2PQY3Zn8bsP1 8nGx9I9dxDSL3/+9SlAqoiP8/SsZoPyPwFSpAzp3mX7/goMYnWg4GnOQ+rsOv9oDhE7L IwSV6C+jrSDumgTbUNgL452UNJA912HMtQvJBR0nhHWeej7kKctNe3xLtkt69LFZtrza v1GsLifxofxKK1U+x6lbu80geSNiMJ/1Vhs9CtXDHZUMW2C4SGwHGF9HzQZk6xTyWaOs wA6NykT2eOrT9SqqCYwkPQDbaOF6dN0/fN1DoOJ1WpgpV8XLGuHwfBET/ELQbfyt2uoI F6hQ== X-Gm-Message-State: AOAM533ogCDPsaMys6afWJDGKHCmdymyz0IJL/rxBHHkZJbLmXb/i/HU +i8N7cDA2/SECj5+0A2438l60lfFCfKRIDldLCo= X-Google-Smtp-Source: ABdhPJyuo0Yq7HaeLt9krrNoJu7+ERTUv06rCnSz39BZlcL+dS+bxz1n9Jp01lF9EHr6jIaGGveXfwJWeiWwvy74mtc= X-Received: by 2002:a1f:2c02:: with SMTP id s2mr23499521vks.7.1621923795038; Mon, 24 May 2021 23:23:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Hongtao Liu Date: Tue, 25 May 2021 14:23:03 +0800 Message-ID: Subject: Re: [PATCH][i386] Split not+broadcast+pand to broadcast+pandn. To: Andrew Pinski Cc: GCC Patches Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 25 May 2021 06:23:16 -0000 On Tue, May 25, 2021 at 2:11 PM Andrew Pinski wrote: > > On Mon, May 24, 2021 at 11:03 PM Hongtao Liu via Gcc-patches > wrote: > > > > Hi: > > This patch is about to do transformation like below. > > Bootstrapped and regtested on x86_64-linux-gnu{-m32,}. > > Ok for trunk? > > > > from > > notl %edi > > vpbroadcastd %edi, %xmm0 > > vpand %xmm1, %xmm0, %xmm0 > > to > > vpbroadcastd %edi, %xmm0 > > vpandn %xmm1, %xmm0, %xmm0 > > > > gcc/ChangeLog: > > > > PR target/100711 > > * config/i386/sse.md (*andnot3): New combine splitter > > after it. > > > > gcc/testsuite/ChangeLog: > > > > PR target/100711 > > * gcc.target/i386/avx2-pr100711.c: New test. > > * gcc.target/i386/avx512bw-pr100711.c: New test. > > > > > Does it make sense to make this more generic and have combine/simplify > rtx instead try: > (vec_dup (not)) to (not (vec_dup)) Even w/ that, a combine splitter is still needed since we don't have any pandn patterns which contain op1 as vec_duplicate or "not" pattern for vector mode, generic simplification only helps combine/forprop to match more possibilities, but not split pattern by itself. > > Thanks, > Andrew Pinski -- BR, Hongtao