From patchwork Tue Nov 16 15:35:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 1555892 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=d8dW86dg; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4Htqsy5Gs9z9sX3 for ; Wed, 17 Nov 2021 02:36:37 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D04F4385AC36 for ; Tue, 16 Nov 2021 15:36:35 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D04F4385AC36 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1637076995; bh=8+jSVkmmSLXNZXFv/XHp6q/WD9lHT+ZwBKhZGrW5Nso=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=d8dW86dgYQFini1KNj3kW38dBvUH7RmULquH8d6FjVPFv1ceJ1GnO3xVzWzRmt2e0 DJeOQFPaUcR/1QeAmmtI++Ek4M84xJA8GnMTliPAUzmKcF/coh4yvQMLXN1Nw+I9pH udmHg3QT4JvrmhZHjlX14Eow/eyRU9sV3ZAFDZmQ= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-eopbgr130042.outbound.protection.outlook.com [40.107.13.42]) by sourceware.org (Postfix) with ESMTPS id 66C7A385B833 for ; Tue, 16 Nov 2021 15:35:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 66C7A385B833 Received: from AM6P192CA0053.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:82::30) by DB9PR08MB6826.eurprd08.prod.outlook.com (2603:10a6:10:2ac::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Tue, 16 Nov 2021 15:35:35 +0000 Received: from AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:82:cafe::d2) by AM6P192CA0053.outlook.office365.com (2603:10a6:209:82::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend Transport; Tue, 16 Nov 2021 15:35:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT043.mail.protection.outlook.com (10.152.17.43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.20 via Frontend Transport; Tue, 16 Nov 2021 15:35:34 +0000 Received: ("Tessian outbound 1cd1a01725a6:v110"); Tue, 16 Nov 2021 15:35:34 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2a30099cc438277c X-CR-MTA-TID: 64aa7808 Received: from 4252efcfc339.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 769A2C3E-73B2-40A0-87DC-8FBC8901A2A6.1; Tue, 16 Nov 2021 15:35:19 +0000 Received: from EUR02-AM5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 4252efcfc339.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 16 Nov 2021 15:35:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QPVQgXaSyrquLZn4lnivQaDbNSiRTO9CXTVEpJfKyRZZaPU4eQlArIblJ6zrkx1pZiO9PSLYQu/+FQDpmRBzCmQOCentb92qBsghYFvtHzIp4kAnPulko1wpt8t+E+rmFTiQ4iN+9MabaNJuHt29DzoUC6t56EMMP+BL5Qa8+vJO2yae6J7kF2tsViWgXkHU/SZNb42BIbQovh1G1LbD5JLdAbnm7wZF7UhtUQiIXBKjeiAoUEqwIsAatzvvV+oPgZ/0qbt0NtdldR/vJvmj6jhfQTegE578C1CtTeqykNk3ZjG4uGgTzL0YhMFhtDgona+9/2W8iTXCvrK6WhcniA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8+jSVkmmSLXNZXFv/XHp6q/WD9lHT+ZwBKhZGrW5Nso=; b=ni9GpRtvm4n9GBsIb7Zpqx74zM/3z4FCrnzRLy589UE5BWluU0HvFzlAoxPkkEkLclMF8vGDNDH2/TZBzns06t5HpfZBv35P/bHNiDSqXPm12qJ/WoCktNFGPK567Pxcmqsq8lRUcJ1EERAgh8mrA3hzA2A+DbLvfAoAk4ZJ5CPjEKaQYDLyvF07US7Nlzxo87ZLgh58Rr7req32li5ipEgx8Na+/+q5DuShhuwxPw2usRLuc0U9tkqpGPBmzbC+nn1snOHSRBDfnIjfoREuarbsk4vaa9wOEVaSaENU8YJS+HNOOirtRTHftPXzUqymZF79MCzw4ITtICpJSvaBPg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB3055.eurprd08.prod.outlook.com (2603:10a6:803:4e::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov 2021 15:35:17 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::4ec:31a:1083:adfd]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::4ec:31a:1083:adfd%5]) with mapi id 15.20.4690.027; Tue, 16 Nov 2021 15:35:17 +0000 Date: Tue, 16 Nov 2021 15:35:14 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH]middle-end: Fix FMA detection when inspecting gimple which have no LHS. Message-ID: Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: LO4P265CA0046.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::20) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 Received: from arm.com (217.140.106.55) by LO4P265CA0046.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.25 via Frontend Transport; Tue, 16 Nov 2021 15:35:17 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f6df9ff-159f-47dc-ae9f-08d9a916bb7f X-MS-TrafficTypeDiagnostic: VI1PR08MB3055:|DB9PR08MB6826: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: A+W2O/b9CUOOb40pYIu6lhUL2sEcFAp8fitma22M/NdBKFmqZA1z/vhgadQacdmYQGqUNjpnmE8a1hiJaS18y4BB3CaFD0YPICrpRKYjrCBNy9PppxtkT9USCZsZ6/DXeh8xR/e1AlZ7613EK6b26DGCy4Tg6mw8q+pkCLBS2/QpblX0QktmK0P40btP/LbFKa1iH1E9M2lWsDA+9fFbRhXDi5bUp0N7RO+QtsLa++cuOJVaEK0dFf03/SBkX7RocONlOaqed6AwtfbFAGeQOm07NFpL6j1NDHZUglsmUjDctlrnm2O7qDgUXx/ieIXaPCvhvA6vcwKHmQQyD/CpeEFsJpD5nxdzz+a47CJDZZy5qQlfcFICuat9/p784M9CPGsyxv/83KYM1mNhA5HppkAdFvQNG1RBdizLm0OPf+rdPY1bmNg7yNklgtQCyqjPtrjhB97Gseir2DqBU6EsU/URLGhfLXHN4UiiEecQqAnVWdpAOda+OPmCYMtr5UVF83sIG4b2tgf941Nzp0TeukVLrOeg0Xi8kZpGJ26VdPQjj2OqPeQ8PpksM3wcvHdPGnjl1nzClVcnUi/3Pxa0fulqxRYFgyzVE5hfWSF8rKo8RyPOXDU9laOcstdXM/0RAkEzkgbCKvxtAKeL6g6O/kjoBjCpkdUY2fDkXKk3MLuHPFASm9G8Buuu2+94DfPCNDmUDqaG7lW5lV918RI4wfISWYDlCTQ/BnmJ3hO9I228HnkzvfEuTUpv/hSs35hugPtP3pruXo6WyFg5rQ3t69cqwLP5fnPSLMhOQ/keffuacp8nYjn+cxgTdZBDn1uzXgtZSi3832CBoz7Gsd5sQXWKDaF4QqO3/yzgNO0RdDv+RmYcXWatKKWwTbamncFd X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(316002)(8936002)(8676002)(26005)(235185007)(8886007)(6666004)(186003)(6916009)(38350700002)(38100700002)(36756003)(4743002)(44832011)(5660300002)(2906002)(86362001)(55016002)(2616005)(956004)(66556008)(66476007)(508600001)(52116002)(83380400001)(66946007)(44144004)(7696005)(33964004)(4326008)(4216001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB3055 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: f8bd58b8-60a0-47a5-e895-08d9a916b0f3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3JkCOoULMAmKAjkt9OlVtNMEvxKJH/j6tD5g58FX1nqEbGUbwaFj119/dmbFwo/JqAT/WQ6uacIyDJvAftrggwz/sjMEBSgGPWQnoZkFhzBpUcK9oEgjS8hepE+txkWKztOQUo+Rbz6aSoYmsdWFrD+LGJgG3T/ZX/mucJH7T1WLq1IL+t22KWmsMZS5VeCYQATcQz2oiYXaWuC9Ez+rcFGREU3Hz1BxHWtnvG0VkSbyvWvm3FDrn23K/BkX1WriRVgF/Tl3YcG5qgWtptxKjqIn5Qfe8cYZNsNGTfs4EXVXO1o84P8vqKil4IE9qAIeuQDGOSRTxGdWzj2SsOfcENndz+Pmdz05KSrvpklG3TpZqrXKoJyoOerolkwb9NVtPZoRS+mch3Sx7KzmR3DVbPGa7BR3OksrYrHia4vaIbCWim4MHQq/40lPYoei3aowEwqUdacyohrq2k/GhH4T1d80mrg1icIc2lM9W+HNEmcele/AJDaw9vW3KB70As4LP/h3vewa65LmQmpYR4khimSwt9lqOsDkyF9018GPhgKDdXbZ96xo2O1yY93Mwi6lf4xI4Lb6lRN7ZAvsDWFVej8I2E53wW+WAruouTTId/njIW/UBKCtaYwu2qeUx3jrNOttvb9QY6aoieIFP4rwiQNx3+qyF2KSY/eYnQCZ1wYDnQ0mWv1sDjlqFUNOcQfX2UFyd3u5OSa9CaQ7ENNfug1rjGGXqqa5ln0Fgx65Tungs33HC3UfYOaLZGNweeTknsNhlcueEkMsZsjxWecklOGvl5wMxTUGzcMj7jgA2gC54FhRNkGwAOhdDErfyFFFyLd71sTcrDghZ0s7hUKiAl0HoHxGlrCQbhBpMZXmgJVQVy0jrzxgzXYQKlrBmNC3 X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(33964004)(44144004)(8886007)(235185007)(8936002)(2616005)(4326008)(336012)(508600001)(86362001)(81166007)(7696005)(83380400001)(5660300002)(356005)(36756003)(55016002)(8676002)(2906002)(47076005)(4743002)(82310400003)(186003)(70206006)(70586007)(316002)(44832011)(6666004)(36860700001)(107886003)(956004)(6916009)(26005)(4216001)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Nov 2021 15:35:34.9207 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 1f6df9ff-159f-47dc-ae9f-08d9a916bb7f X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6826 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, MSGID_FROM_MTA_HEADER, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tamar Christina via Gcc-patches From: Tamar Christina Reply-To: Tamar Christina Cc: nd@arm.com, rguenther@suse.de Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" Hi All, convert_mult_to_fma assumes that all gimple_assigns have a LHS set. This assumption is however not true when an IFN is kept around just for the side-effects. In those situations you have just the IFN and lhs will be null. Since there's no LHS, there also can't be any ADD and such it can't be an FMA so it's correct to just return early if no LHS. Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu and no regressions. Ok for master? Thanks, Tamar gcc/ChangeLog: PR tree-optimizations/103253 * tree-ssa-math-opts.c (convert_mult_to_fma): Check for LHS. gcc/testsuite/ChangeLog: * gcc.dg/vect/pr103253.c: New test. --- inline copy of patch -- diff --git a/gcc/testsuite/gcc.dg/vect/pr103253.c b/gcc/testsuite/gcc.dg/vect/pr103253.c new file mode 100644 index 0000000000000000000000000000000000000000..abe3f09f3818d79a53f2aa962c6b6c06855d618e diff --git a/gcc/testsuite/gcc.dg/vect/pr103253.c b/gcc/testsuite/gcc.dg/vect/pr103253.c new file mode 100644 index 0000000000000000000000000000000000000000..abe3f09f3818d79a53f2aa962c6b6c06855d618e --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr103253.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target fopenmp } */ +/* { dg-additional-options "-O2 -fexceptions -fopenmp -fno-delete-dead-exceptions -fno-trapping-math" } */ + +double +do_work (double do_work_pri) +{ + int i; + +#pragma omp simd + for (i = 0; i < 17; ++i) + do_work_pri = (!i ? 0.5 : i) * 2.0; + + return do_work_pri; +} + diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c index c4a6492b50df25b4cf296a75bd51e5af34eeacc7..cc8496c3c325f3cc303a90b9b9cac383e5a7942d 100644 --- a/gcc/tree-ssa-math-opts.c +++ b/gcc/tree-ssa-math-opts.c @@ -3224,6 +3224,10 @@ convert_mult_to_fma (gimple *mul_stmt, tree op1, tree op2, fma_deferring_state *state, tree mul_cond = NULL_TREE) { tree mul_result = gimple_get_lhs (mul_stmt); + /* If there isn't a LHS then this can't be an FMA. There can be no LHS + if the statement was left just for the side-effects. */ + if (!mul_result) + return false; tree type = TREE_TYPE (mul_result); gimple *use_stmt, *neguse_stmt; use_operand_p use_p;