From patchwork Mon Aug 21 12:24:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Richard Biener X-Patchwork-Id: 136386 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b82d:0:b0:3f2:4152:657d with SMTP id z13csp2965755vqi; Mon, 21 Aug 2023 05:25:41 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHFYJWWMzpFCb4MkexXP1A6IkAYcIEeTt1Q8IeL9yYbtSkIDXCfDpyv4SeolsYM8gEniHnX X-Received: by 2002:a17:907:7889:b0:99d:e417:d6f9 with SMTP id ku9-20020a170907788900b0099de417d6f9mr5316875ejc.41.1692620741594; Mon, 21 Aug 2023 05:25:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1692620741; cv=none; d=google.com; s=arc-20160816; b=uQNSnIzmzfSQZ/A1HRp8uo00NH2vEm8jUSsu1iSwxcJ0P1CtIsK7tIJKKcJUWNRvLR DaNrLrqjfdvXEBIco5TJcsNuG9i1aPe3XDLpPo6ioGzKCqWXxLRiz+iFH7lj/3hbEAuS TgWyIh/IC24C4qp7IOo/H9SVfdV90PAyDF6ldA+WcccBuxe9axLXO5Z4RWMa2OZ65SW3 WxiqAkhSiIUYwi7R5eGLQwjpk+uv2L7xTRwDfHn6OvSq4xY7O+5qLhgnpk/ylML/njSq k8bC41CorsRQM7/Q/kyKCJL/bO4JEFEkiuftIyN0j3q0zQAO8ZhFfpdx1OGs3pz193n5 Nq/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:sender:errors-to:reply-to:from:list-subscribe:list-help :list-post:list-archive:list-unsubscribe:list-id:precedence :mime-version:user-agent:subject:cc:to:date:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=3LOfYNSkSE3Sml4DoivZKp9lq5a8FwQuJPutdTB2QLk=; fh=NeE4OoQHvIJFXdDkwbK3sm8PLNSKDUPejn8lYxPuIf0=; b=froJtVrqdym2SOpAeEa/qm4+XKbxcukFQ7yIY4MS3BIWKvkoumh8+O9O0OMSU41zbb jHx1Di1j/zr5bGcYTJ/f0ovtxFV13a6NNevgltAyvolgyWFmrscC/kvwzf0CNoUcbcQX 3Dm92nSdDhHYI6Pakso2FTaFX2sZuh1CDr0z7DUGC6zwdxb3xym2bEOO3/H+2LKUMnlG eX6tIFrSpMeKla9j0sOZ7OTfXYt2tja2LUoSWVjSw0emZX9CkoxsCtz6txS458d1gHl0 HBgW48DBDw7eCnhbSNWT47YziEZWD3ScdtR4aCKBsadKSUA4UAo4Z233SWPK8H5hNxhN cs8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=OXaAvnLa; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=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 m12-20020a170906848c00b0099de8722195si5738387ejx.747.2023.08.21.05.25.41 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Aug 2023 05:25:41 -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; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=OXaAvnLa; 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"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 496C5385B800 for ; Mon, 21 Aug 2023 12:25:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 496C5385B800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1692620740; bh=3LOfYNSkSE3Sml4DoivZKp9lq5a8FwQuJPutdTB2QLk=; h=Date:To:cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=OXaAvnLawz5Cl7q0Vg34GlxVMnwk4TdraiqJF2AppZmgSbhRXs5yXA6NTB8nA/e8u 2/Ni6PmEwfvTUTG9hbuuY7ETTBbjPtbyGQ5ZLDWTLjFvFNAeoDxz0WXrGFJmH5n+hT zbOiEY/l/HElYBUdgTJK5iYj2gqOFk2gvd3Hp1q0= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 8B0933858025 for ; Mon, 21 Aug 2023 12:24:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8B0933858025 Received: from relay2.suse.de (relay2.suse.de [149.44.160.134]) by smtp-out1.suse.de (Postfix) with ESMTP id BC0A822C43; Mon, 21 Aug 2023 12:24:55 +0000 (UTC) Received: from wotan.suse.de (wotan.suse.de [10.160.0.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by relay2.suse.de (Postfix) with ESMTPS id 8A08D2C146; Mon, 21 Aug 2023 12:24:55 +0000 (UTC) Date: Mon, 21 Aug 2023 12:24:55 +0000 (UTC) To: gcc-patches@gcc.gnu.org cc: hongtao.liu@intel.com, hjl.tools@gmail.com Subject: [PATCH] Fix FAIL: gcc.target/i386/pr87007-5.c User-Agent: Alpine 2.22 (LSU 394 2020-01-19) MIME-Version: 1.0 X-Spam-Status: No, score=-10.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, MISSING_MID, SPF_HELO_NONE, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Richard Biener via Gcc-patches From: Richard Biener Reply-To: Richard Biener Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" Message-Id: <20230821122540.496C5385B800@sourceware.org> X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1774841486654615730 X-GMAIL-MSGID: 1774841486654615730 The following fixes the gcc.target/i386/pr87007-5.c testcase which changed code generation again after the recent sinking improvements. We now have vxorps %xmm0, %xmm0, %xmm0 vsqrtsd d2(%rip), %xmm0, %xmm0 and an unnecessary xor again in one case, the other vsqrtsd has a register source and a properly zeroing load: vmovsd d3(%rip), %xmm0 testl %esi, %esi jg .L11 .L3: vsqrtsd %xmm0, %xmm0, %xmm0 the following patch XFAILs the scan. I'm not sure what's at fault here, there are no loops in the CFG, but somehow r84:DF=sqrt(['d2']) gets a pxor but r84:DF=sqrt(r83:DF) doesn't. I guess I don't really understand what remove_partial_avx_dependency is supposed to do so can't really assess whether the pxor is necessary or not. OK? * gcc.target/i386/pr87007-5.c: Update comment, XFAIL subtest. --- gcc/testsuite/gcc.target/i386/pr87007-5.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gcc/testsuite/gcc.target/i386/pr87007-5.c b/gcc/testsuite/gcc.target/i386/pr87007-5.c index a6cdf11522e..5902616d1f1 100644 --- a/gcc/testsuite/gcc.target/i386/pr87007-5.c +++ b/gcc/testsuite/gcc.target/i386/pr87007-5.c @@ -1,6 +1,8 @@ /* { dg-do compile } */ /* { dg-options "-Ofast -march=skylake-avx512 -mfpmath=sse -fno-tree-vectorize -fdump-tree-cddce3-details -fdump-tree-lsplit-optimized" } */ -/* Load of d2/d3 is hoisted out, vrndscalesd will reuse loades register to avoid partial dependence. */ +/* Load of d2/d3 is hoisted out, the loop is split, store of d1 and sqrt + are sunk out of the loop and the loop is elided. One vsqrtsd with + memory operand will need a xor to avoid partial dependence. */ #include @@ -17,4 +19,4 @@ foo (int n, int k) /* { dg-final { scan-tree-dump "optimized: loop split" "lsplit" } } */ /* { dg-final { scan-tree-dump-times "removing loop" 2 "cddce3" } } */ -/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 0 } } */ +/* { dg-final { scan-assembler-times "vxorps\[^\n\r\]*xmm\[0-9\]" 1 } } */