From patchwork Thu Nov 18 16:57:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 47896 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 852FF3857C6A for ; Thu, 18 Nov 2021 16:59:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 852FF3857C6A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1637254773; bh=aZ/Zx4BcgUYAcdSaOr8rm8Yxo/ACPgB1X7PKe1qXmzA=; h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=DT3SVEr0qkH7gBymMT2JY0mmvl3oLncl6gsspe4i6jPmFDFbXS0Tu8Qic3IfvpYSB yPyzt0pq0cZ3asxNrS3stRyTHSL8nX/LWKw5eTkDfjvRn7vWVDnSTt1Troxkmks3KG ODW5ml+sGI8nSNnO+1GUC6DUwAihpb5oE2/NzVGg= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60072.outbound.protection.outlook.com [40.107.6.72]) by sourceware.org (Postfix) with ESMTPS id EB28C3857C5F for ; Thu, 18 Nov 2021 16:57:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB28C3857C5F Received: from AS9PR06CA0112.eurprd06.prod.outlook.com (2603:10a6:20b:465::8) by AS8PR08MB7157.eurprd08.prod.outlook.com (2603:10a6:20b:403::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov 2021 16:57:57 +0000 Received: from VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:465:cafe::ce) by AS9PR06CA0112.outlook.office365.com (2603:10a6:20b:465::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.22 via Frontend Transport; Thu, 18 Nov 2021 16:57:57 +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 VE1EUR03FT043.mail.protection.outlook.com (10.152.19.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 16:57:57 +0000 Received: ("Tessian outbound 157533e214a9:v110"); Thu, 18 Nov 2021 16:57:56 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fe3255ed22bde76d X-CR-MTA-TID: 64aa7808 Received: from 51ac2ca623f1.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AB83D6A9-F1DD-44E8-95CC-A5EE480727F0.1; Thu, 18 Nov 2021 16:57:49 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 51ac2ca623f1.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 18 Nov 2021 16:57:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GknMjz6/nonUwXFGb+N67pi2UFlRX7Vv2KGIvUiXrTIRpHPww2V3XD9ik3KCStKT4W2QyitIR7f8dsfyiRY1uIxKjfp5Bk2lvSeO2ZF6xmTa4RkUe+M2LtSZphV6SKnal06FNx7AFYigyVnS02sAilV3BnItnSHBB9Sejm4oCRJhcf1zGRjFo3c2AdaQjsrk7VW8zajIhfzbDTsw5ju9vMsXncNUyOeHglPT3qlWzsEx2qQzO4W2Lk5eF6vrDu4UGqQ5MAB2uKELCZdCAFVXIJ6oPZDE7Wnjlf2HSBYfH/x33+g6JCVAN4Zo6Wcog0rcuV1xeJ0cGll1WlhI97F3cw== 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=aZ/Zx4BcgUYAcdSaOr8rm8Yxo/ACPgB1X7PKe1qXmzA=; b=fEgtwMN73HFsTw+88HgWarB5/yCOXsRBhaOT+SusCMHMHARVbSQkfF4LVXJcbKh/laLgCPoJqWkyVoj45IY/TtjTmTxR+MQoyJyC5BJspcL8ePFxDnYqqZPhdUIcGiZee0H+h0uYAXXR8g1ptFdSloyf9EklT6TCHWehcWeKnhB+zHkoRSa/ldkH5natuS0vDok5AbdGTJVgLQBIdQeOcNb8Tld3gF762pK3/+CPKFnWt6fGjSi/Ah9vUhJCHuvDCpK0Qo9Cdbz8ygd0s8HksJcYYgFuGvnoQ/g7IgALRKvMeZQWHEnQQmSI8vPVFsFExwofGa6Yjae++NjhCUJ+DA== 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 AM0PR08MB5316.eurprd08.prod.outlook.com (2603:10a6:208:185::14) by AM0PR08MB4994.eurprd08.prod.outlook.com (2603:10a6:208:15d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19; Thu, 18 Nov 2021 16:57:48 +0000 Received: from AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::1096:1244:d709:fbee]) by AM0PR08MB5316.eurprd08.prod.outlook.com ([fe80::1096:1244:d709:fbee%3]) with mapi id 15.20.4713.022; Thu, 18 Nov 2021 16:57:47 +0000 Date: Thu, 18 Nov 2021 16:57:45 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH] middle-end: check that both sides of complex expression is a mul. Message-ID: Content-Disposition: inline User-Agent: Mutt/1.9.4 (2018-02-28) X-ClientProxiedBy: LO2P265CA0420.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::24) To AM0PR08MB5316.eurprd08.prod.outlook.com (2603:10a6:208:185::14) MIME-Version: 1.0 Received: from arm.com (217.140.106.55) by LO2P265CA0420.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend Transport; Thu, 18 Nov 2021 16:57:47 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a9bd85fb-b18a-4f4f-8f2d-08d9aab49226 X-MS-TrafficTypeDiagnostic: AM0PR08MB4994:|AS8PR08MB7157: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true NoDisclaimer: true X-MS-Oob-TLC-OOBClassifiers: OLM:10000;OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: zdKBopdSTg6itrtgjtN/GLBkidgWnpulHYftixmpYbDHlMpdyZ+kyrwrrn7UmOHxj1hMx7QDQgSVNgdlm7Odrc8nypMwHjFznWexiSsm6UdBEAgIkbyVZi/kv5+paUDpHgF7wsJdBzb3RyZG0cIX3/F3AgsrvV5ZsGHiPBk4ViT9jZPFTjxmb8xTKZYxkNXnfvEJ8En64Ak4Jluz9q1juAp41Op+fyUDx3CPPxTO4DEoUnNCv9T7ggNhTt0sa/1Kmxklt8TdBrnCmQAGCDFRlF4KOb2vrNrAHZNYYhAGEuU0+dldoPENbr7MhnrtP+SLQj6rAq/xPr/S9OuQCegyvFJ7fH1693obTdpX7iwDAPKX9aDAN5qae/xDeV2PyBvF8koxNDi3aJhgRcA15xut180YVb/Wjz+A9el234XcKZXzmEBv6u1LESZr0cnn8r0mM/8wqq3whYCDzLzHsJhcjWHPeoQruXhC0PbpIpPZVlYMeI68wtRyWMkaurxmoe8UKBAikQd3Kl7N+0Am9BvqJOygEMbsBpccBYRJa76gZHCH1VvAKmrC6szvC6IIrOpNfAkwF+sJR+9rKtazAhAGo/ddu4HBjEbgQQ8boH9KRh/IBk8ES2b4YF7bwM0chUgec/dTEjFCLKtDClqCnpDBNsSYq25spkTc2LSH1HflrX2jSWR0dlRDghowSlFCNC2SznCetErABhgh6H6ZgF7P0/3YtGIvukplAf1JVwadpa+hbgMHUVJ+r3vZjOBFyIvPVxCCP+bAFAz1Vt0JmE/mfiFI/N2J/K2s00JqCJI5Z2Br0Sd4B4U+Xaavc7z7tMWI6PfWX1WITHniUAbhF5dL7BJFAjRXzOho+pEN8XgNYHU= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB5316.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(44832011)(38350700002)(2616005)(5660300002)(66476007)(66946007)(38100700002)(86362001)(235185007)(66556008)(83380400001)(36756003)(316002)(956004)(4743002)(55016002)(44144004)(508600001)(7696005)(8936002)(52116002)(33964004)(2906002)(6916009)(8676002)(26005)(8886007)(4326008)(186003)(4216001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4994 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: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: db0f016b-7b24-402d-7647-08d9aab48c37 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: +PuD6sgqO2B+bjIk8W7JBiNCzxtHtxl2oy2np1sRMK5J500tiH+/gbCxDUwkxuP+YZV4Fb1HouHmYLhV7HmzfXTcuOArcbw5d8kuLh4i0U0WP0GZ+2/iyilXUJLC08ABr8IGtqTYlLtw/qf8+Hxsw4QFmKfMClTTvwcsds5v9oWAMqhj/QuiKo158fPzT4Jfqq0211HMUIwY7pffaeB95uPSw1C4jjiYX4I2uqrrlW+gSR/24cI4CP5nIeC4PmdZ7aCVhyy01x3ywvCeSjHC83gX40CnBwG4cR8NSKVm7dIkbVCg8e/p7TiEJNcuhNv6QhBhjKTZxPW0NQn+veWXMlGl74mnDJqW0nS8pvMmZkd82xPwo2WbhE0kD3/7DDaXYE+WaL/9w21LEfNEyurYnnPEfz2Md+IKlYM2RE4Lu4mvITzpm5QZt9bYTkgRYjDIVfL5Swg4Z1Dtx9ycFN/pzFRAhtUb9D5n2UwB2DwrAf/yvQFGAV2TNe8tccMHkdv47ut3/xbTPX/fLKTN7xY7zbH4tXD2+SRvpby4pAU32fX9suCu9MhQYOqu6buUrmdDBRDCHUKdzA6Xdie+AW/9l0ApmVc0G5mczoQLQoWXlF32zUjuSU0QjsmTWFIOSRrH9+FpEw3BzKy2cgNWq9uJX20VgDTyInoZeUyedrOXho5YkUmzw9QqtOaZ/b3dL8Of6WPOyOSOdbJLi5vcvJixED5pfhxFeEqihvMu3AUg7m2A3aypJw+alcIAmq8KrSuBDoZFTW0JIgwHgBDjF+ToHXEG58KvE5m3UfahENEBkQYxCV4XBYX1HdG4un7qEG7QkmvAGDn6Q6sJFPlNH/tOYA== 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)(36840700001)(46966006)(81166007)(8936002)(4326008)(5660300002)(33964004)(70586007)(8886007)(508600001)(70206006)(316002)(44144004)(2906002)(4743002)(8676002)(7696005)(82310400003)(55016002)(44832011)(83380400001)(6916009)(356005)(107886003)(36860700001)(86362001)(47076005)(186003)(36756003)(336012)(235185007)(2616005)(956004)(26005)(4216001)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Nov 2021 16:57:57.1362 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a9bd85fb-b18a-4f4f-8f2d-08d9aab49226 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: VE1EUR03FT043.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7157 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, 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+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" Hi All, Both sides of the VEC_PERM_EXPR need to be a MULT but the check was accidentally checking if both sides are a mul. The FMS case would be handled by the validate_multiplication but this makes the requirement more explicit and we exit earlier. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: PR tree-optimizaion/103311 * tree-vect-slp-patterns.c (complex_mul_pattern::matches, complex_fms_pattern::matches): Check for multiplications. gcc/testsuite/ChangeLog: PR tree-optimizaion/103311 * gcc.target/aarch64/pr103311.c: New test. --- inline copy of patch -- diff --git a/gcc/testsuite/gcc.target/aarch64/pr103311.c b/gcc/testsuite/gcc.target/aarch64/pr103311.c new file mode 100644 index 0000000000000000000000000000000000000000..7bcc7db79be8f1b4dc1f95c6cf10f5292191a892 diff --git a/gcc/testsuite/gcc.target/aarch64/pr103311.c b/gcc/testsuite/gcc.target/aarch64/pr103311.c new file mode 100644 index 0000000000000000000000000000000000000000..7bcc7db79be8f1b4dc1f95c6cf10f5292191a892 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/pr103311.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-require-effective-target arm_v8_3a_complex_neon_ok } */ +/* { dg-add-options arm_v8_3a_complex_neon } */ +/* { dg-additional-options "-std=c99" } */ + +_Complex double y; + +void +cbknu (_Complex double f) +{ + const _Complex double cone = 1.0e0; + + f = f * cone; + y = f * cone; +} + diff --git a/gcc/tree-vect-slp-patterns.c b/gcc/tree-vect-slp-patterns.c index 53fbe5185f543298b27d084a93c30a1c161d3d32..d916fc9cef9a86a0d797caaf2b2f253685e9b7dd 100644 --- a/gcc/tree-vect-slp-patterns.c +++ b/gcc/tree-vect-slp-patterns.c @@ -949,7 +949,7 @@ complex_mul_pattern::matches (complex_operation_t op, bool mul0 = vect_match_expression_p (l0node[0], MULT_EXPR); bool mul1 = vect_match_expression_p (l0node[1], MULT_EXPR); - if (!mul0 && !mul1) + if (!mul0 || !mul1) return IFN_LAST; /* Now operand2+4 may lead to another expression. */ @@ -1204,7 +1204,9 @@ complex_fms_pattern::matches (complex_operation_t op, /* If these nodes don't have any children then they're not ones we're interested in. */ - if (left_op.length () != 2 || right_op.length () != 2) + if (left_op.length () != 2 + || right_op.length () != 2 + || !vect_match_expression_p (l0node[1], MULT_EXPR)) return IFN_LAST; bool is_neg = vect_normalize_conj_loc (left_op);